Re: diff-index --cc no longer permitted, gitk is now broken (slightly)
- From
Jeff King <peff@peff.net>
- Date
- Aug 30, 2021, 18:13 UTC
- Message-ID
- <YS0f37xPKOHCDHr1@coredump.intra.peff.net>
- In-Reply-To
- <875yvn9j69.fsf@osv.gnss.ru>
On Mon, Aug 30, 2021 at 04:05:50PM +0300, Sergey Organov wrote:
Show 7 quoted lines
> > Is gitk wrong to add --cc unconditionally? Should it do so only when > > there are conflicts? Or not at all? > > As far as I can tell, --cc had no effect on diff-index, it was just > silently consumed. If I'm right, this line in gitk never needed --cc. > Then either gitk is to be fixed, or we can "fix" diff-index to silently > consume --cc/-c again, for backward compatibility.
I think it does have an effect. Try this to generate a simple merge conflict:
git init repo cd repo
echo base >file git add file git commit -m base
echo main >file git commit -am main
git checkout -b side HEAD^ echo side >file git commit -am side
git merge main ;# maybe master here depending on your config
And then with pre-v2.33 Git, --cc does a combined diff:
$ git.v2.32.0 diff-index -p HEAD diff --git a/file b/file index 2299c37..81768df 100644 --- a/file +++ b/file @@ -1 +1,5 @@ +<<<<<<< HEAD side +======= +main +>>>>>>> main
$ git.v2.32.0 diff-index --cc HEAD diff --cc file index df967b9,2299c37..0000000 --- a/file +++ b/file @@@ -1,1 -1,1 +1,5 @@@ - base ++<<<<<<< HEAD + side ++======= ++main ++>>>>>>> main
Likewise, --raw will show a combined diff, though it's a bit less useful because the unmerged entry has a null sha1:
$ git.v2.32.0 diff-index HEAD :100644 100644 2299c37978265a95cbe835a4b0f0bbf15aad5549 0000000000000000000000000000000000000000 M file
$ git.v2.32.0 diff-index --cc --raw HEAD ::100644 100644 100644 df967b96a579e45a18b8251732d16804b2e56a55 2299c37978265a95cbe835a4b0f0bbf15aad5549 0000000000000000000000000000000000000000 MM file
-Peff