git/list[1] front-page[2] threads[3] people[4] search[5] about
 

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

From
EWEric Wong <normalperson@yhbt.net>
Date
Dec 2, 2008, 21:51 UTC
Message-ID
<20081202215157.GB9650@hand.yhbt.net>
In-Reply-To
<1228185780-22938-1-git-send-email-deskinm@umich.edu>
Deskin Miller <deskinm@umich.edu> wrote:
Show 10 quoted lines
> 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@umich.edu>
Looks alright to me, thanks Deskin.
Acked-by: Eric Wong <normalperson@yhbt.net>
Show 51 quoted lines
> ---
> 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
Previous: Deskin MillerNext: Junio C Hamano
Message 2 of 8 in “git-svn: Make branch use correct svn-remote”
  1. git-svn: Make branch use correct svn-remoteDeskin Miller, Dec 2, 2008
  2. Eric WongDec 2, 2008
  3. Junio C HamanoDec 3, 2008
  4. Make t9128-git-svn-cmd-branch pass with svn 1.4Michael J Gruber, Dec 3, 2008
  5. Michael J GruberDec 3, 2008
  6. Junio C HamanoDec 3, 2008
  7. Deskin MillerDec 3, 2008
  8. Eric WongDec 4, 2008

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.