зеркало из https://github.com/microsoft/git.git
Fix `git svn` `rebase` & `dcommit` if top-level HEAD directory exist
When a file (or a directory) called HEAD exists in the working tree, internal calls git svn makes trigger "did you mean a revision or a path?" ambiguity check. $ git svn rebase fatal: ambiguous argument 'HEAD': both revision and filename Use '--' to separate paths from revisions, like this: 'git <command> [<revision>...] -- [<file>...]' rev-list --first-parent --pretty=medium HEAD: command returned error: 128 Explicitly disambiguate by adding "--" after the revision. Signed-off-by: Slava Kardakov <ojab@ojab.ru> Reviewed-by: Jeff King <peff@peff.net> Acked-by: Eric Wong <normalperson@yhbt.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Родитель
4d1c565e1f
Коммит
9926f66fbd
|
@ -831,7 +831,7 @@ sub dcommit_rebase {
|
||||||
sub cmd_dcommit {
|
sub cmd_dcommit {
|
||||||
my $head = shift;
|
my $head = shift;
|
||||||
command_noisy(qw/update-index --refresh/);
|
command_noisy(qw/update-index --refresh/);
|
||||||
git_cmd_try { command_oneline(qw/diff-index --quiet HEAD/) }
|
git_cmd_try { command_oneline(qw/diff-index --quiet HEAD --/) }
|
||||||
'Cannot dcommit with a dirty index. Commit your changes first, '
|
'Cannot dcommit with a dirty index. Commit your changes first, '
|
||||||
. "or stash them with `git stash'.\n";
|
. "or stash them with `git stash'.\n";
|
||||||
$head ||= 'HEAD';
|
$head ||= 'HEAD';
|
||||||
|
@ -1932,7 +1932,7 @@ sub cmt_sha2rev_batch {
|
||||||
sub working_head_info {
|
sub working_head_info {
|
||||||
my ($head, $refs) = @_;
|
my ($head, $refs) = @_;
|
||||||
my @args = qw/rev-list --first-parent --pretty=medium/;
|
my @args = qw/rev-list --first-parent --pretty=medium/;
|
||||||
my ($fh, $ctx) = command_output_pipe(@args, $head);
|
my ($fh, $ctx) = command_output_pipe(@args, $head, "--");
|
||||||
my $hash;
|
my $hash;
|
||||||
my %max;
|
my %max;
|
||||||
while (<$fh>) {
|
while (<$fh>) {
|
||||||
|
|
Загрузка…
Ссылка в новой задаче