emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: The Gnus repository is switching to Git as of 2010-04-19


From: Ævar Arnfjörð Bjarmason
Subject: Re: The Gnus repository is switching to Git as of 2010-04-19
Date: Wed, 21 Apr 2010 16:36:45 +0000

On Wed, Apr 21, 2010 at 14:57, Teemu Likonen <address@hidden> wrote:
> * 2010-04-21 11:30 (UTC), Ęvar Arnfjörš Bjarmason wrote:
>
>> On Wed, Apr 21, 2010 at 02:59, Teemu Likonen <address@hidden> wrote:
>                          ^^^^^
>
> You make it look like I spent my night writing about this version
> control tool. :-) Timezone issues...

You should have seen your original Date header :)

> Yes, I know that, and would add that this default 50% detection
> threshold is based on the smaller of the two files.

Yeah, and that alone will catch the overwhelming majority of cases.

> I just wanted to point out that in practice Git (the tool) really
> understands renames. I have heard too many times that "in Git you must
> commit a rename and content changes separately" (which is wrong) and
> "Git doesn't understand renames at all" (which is very wrong, from the
> point of view of the tool's user). Technical people may talk about
> repository formats and different layers on top of that but I guess some
> of that talk has escaped the context and I keep hearing misinformation
> about Git-the-whole-system's abilities.

Right, as far as the end user is concerned it tracks renames better
than anything else I've tried.

People assume that "tracking renames" is something they want to do,
but in practice systems that do inode-like tracking quickly run into
trouble (as Linus pointed out:
http://marc.info/?l=git&m=114123702826251).

Git doesn't explicitly track renames (it just analyzes history) but
it'll catch cases where you copy some template file (e.g. release
notes) two two locations in one commit. Systems that do inode-like
tracking won't catch that. Neither will they catch things on the
sub-file level, like moving a function between two files.

On the other hand those systems have more information than Git does in
most cases. They can analyze history like Git does *and* take into
account how their inodes changed over time. The difference is that
once systems start tracking inodes they tend not to do history
analysis at all.

> Anyway, thank you. Your message shares very useful information.

Likewise.




reply via email to

[Prev in Thread] Current Thread [Next in Thread]