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>
This commit is contained in:

committed by
Junio C Hamano

parent
a18b632762
commit
72942938bf
@ -30,7 +30,8 @@ use Getopt::Long qw/:config gnu_getopt no_ignore_case auto_abbrev/;
|
|||||||
use File::Spec qw//;
|
use File::Spec qw//;
|
||||||
my $sha1 = qr/[a-f\d]{40}/;
|
my $sha1 = qr/[a-f\d]{40}/;
|
||||||
my $sha1_short = qr/[a-f\d]{6,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,
|
GetOptions( 'revision|r=s' => \$_revision,
|
||||||
'no-ignore-externals' => \$_no_ignore_ext,
|
'no-ignore-externals' => \$_no_ignore_ext,
|
||||||
@ -38,6 +39,8 @@ GetOptions( 'revision|r=s' => \$_revision,
|
|||||||
'edit|e' => \$_edit,
|
'edit|e' => \$_edit,
|
||||||
'rmdir' => \$_rmdir,
|
'rmdir' => \$_rmdir,
|
||||||
'help|H|h' => \$_help,
|
'help|H|h' => \$_help,
|
||||||
|
'find-copies-harder' => \$_find_copies_harder,
|
||||||
|
'l=i' => \$_l,
|
||||||
'no-stop-on-copy' => \$_no_stop_copy );
|
'no-stop-on-copy' => \$_no_stop_copy );
|
||||||
my %cmd = (
|
my %cmd = (
|
||||||
fetch => [ \&fetch, "Download new revisions from SVN" ],
|
fetch => [ \&fetch, "Download new revisions from SVN" ],
|
||||||
@ -348,7 +351,10 @@ sub svn_checkout_tree {
|
|||||||
my $pid = open my $diff_fh, '-|';
|
my $pid = open my $diff_fh, '-|';
|
||||||
defined $pid or croak $!;
|
defined $pid or croak $!;
|
||||||
if ($pid == 0) {
|
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);
|
my $mods = parse_diff_tree($diff_fh);
|
||||||
unless (@$mods) {
|
unless (@$mods) {
|
||||||
|
@ -99,6 +99,13 @@ OPTIONS
|
|||||||
default for objects that are commits, and forced on when committing
|
default for objects that are commits, and forced on when committing
|
||||||
tree objects.
|
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
|
COMPATIBILITY OPTIONS
|
||||||
---------------------
|
---------------------
|
||||||
--no-ignore-externals::
|
--no-ignore-externals::
|
||||||
|
Reference in New Issue
Block a user