Hi,
I recently reorganized a project of mine, and the result is that a lot of
files moved from the top directory to a sub directory.
Now, I innocently tried to 'git log -M' some of these files in the
subdirectories, and well, the history just stops when the file was
created. Obviously, if I put both the old and the new location it works,
but shouldn't users expect 'git log -M -- file' to try to find the
previous path and continue from there ?
Mike
Mike Hommey [off-list ref] writes:
I recently reorganized a project of mine, and the result is that a lot of
files moved from the top directory to a sub directory.
Now, I innocently tried to 'git log -M' some of these files in the
subdirectories, and well, the history just stops when the file was
created. Obviously, if I put both the old and the new location it works,
but shouldn't users expect 'git log -M -- file' to try to find the
previous path and continue from there ?
What you want is not
git log -M -- file
but
git log --follow file
"git log -M -- file" IIRC first applies path limiting, simplifying
history, *then* does rename detection, and finally filters output
(unless --full-diff is used).
--
Jakub Narebski
Poland
ShadeHawk on #git
On Thu, Nov 26, 2009 at 09:14:37AM -0800, Jakub Narebski wrote:
Mike Hommey [off-list ref] writes:
quoted
I recently reorganized a project of mine, and the result is that a lot of
files moved from the top directory to a sub directory.
Now, I innocently tried to 'git log -M' some of these files in the
subdirectories, and well, the history just stops when the file was
created. Obviously, if I put both the old and the new location it works,
but shouldn't users expect 'git log -M -- file' to try to find the
previous path and continue from there ?
What you want is not
git log -M -- file
but
git log --follow file
"git log -M -- file" IIRC first applies path limiting, simplifying
history, *then* does rename detection, and finally filters output
(unless --full-diff is used).
That's what I was looking for, thanks. I would suggest to put --follow
closer to -M and -C in the documentation, but the way the git-log
manual is generated (including diff options) makes that impossible :(
Mike