show --first-parent/-m: do not default to --cc
Given that "git show" always shows some diff and does not walk the history by default, it is natural to expect "git show --first-parent" to show the difference between the given commit and its first parent. It also would be natural, given that "--cc" is the default, "git show -m" to show pairwise difference from each of the parents. We however always defaulted to --cc and there was no way to turn it off. Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
@ -329,6 +329,15 @@ static int show_tree_object(const unsigned char *sha1,
|
|||||||
|
|
||||||
static void show_rev_tweak_rev(struct rev_info *rev, struct setup_revision_opt *opt)
|
static void show_rev_tweak_rev(struct rev_info *rev, struct setup_revision_opt *opt)
|
||||||
{
|
{
|
||||||
|
if (rev->ignore_merges) {
|
||||||
|
/* There was no "-m" on the command line */
|
||||||
|
rev->ignore_merges = 0;
|
||||||
|
if (!rev->first_parent_only && !rev->combine_merges) {
|
||||||
|
/* No "--first-parent", "-c", nor "--cc" */
|
||||||
|
rev->combine_merges = 1;
|
||||||
|
rev->dense_combined_merges = 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
if (!rev->diffopt.output_format)
|
if (!rev->diffopt.output_format)
|
||||||
rev->diffopt.output_format = DIFF_FORMAT_PATCH;
|
rev->diffopt.output_format = DIFF_FORMAT_PATCH;
|
||||||
}
|
}
|
||||||
@ -347,10 +356,7 @@ int cmd_show(int argc, const char **argv, const char *prefix)
|
|||||||
|
|
||||||
init_revisions(&rev, prefix);
|
init_revisions(&rev, prefix);
|
||||||
rev.diff = 1;
|
rev.diff = 1;
|
||||||
rev.combine_merges = 1;
|
|
||||||
rev.dense_combined_merges = 1;
|
|
||||||
rev.always_show_header = 1;
|
rev.always_show_header = 1;
|
||||||
rev.ignore_merges = 0;
|
|
||||||
rev.no_walk = 1;
|
rev.no_walk = 1;
|
||||||
memset(&opt, 0, sizeof(opt));
|
memset(&opt, 0, sizeof(opt));
|
||||||
opt.def = "HEAD";
|
opt.def = "HEAD";
|
||||||
|
@ -239,6 +239,8 @@ show --root initial
|
|||||||
show side
|
show side
|
||||||
show master
|
show master
|
||||||
show -c master
|
show -c master
|
||||||
|
show -m master
|
||||||
|
show --first-parent master
|
||||||
show --stat side
|
show --stat side
|
||||||
show --stat --summary side
|
show --stat --summary side
|
||||||
show --patch-with-stat side
|
show --patch-with-stat side
|
||||||
|
30
t/t4013/diff.show_--first-parent_master
Normal file
30
t/t4013/diff.show_--first-parent_master
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
$ git show --first-parent master
|
||||||
|
commit 59d314ad6f356dd08601a4cd5e530381da3e3c64
|
||||||
|
Merge: 9a6d494 c7a2ab9
|
||||||
|
Author: A U Thor <author@example.com>
|
||||||
|
Date: Mon Jun 26 00:04:00 2006 +0000
|
||||||
|
|
||||||
|
Merge branch 'side'
|
||||||
|
|
||||||
|
diff --git a/dir/sub b/dir/sub
|
||||||
|
index cead32e..992913c 100644
|
||||||
|
--- a/dir/sub
|
||||||
|
+++ b/dir/sub
|
||||||
|
@@ -4,3 +4,5 @@ C
|
||||||
|
D
|
||||||
|
E
|
||||||
|
F
|
||||||
|
+1
|
||||||
|
+2
|
||||||
|
diff --git a/file0 b/file0
|
||||||
|
index b414108..10a8a9f 100644
|
||||||
|
--- a/file0
|
||||||
|
+++ b/file0
|
||||||
|
@@ -4,3 +4,6 @@
|
||||||
|
4
|
||||||
|
5
|
||||||
|
6
|
||||||
|
+A
|
||||||
|
+B
|
||||||
|
+C
|
||||||
|
$
|
93
t/t4013/diff.show_-m_master
Normal file
93
t/t4013/diff.show_-m_master
Normal file
@ -0,0 +1,93 @@
|
|||||||
|
$ git show -m master
|
||||||
|
commit 59d314ad6f356dd08601a4cd5e530381da3e3c64 (from 9a6d4949b6b76956d9d5e26f2791ec2ceff5fdc0)
|
||||||
|
Merge: 9a6d494 c7a2ab9
|
||||||
|
Author: A U Thor <author@example.com>
|
||||||
|
Date: Mon Jun 26 00:04:00 2006 +0000
|
||||||
|
|
||||||
|
Merge branch 'side'
|
||||||
|
|
||||||
|
diff --git a/dir/sub b/dir/sub
|
||||||
|
index cead32e..992913c 100644
|
||||||
|
--- a/dir/sub
|
||||||
|
+++ b/dir/sub
|
||||||
|
@@ -4,3 +4,5 @@ C
|
||||||
|
D
|
||||||
|
E
|
||||||
|
F
|
||||||
|
+1
|
||||||
|
+2
|
||||||
|
diff --git a/file0 b/file0
|
||||||
|
index b414108..10a8a9f 100644
|
||||||
|
--- a/file0
|
||||||
|
+++ b/file0
|
||||||
|
@@ -4,3 +4,6 @@
|
||||||
|
4
|
||||||
|
5
|
||||||
|
6
|
||||||
|
+A
|
||||||
|
+B
|
||||||
|
+C
|
||||||
|
|
||||||
|
commit 59d314ad6f356dd08601a4cd5e530381da3e3c64 (from c7a2ab9e8eac7b117442a607d5a9b3950ae34d5a)
|
||||||
|
Merge: 9a6d494 c7a2ab9
|
||||||
|
Author: A U Thor <author@example.com>
|
||||||
|
Date: Mon Jun 26 00:04:00 2006 +0000
|
||||||
|
|
||||||
|
Merge branch 'side'
|
||||||
|
|
||||||
|
diff --git a/dir/sub b/dir/sub
|
||||||
|
index 7289e35..992913c 100644
|
||||||
|
--- a/dir/sub
|
||||||
|
+++ b/dir/sub
|
||||||
|
@@ -1,4 +1,8 @@
|
||||||
|
A
|
||||||
|
B
|
||||||
|
+C
|
||||||
|
+D
|
||||||
|
+E
|
||||||
|
+F
|
||||||
|
1
|
||||||
|
2
|
||||||
|
diff --git a/file0 b/file0
|
||||||
|
index f4615da..10a8a9f 100644
|
||||||
|
--- a/file0
|
||||||
|
+++ b/file0
|
||||||
|
@@ -1,6 +1,9 @@
|
||||||
|
1
|
||||||
|
2
|
||||||
|
3
|
||||||
|
+4
|
||||||
|
+5
|
||||||
|
+6
|
||||||
|
A
|
||||||
|
B
|
||||||
|
C
|
||||||
|
diff --git a/file1 b/file1
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..b1e6722
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/file1
|
||||||
|
@@ -0,0 +1,3 @@
|
||||||
|
+A
|
||||||
|
+B
|
||||||
|
+C
|
||||||
|
diff --git a/file2 b/file2
|
||||||
|
deleted file mode 100644
|
||||||
|
index 01e79c3..0000000
|
||||||
|
--- a/file2
|
||||||
|
+++ /dev/null
|
||||||
|
@@ -1,3 +0,0 @@
|
||||||
|
-1
|
||||||
|
-2
|
||||||
|
-3
|
||||||
|
diff --git a/file3 b/file3
|
||||||
|
deleted file mode 100644
|
||||||
|
index 7289e35..0000000
|
||||||
|
--- a/file3
|
||||||
|
+++ /dev/null
|
||||||
|
@@ -1,4 +0,0 @@
|
||||||
|
-A
|
||||||
|
-B
|
||||||
|
-1
|
||||||
|
-2
|
||||||
|
$
|
Reference in New Issue
Block a user