Herbert Valerio Riedel <hvr@xxxxxxx> writes: > added svn:special symlink support for access methods other than > direct-http I think what the patch does makes sense. When svn:special exists, check if it is of form "link " and munge the way a symlink is represented to match what we expect. My understanding is that currently there is any type of special svn blob defined other than "link ", and dying rather than punting and silently doing a wrong thing when we see something else in the future makes sense to me as well. Previously we were feeding "update-index --cacheinfo" with '0755' and '0644', but this patch changes it to send 100755/100644; technically this is not necessary, because create_ce_mode(m) makes it a regular file unless S_ISLNK(m), but I think this is good for consistency. Karl, Martin, Smurf, Comments? > Signed-off-by: Herbert Valerio Riedel <hvr@xxxxxxx> > > > --- > > git-svnimport.perl | 18 ++++++++++++++++-- > 1 files changed, 16 insertions(+), 2 deletions(-) > > edb2adf980e2193570a6910efc01c7ac47dcf474 > diff --git a/git-svnimport.perl b/git-svnimport.perl > index 4d5371c..60ed7ae 100755 > --- a/git-svnimport.perl > +++ b/git-svnimport.perl > @@ -98,6 +98,7 @@ package SVNconn; > use File::Spec; > use File::Temp qw(tempfile); > use POSIX qw(strftime dup2); > +use Fcntl qw(SEEK_SET); > > sub new { > my($what,$repo) = @_; > @@ -143,9 +144,22 @@ sub file { > } > my $mode; > if (exists $properties->{'svn:executable'}) { > - $mode = '0755'; > + $mode = '100755'; > + } elsif (exists $properties->{'svn:special'}) { > + my ($special_content, $filesize); > + $filesize = tell $fh; > + seek $fh, 0, SEEK_SET; > + read $fh, $special_content, $filesize; > + if ($special_content =~ s/^link //) { > + $mode = '120000'; > + seek $fh, 0, SEEK_SET; > + truncate $fh, 0; > + print $fh $special_content; > + } else { > + die "unexpected svn:special file encountered"; > + } > } else { > - $mode = '0644'; > + $mode = '100644'; > } > close ($fh); > > -- > 1.1.3 - : send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html