Merge git://bogomips.org/git-svn

* git://bogomips.org/git-svn:
  svn test: escape peg revision separator using empty peg rev
  git svn: work around SVN 1.7 mishandling of svn:special changes
This commit is contained in:
Junio C Hamano 2012-10-10 13:53:56 -07:00
commit d5e7c0c21c
2 changed files with 25 additions and 2 deletions

View File

@ -345,7 +345,30 @@ sub M {
$self->close_file($fbat,undef,$self->{pool});
}
sub T { shift->M(@_) }
sub T {
my ($self, $m, $deletions) = @_;
# Work around subversion issue 4091: toggling the "is a
# symlink" property requires removing and re-adding a
# file or else "svn up" on affected clients trips an
# assertion and aborts.
if (($m->{mode_b} =~ /^120/ && $m->{mode_a} !~ /^120/) ||
($m->{mode_b} !~ /^120/ && $m->{mode_a} =~ /^120/)) {
$self->D({
mode_a => $m->{mode_a}, mode_b => '000000',
sha1_a => $m->{sha1_a}, sha1_b => '0' x 40,
chg => 'D', file_b => $m->{file_b}
});
$self->A({
mode_a => '000000', mode_b => $m->{mode_b},
sha1_a => '0' x 40, sha1_b => $m->{sha1_b},
chg => 'A', file_b => $m->{file_b}
});
return;
}
$self->M($m, $deletions);
}
sub change_file_prop {
my ($self, $fbat, $pname, $pval) = @_;

View File

@ -28,7 +28,7 @@ test_expect_success 'setup svnrepo' '
svn_cmd cp -m "trailing .lock" "$svnrepo/pr ject/trunk" \
"$svnrepo/pr ject/branches/trailing_dotlock.lock" &&
svn_cmd cp -m "reflog" "$svnrepo/pr ject/trunk" \
"$svnrepo/pr ject/branches/not-a%40{0}reflog" &&
"$svnrepo/pr ject/branches/not-a@{0}reflog@" &&
start_httpd
'