git and bzr
Jakub Narebski
jnareb at gmail.com
Tue Nov 28 18:06:27 GMT 2006
Nicholas Allen wrote:
>> The reason this is a good example is simply the fact that it should
>> totally silence anybody who still thinks that tracking file identities is
>> a good thing. It explains well why tracking file identities is just
>> _stupid_.
>
> I'm unfamiliar with git so I could be totally wrong here!
>
> I know that bzr supports file renames/moves very effectively and I
This means: _usually_ works, doesn't it? Emphasisis on "usually"?
> understood that git doesn't support this to the same extent (correct me
> if I am wrong as I have not used git at all!).
Git supports renames/moves in different way. Instead of recording renames
(which has trouble on it's own, for example rename via applying patch)
in the repository it _detect_ renames when needed.
> If that is the case, could that be because bzr gives each file its own
> id and can detect this easily but git's content based approach can't? If
> so then claiming file identifiers is *stupid* seems a bit extreme. So I
> would have thought *both* file identifiers and line/content identifiers
> are needed for tracking changes made to the files and to their contents
> respectively. When a file is copied then the contents are copied and it
> is given a new file identifier. When a file is moved it keeps the same
> identifier. So don't you need file identifiers as well as line/content
> identifiers?
There are trouble with file-ids. Most common example is trouble with file
which was created in two branches (two repositories) independently, then
branches got merged. Most (all?) file-id based rename detection has trouble
with repeated merging of those branches, even if there are no true
conflicts.
Read Linus post about file-id based rename detection:
Message-ID: <Pine.LNX.4.64.0610201049250.3962 at g5.osdl.org>
http://permalink.gmane.org/gmane.comp.version-control.bazaar-ng.general/18458
Not that contents based rename detection doesn have it's own pitfals:
Message-ID: <7virha4cnm.fsf at assigned-by-dhcp.cox.net>
http://permalink.gmane.org/gmane.comp.version-control.git/31899
--
Jakub Narebski
Warsaw, Poland
ShadeHawk on #git
More information about the bazaar
mailing list