threads / discuss / 16000

git history and file moves

Subject: git history and file moves

## tl;dr

7 messages between Oct 22, 2008 and Oct 24, 2008.

replies: 6people: 5as markdown or json

Lin Ming· Oct 22, 2008, 02:02 UTC · lore
I'm looking for a way to move files to a new directory and have the
full history follow the file automatically. Is this possible?

I know about --follow, but I want the history to just follow the file transparently. Also, we have a git web interface and we want the full history for the moved files to be available.

Thanks, Lin Ming

Alex Riesen· Oct 22, 2008, 11:19 UTC · re: Lin Ming · lore

Re: git history and file moves

2008/10/22 Lin Ming <ming.m.lin@intel.com>:
Show 5 quoted lines
> I'm looking for a way to move files to a new directory and have the
> full history follow the file automatically. Is this possible?
>
> I know about --follow, but I want the history to just follow the file
> transparently. ...

Of all Git tools, what does not do this "transparently" or "automatically"? How more transparent do you imagine this? What do you think should follow what?

I ask, because it is hard to understand what exactly is it you're missing: merge support (which we have), git log listing the files as copied/renamed (which is what --follow is for, and the suggestion for you is to make an alias or something), git blame (ever looked at git gui blame?) or gitk (which follows renames in default configuration)

> Also, we have a git web interface and we want the full
> history for the moved files to be available.

It is available. Whether it is shown is another question. git-web can be improved (or just configured?)

Michael J Gruber· Oct 22, 2008, 12:38 UTC · re: Alex Riesen · lore

Re: git history and file moves

Alex Riesen venit, vidit, dixit 10/22/08 13:19:
Show 22 quoted lines
> 2008/10/22 Lin Ming <ming.m.lin@intel.com>:
>> I'm looking for a way to move files to a new directory and have the
>> full history follow the file automatically. Is this possible?
>>
>> I know about --follow, but I want the history to just follow the file
>> transparently. ...
> 
> Of all Git tools, what does not do this "transparently" or "automatically"?
> How more transparent do you imagine this?
> What do you think should follow what?
> 
> I ask, because it is hard to understand what exactly is it you're missing:
> merge support (which we have), git log listing the files as copied/renamed
> (which is what --follow is for, and the suggestion for you is to make an
> alias or something), git blame (ever looked at git gui blame?) or gitk
> (which follows renames in default configuration)
> 
>> Also, we have a git web interface and we want the full
>> history for the moved files to be available.
> 
> It is available. Whether it is shown is another question. git-web can
> be improved (or just configured?)

By default, gitweb uses "-M" for diff. You can specify all options (-C, -CC, -B) using "@diff_opts" in the config file for gitweb.cgi - if that is what you are using. Is it?

Anyways, using default configs for git log and gitweb.cgi both of them show the full history (renames, history before and after) for me here, using current git (1.6.0.3.514.g2f91b). What is your setup?

Michael
Moore, Robert· Oct 24, 2008, 21:30 UTC · re: Michael J Gruber · lore

RE: git history and file moves

Here's what we have:
/var/www/cgi-bin/gitweb.acpica/gitweb.conf
Containts this : GITWEB_CSS = "/icons/gitweb.css";
What should we add to automatically get all file history?

Thanks, Bob

Show 43 quoted lines
>-----Original Message-----
>From: Michael J Gruber [mailto:git@drmicha.warpmail.net]
>Sent: Wednesday, October 22, 2008 5:39 AM
>To: Lin, Ming M
>Cc: Alex Riesen; git@vger.kernel.org; Moore, Robert
>Subject: Re: git history and file moves
>
>Alex Riesen venit, vidit, dixit 10/22/08 13:19:
>> 2008/10/22 Lin Ming <ming.m.lin@intel.com>:
>>> I'm looking for a way to move files to a new directory and have the
>>> full history follow the file automatically. Is this possible?
>>>
>>> I know about --follow, but I want the history to just follow the file
>>> transparently. ...
>>
>> Of all Git tools, what does not do this "transparently" or
>"automatically"?
>> How more transparent do you imagine this?
>> What do you think should follow what?
>>
>> I ask, because it is hard to understand what exactly is it you're
>missing:
>> merge support (which we have), git log listing the files as
>copied/renamed
>> (which is what --follow is for, and the suggestion for you is to make an
>> alias or something), git blame (ever looked at git gui blame?) or gitk
>> (which follows renames in default configuration)
>>
>>> Also, we have a git web interface and we want the full
>>> history for the moved files to be available.
>>
>> It is available. Whether it is shown is another question. git-web can
>> be improved (or just configured?)
>
>By default, gitweb uses "-M" for diff. You can specify all options (-C,
>-CC, -B) using  "@diff_opts" in the config file for gitweb.cgi - if that
>is what you are using. Is it?
>
>Anyways, using default configs for git log and gitweb.cgi both of them
>show the full history (renames, history before and after) for me here,
>using current git (1.6.0.3.514.g2f91b). What is your setup?
>
>Michael
Alex Riesen· Oct 24, 2008, 21:43 UTC · re: Moore, Robert · lore

Re: git history and file moves

2008/10/24 Moore, Robert <robert.moore@intel.com>:
Show 8 quoted lines
> Here's what we have:
>
> /var/www/cgi-bin/gitweb.acpica/gitweb.conf
>
> Containts this : GITWEB_CSS = "/icons/gitweb.css";
>
> What should we add to automatically get all file history?
>

Nothing. It is the default. You can change the variable Michael mentioned to use "-M -M -C -C" but it is very-very slow on any kind of history worth its commits.

And you almost never talk about _file_ history in Git. It is all _project_ history, filtered for commits which touch the file you're interested in at the moment of looking.

Moore, Robert· Oct 24, 2008, 22:01 UTC · re: Alex Riesen · lore

RE: git history and file moves

What we are seeing is an issue after we do a file move to a new directory. Once moved, the previous history of the file is not readily available. One needs to know to use --follow on the command line, and worse, gitweb does not show the full history at all.
We have almost a decade of history on the project, from several different source control systems. We often find it useful to go back and find out when something changed, so we want to keep it and have it easily available.
Show 24 quoted lines
>-----Original Message-----
>From: Alex Riesen [mailto:raa.lkml@gmail.com]
>Sent: Friday, October 24, 2008 2:43 PM
>To: Moore, Robert
>Cc: Michael J Gruber; Lin, Ming M; git@vger.kernel.org
>Subject: Re: git history and file moves
>
>2008/10/24 Moore, Robert <robert.moore@intel.com>:
>> Here's what we have:
>>
>> /var/www/cgi-bin/gitweb.acpica/gitweb.conf
>>
>> Containts this : GITWEB_CSS = "/icons/gitweb.css";
>>
>> What should we add to automatically get all file history?
>>
>
>Nothing. It is the default. You can change the variable Michael
>mentioned to use "-M -M -C -C" but it is very-very slow on any
>kind of history worth its commits.
>
>And you almost never talk about _file_ history in Git. It is all
>_project_ history, filtered for commits which touch the file you're
>interested in at the moment of looking.
Jakub Narebski· Oct 24, 2008, 22:13 UTC · re: Moore, Robert · lore

Re: git history and file moves

"Moore, Robert" <robert.moore@intel.com> writes:
Show 8 quoted lines
> 
> Thanks,
> Bob
> 
> >-----Original Message-----
>Michael J Gruber wrote:
>>Alex Riesen venit, vidit, dixit 10/22/08 13:19:
>>> 2008/10/22 Lin Ming <ming.m.lin@intel.com>:
Show 7 quoted lines
>>>> I'm looking for a way to move files to a new directory and have the
>>>> full history follow the file automatically. Is this possible?
>>>>
>>>> I know about --follow, but I want the history to just follow the file
>>>> transparently. ...
>>>
>>> Of all Git tools, what does not do this "transparently" or "automatically"?
[...]
Show 19 quoted lines
>>>> Also, we have a git web interface and we want the full
>>>> history for the moved files to be available.
>>>
>>> It is available. Whether it is shown is another question. git-web can
>>> be improved (or just configured?)
>>
>> By default, gitweb uses "-M" for diff. You can specify all options (-C,
>> -CC, -B) using  "@diff_opts" in the config file for gitweb.cgi - if that
>> is what you are using. Is it?
>>
>> Anyways, using default configs for git log and gitweb.cgi both of them
>> show the full history (renames, history before and after) for me here,
>> using current git (1.6.0.3.514.g2f91b). What is your setup?
>
> Here's what we have:
> 
> /var/www/cgi-bin/gitweb.acpica/gitweb.conf
> 
> Containts this : GITWEB_CSS = "/icons/gitweb.css";
This fragment has nothing to do with rename (file movement) detection.
> 
> What should we add to automatically get all file history?

While the 'commitdiff' view would, in default gitweb configuration, contain information about file renames, currently 'history' view does not support '--follow' option to git-log. It wouldn't be too hard to add it, but it just wasn't done (well, add to this the fact that --follow works only for simple cases).

-- 
Jakub Narebski
Poland
ShadeHawk on #git

← back to recent threads