# Re: [PATCH] git-svnimport symlink support

5 messages from 2006-04-17 to 2006-04-20. Participants: Junio C Hamano, smurf@smurf.noris.de, Martin Langhoff.
Thread: https://gitlist.dev/t/3903

## Junio C Hamano, 2006-04-17 19:29

Subject: Re: [PATCH] git-svnimport symlink support
Message-ID: <7v3bgcngqc.fsf@assigned-by-dhcp.cox.net>
URL: https://gitlist.dev/e/7v3bgcngqc.fsf%40assigned-by-dhcp.cox.net
In-Reply-To: <E1FVRRH-0003Wz-6w@fencepost.gnu.org>

```
Herbert Valerio Riedel <hvr@gnu.org> 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@gnu.org>
>
>
> ---
>
>  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

```

## smurf@smurf.noris.de, 2006-04-18 09:11

Subject: Re: [PATCH] git-svnimport symlink support
Message-ID: <20060418091108.GC6650@smurf.noris.de>
URL: https://gitlist.dev/e/20060418091108.GC6650%40smurf.noris.de
In-Reply-To: <7v3bgcngqc.fsf@assigned-by-dhcp.cox.net>

```
Hi,

Junio C Hamano:
> Karl, Martin, Smurf, Comments?
OK with me.
-- 
Matthias Urlichs   |   {M:U} IT Design @ m-u-it.de   |  smurf@smurf.noris.de

```

## Martin Langhoff, 2006-04-19 00:16

Subject: Re: [PATCH] git-svnimport symlink support
Message-ID: <46a038f90604181716t3d04ec95u92401858736fa6dc@mail.gmail.com>
URL: https://gitlist.dev/e/46a038f90604181716t3d04ec95u92401858736fa6dc%40mail.gmail.com
In-Reply-To: <7v3bgcngqc.fsf@assigned-by-dhcp.cox.net>

```
On 4/18/06, Junio C Hamano <junkio@cox.net> wrote:
> Karl, Martin, Smurf, Comments?

+1 but bear in mind that I am not learned in the ways of the SVN specials...

martin

```

## smurf@smurf.noris.de, 2006-04-20 06:15

Subject: Re: [PATCH] git-svnimport symlink support
Message-ID: <20060420061546.GF15270@smurf.noris.de>
URL: https://gitlist.dev/e/20060420061546.GF15270%40smurf.noris.de
In-Reply-To: <46a038f90604181716t3d04ec95u92401858736fa6dc@mail.gmail.com>

```
Hi,

Martin Langhoff:
> On 4/18/06, Junio C Hamano <junkio@cox.net> wrote:
> > Karl, Martin, Smurf, Comments?
> 
> +1 but bear in mind that I am not learned in the ways of the SVN specials...
> 
Neither am I, but if it seems to work -- *shrug*.
-- 
Matthias Urlichs   |   {M:U} IT Design @ m-u-it.de   |  smurf@smurf.noris.de

```

## Junio C Hamano, 2006-04-20 06:54

Subject: Re: [PATCH] git-svnimport symlink support
Message-ID: <7vr73s3ffl.fsf@assigned-by-dhcp.cox.net>
URL: https://gitlist.dev/e/7vr73s3ffl.fsf%40assigned-by-dhcp.cox.net
In-Reply-To: <20060420061546.GF15270@smurf.noris.de>

```
Thanks all.

```
