Re: [PATCH] git-svn: Make branch use correct svn-remote

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Deskin Miller <deskinm@xxxxxxxxx> wrote:
> The 'branch' subcommand incorrectly had the svn-remote to use hardcoded
> as 'svn', the default remote name.  This meant that branches derived
> from other svn-remotes would try to use the branch and tag configuration
> for the 'svn' remote, potentially copying would-be branches to the wrong
> place in SVN, into the branch namespace for another project.
> 
> Fix this by using the remote name extracted from the svn info for the
> specified git ref.  Add a testcase for this behaviour.
> 
> Signed-off-by: Deskin Miller <deskinm@xxxxxxxxx>

Looks alright to me, thanks Deskin.

Acked-by: Eric Wong <normalperson@xxxxxxxx>

> ---
> Applies on v1.6.1-rc1.  Apologies for not catching this when first
> writing testcases for the branch subcommand.
> 
> Deskin Miller
> 
>  git-svn.perl                  |    2 +-
>  t/t9128-git-svn-cmd-branch.sh |   17 +++++++++++++++++
>  2 files changed, 18 insertions(+), 1 deletions(-)
> 
> diff --git a/git-svn.perl b/git-svn.perl
> index 914c707..e64e97b 100755
> --- a/git-svn.perl
> +++ b/git-svn.perl
> @@ -558,7 +558,7 @@ sub cmd_branch {
>  
>  	my ($src, $rev, undef, $gs) = working_head_info($head);
>  
> -	my $remote = Git::SVN::read_all_remotes()->{svn};
> +	my $remote = Git::SVN::read_all_remotes()->{$gs->{repo_id}};
>  	my $glob = $remote->{ $_tag ? 'tags' : 'branches' };
>  	my ($lft, $rgt) = @{ $glob->{path} }{qw/left right/};
>  	my $dst = join '/', $remote->{url}, $lft, $branch_name, ($rgt || ());
> diff --git a/t/t9128-git-svn-cmd-branch.sh b/t/t9128-git-svn-cmd-branch.sh
> index 47c4d4d..e2b6696 100755
> --- a/t/t9128-git-svn-cmd-branch.sh
> +++ b/t/t9128-git-svn-cmd-branch.sh
> @@ -56,4 +56,21 @@ test_expect_success 'git svn branch tests' '
>  	test_must_fail git svn tag tag1
>  '
>  
> +test_expect_success 'branch uses correct svn-remote' '
> +	(svn co "$svnrepo" svn &&
> +	cd svn &&
> +	mkdir mirror &&
> +	svn add mirror &&
> +	svn copy trunk tags branches mirror/ &&
> +	svn ci -m "made mirror" ) &&
> +	rm -rf svn &&
> +	git svn init -s -R mirror --prefix=mirror/ "$svnrepo"/mirror &&
> +	git svn fetch -R mirror &&
> +	git checkout mirror/trunk &&
> +	base=$(git rev-parse HEAD:) &&
> +	git svn branch -m "branch in mirror" d &&
> +	test $base = $(git rev-parse remotes/mirror/d:) &&
> +	test_must_fail git rev-parse remotes/d
> +'
> +
>  test_done
> -- 
> 1.6.1.rc1
--
To unsubscribe from this list: 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

[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux