Re: [PATCH] Fix path duplication in git svn commit-diff
- From
- Eric Wong <normalperson@yhbt.net>
- Date
- Jun 1, 2008, 09:48 UTC
- Message-ID
- <20080601094840.GB16064@hand.yhbt.net>
- In-Reply-To
- <20080517150330.31899.12398.stgit@yoghurt>
Karl Hasselström <kha@treskal.com> wrote:
Show 13 quoted lines
> Given an SVN repo file:///tmp/svntest/repo, trying to commit changes > to a file proj/trunk/foo.txt in that repo with this command line > > git svn commit-diff -r2 HEAD^ HEAD file:///tmp/svntest/repo/proj/trunk > > gave the error message > > Filesystem has no item: File not found: transaction '2-6', path > '/proj/trunk/proj/trunk/foo.txt' > > This fixes the duplication. > > Signed-off-by: Karl Hasselström <kha@treskal.com>
Thanks Karl,
Acked-by: Eric Wong <normalperson@yhbt.net>
Show 5 quoted lines
> --- > > I really don't have a clue as to why this was broken, but the patch > fixes the problem for me, and doesn't break the tests. I got the idea > from dcommit, which is setting svn_path to '' unconditionally.
Hardly anybody uses commit-diff directly :)
It was a low-level plumbing command that I used to implement the original version of dcommit in.
Show 26 quoted lines
> git-svn.perl | 3 +--
> 1 files changed, 1 insertions(+), 2 deletions(-)
>
>
> diff --git a/git-svn.perl b/git-svn.perl
> index 2c53f39..1c2a10a 100755
> --- a/git-svn.perl
> +++ b/git-svn.perl
> @@ -741,7 +741,7 @@ sub cmd_commit_diff {
> my $usage = "Usage: $0 commit-diff -r<revision> ".
> "<tree-ish> <tree-ish> [<URL>]";
> fatal($usage) if (!defined $ta || !defined $tb);
> - my $svn_path;
> + my $svn_path = '';
> if (!defined $url) {
> my $gs = eval { Git::SVN->new };
> if (!$gs) {
> @@ -765,7 +765,6 @@ sub cmd_commit_diff {
> $_message ||= get_commit_entry($tb)->{log};
> }
> my $ra ||= Git::SVN::Ra->new($url);
> - $svn_path ||= $ra->{svn_path};
> my $r = $_revision;
> if ($r eq 'HEAD') {
> $r = $ra->get_latest_revnum;
> -- Eric Wong