Skip to content

Commit

Permalink
show --first-parent/-m: do not default to --cc
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Junio C Hamano committed Mar 9, 2010
1 parent b449005 commit 2bf6587
Show file tree
Hide file tree
Showing 4 changed files with 134 additions and 3 deletions.
12 changes: 9 additions & 3 deletions builtin-log.c
Original file line number Diff line number Diff line change
Expand Up @@ -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)
{
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)
rev->diffopt.output_format = DIFF_FORMAT_PATCH;
}
Expand All @@ -347,10 +356,7 @@ int cmd_show(int argc, const char **argv, const char *prefix)

init_revisions(&rev, prefix);
rev.diff = 1;
rev.combine_merges = 1;
rev.dense_combined_merges = 1;
rev.always_show_header = 1;
rev.ignore_merges = 0;
rev.no_walk = 1;
memset(&opt, 0, sizeof(opt));
opt.def = "HEAD";
Expand Down
2 changes: 2 additions & 0 deletions t/t4013-diff-various.sh
Original file line number Diff line number Diff line change
Expand Up @@ -239,6 +239,8 @@ show --root initial
show side
show master
show -c master
show -m master
show --first-parent master
show --stat side
show --stat --summary side
show --patch-with-stat side
Expand Down
30 changes: 30 additions & 0 deletions t/t4013/diff.show_--first-parent_master
Original file line number Diff line number Diff line change
@@ -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 changes: 93 additions & 0 deletions t/t4013/diff.show_-m_master
Original file line number Diff line number Diff line change
@@ -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
$

0 comments on commit 2bf6587

Please sign in to comment.