summaryrefslogtreecommitdiff
path: root/contrib/git-svn
diff options
context:
space:
mode:
authorLibravatar Eric Wong <normalperson@yhbt.net>2006-02-20 10:57:26 -0800
committerLibravatar Junio C Hamano <junkio@cox.net>2006-02-20 13:32:40 -0800
commit72942938bfd3587a52906890d7123c49ab71fafc (patch)
treee14eda8224f6a13fa3211dc7a3b3d78311448dd0 /contrib/git-svn
parentgit-svn: fix a typo in defining the --no-stop-on-copy option (diff)
downloadtgif-72942938bfd3587a52906890d7123c49ab71fafc.tar.xz
git-svn: allow --find-copies-harder and -l<num> to be passed on commit
Both of these options are passed directly to git-diff-tree when committing to a SVN repository. Signed-off-by: Eric Wong <normalperson@yhbt.net> Signed-off-by: Junio C Hamano <junkio@cox.net>
Diffstat (limited to 'contrib/git-svn')
-rwxr-xr-xcontrib/git-svn/git-svn10
-rw-r--r--contrib/git-svn/git-svn.txt7
2 files changed, 15 insertions, 2 deletions
diff --git a/contrib/git-svn/git-svn b/contrib/git-svn/git-svn
index 1a8f40eddf..477ec1694b 100755
--- a/contrib/git-svn/git-svn
+++ b/contrib/git-svn/git-svn
@@ -30,7 +30,8 @@ use Getopt::Long qw/:config gnu_getopt no_ignore_case auto_abbrev/;
use File::Spec qw//;
my $sha1 = qr/[a-f\d]{40}/;
my $sha1_short = qr/[a-f\d]{6,40}/;
-my ($_revision,$_stdin,$_no_ignore_ext,$_no_stop_copy,$_help,$_rmdir,$_edit);
+my ($_revision,$_stdin,$_no_ignore_ext,$_no_stop_copy,$_help,$_rmdir,$_edit,
+ $_find_copies_harder, $_l);
GetOptions( 'revision|r=s' => \$_revision,
'no-ignore-externals' => \$_no_ignore_ext,
@@ -38,6 +39,8 @@ GetOptions( 'revision|r=s' => \$_revision,
'edit|e' => \$_edit,
'rmdir' => \$_rmdir,
'help|H|h' => \$_help,
+ 'find-copies-harder' => \$_find_copies_harder,
+ 'l=i' => \$_l,
'no-stop-on-copy' => \$_no_stop_copy );
my %cmd = (
fetch => [ \&fetch, "Download new revisions from SVN" ],
@@ -348,7 +351,10 @@ sub svn_checkout_tree {
my $pid = open my $diff_fh, '-|';
defined $pid or croak $!;
if ($pid == 0) {
- exec(qw(git-diff-tree -z -r -C), $from, $commit) or croak $!;
+ my @diff_tree = qw(git-diff-tree -z -r -C);
+ push @diff_tree, '--find-copies-harder' if $_find_copies_harder;
+ push @diff_tree, "-l$_l" if defined $_l;
+ exec(@diff_tree, $from, $commit) or croak $!;
}
my $mods = parse_diff_tree($diff_fh);
unless (@$mods) {
diff --git a/contrib/git-svn/git-svn.txt b/contrib/git-svn/git-svn.txt
index 4b79fb0be6..9912f5a6a9 100644
--- a/contrib/git-svn/git-svn.txt
+++ b/contrib/git-svn/git-svn.txt
@@ -99,6 +99,13 @@ OPTIONS
default for objects that are commits, and forced on when committing
tree objects.
+-l<num>::
+--find-copies-harder::
+ Both of these are only used with the 'commit' command.
+
+ They are both passed directly to git-diff-tree see
+ git-diff-tree(1) for more information.
+
COMPATIBILITY OPTIONS
---------------------
--no-ignore-externals::