Re: Am able to delete a file with no trace in the log
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Jun 3, 2009, 22:38 UTC
- Message-ID
- <7vmy8p54fr.fsf@alter.siamese.dyndns.org>
- In-Reply-To
- <alpine.LFD.2.01.0906031504080.4880@localhost.localdomain>
Linus Torvalds <torvalds@linux-foundation.org> writes:
> For example, right now there is _no_ way to get even a "show diff relative > to first parent". You can do "-m", which will show it relative to _both_ > parents, but nobody ever wants that. And you can do "-c" or "--cc", but > that simplifies away all the paths that match in one.
Actually for that "Where did my file 'x' go across the merge chain", I was going to suggest something like
git log --simplify-merges -m --raw -- x
Show 8 quoted lines
> So here's a challenge: in the git repository, get a nice view of what your
> merges looked like. The closest I can get is
>
> git log -c --stat --grep="Merge branch '"
>
> which is actually very non-intuitive ("-c" on its own gives no useful
> output, but "-c --stat" gives nice diffstat against the first parent,
> which in this case is what we want).I think the logical place to hook that into is the --first-parent option.
I actually have very hard resisted so far the temptation to do so because your mantra has always been "in a merge, all parents are equal." If you treat the first parent specially too heavily, it would go against the "I got a pull request from you, but the resulting conflicts are too much for me; you know the area much better than I do, so could you do the merge for me and I'll fast forward to you later" workflow. The "first parent is the mainline" and "I am important, so I'll merge with --no-ff to pee in the snow" mentality problems will become worse.