Re: Am able to delete a file with no trace in the log
From: Junio C Hamano <hidden>
Date: 2016-06-15 22:46:54
Linus Torvalds [off-list ref] 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
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.