git-commit-vandalism/perl/Git/SVN
Roman Kagan 2394e94e83 git-svn: workaround for a bug in svn serf backend
Subversion serf backend in versions 1.8.5 and below has a bug(*) that the
function creating the descriptor of a file change -- add_file() --
doesn't make a copy of its third argument when storing it on the
returned descriptor.  As a result, by the time this field is used (in
transactions of file copying or renaming) it may well be released, and
the memory reused.

One of its possible manifestations is the svn assertion triggering on an
invalid path, with a message

svn_fspath__skip_ancestor: Assertion
`svn_fspath__is_canonical(child_fspath)' failed.

This patch works around this bug, by storing the value to be passed as
the third argument to add_file() in a local variable with the same scope
as the file change descriptor, making sure their lifetime is the same.

* [ew: fixed in Subversion r1553376 as noted by Jonathan Nieder]

Cc: Benjamin Pabst <benjamin.pabst85@gmail.com>
Signed-off-by: Eric Wong <normalperson@yhbt.net>
Reviewed-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Roman Kagan <rkagan@mail.ru>
2013-12-27 20:22:19 +00:00
..
Memoize git-svn: use YAML format for mergeinfo cache when possible 2012-06-10 08:47:53 +00:00
Editor.pm git-svn: workaround for a bug in svn serf backend 2013-12-27 20:22:19 +00:00
Fetcher.pm git-svn: allow git-svn fetching to work using serf 2013-07-07 15:43:03 -07:00
GlobSpec.pm Make git-svn branch patterns match complete URL 2012-10-05 22:48:12 +00:00
Log.pm Move Git::SVN::get_tz to Git::get_tz_offset 2013-02-09 14:01:28 -08:00
Migration.pm use Git::SVN{,::RA}->url accessor globally 2012-08-02 21:42:59 +00:00
Prompt.pm Git::SVN::*: add missing "NAME" section to perldoc 2013-05-09 01:07:58 +00:00
Ra.pm git-svn: fix termination issues for remote svn connections 2013-09-06 09:44:28 -07:00
Utils.pm git svn: do not overescape URLs (fallback case) 2013-01-17 23:28:12 +00:00