Bzr development stopped
Chris Hecker
checker at d6.com
Tue Nov 27 18:01:58 UTC 2012
> He implied that this strategy could be implemented in a way that is
> transparent to the user
But isn't this exactly analogous to the old svn argument that
copy+delete would work for rename and be transparent to the user?
Except, in practice, this stuff is subtle and it's really hard to get
all the edge cases, and I broke it constantly. I haven't used svn in a
while, so maybe they've finally spackled over all the trouble spots, but
renames were a disaster for the many years I used it.
bzr's rename support is so refreshingly solid, I never worry about
renaming files, changing them to get everything working, renaming a
directory after I renamed and/or changed some files, renaming them again
when I change my mind in the middle of a fix, it all Just Works, which
is what you want from a sccs feature.
Chris
On 2012/11/27 08:54, David Allouche wrote:
>
>
> On Tue, Nov 27, 2012 at 10:08 AM, Nicholas Allen
> <nick.allen at onlinehome.de <mailto:nick.allen at onlinehome.de>> wrote:
>
> On 11/27/2012 03:56 AM, Stephen J. Turnbull wrote:
>
> As far as tracking renames goes, there's a very simple strategy for
> guaranteeing 100% accuracy for git's inference algorithm: always
> rename (or copy, for that matter) in a separate commit, ensuring
> that
> git can do the matching at the "tree object" level by object
> hash. Of
> course then you're not happy as a Java developer, because the rename
> happens in a different commit.
>
> With bit of fussing, either in the VCS itself or in the IDE you
> could
> ensure that such commits happen on a branch, which is automatically
> merged with the desired parent. It will be a WTF for people who
> haven't seen it before looking at the history DAG. Except for that
> glitch, though, this strategy should pretty much satisfy the
> needs of
> Java developers, since it's not the rename tracking per se that they
> care about at commit time, it's that renames be bound to the content
> changes.
>
> That sounds like a complete nightmare! I would hate any system that
> worked this way. Simple recording of simple information that doesn't
> require extra branches etc is the only solution. It's not hard to
> record file renames into the history. Git disregards that
> information which is plain silly to me - there can be no downside to
> recording it whatsoever (even if Git wants to do intelligent stuff
> it can do both - it doesn't have to be one or the other). Git is
> just not a suitable version control system for Java development or
> any other kind of work where the names of file is really important.
> It might work accidentally but the algorithm will break down in some
> weird case and then all kinds of problems will emerge. I just don't
> want that kind of version control system for my java projects...
>
>
> I don't think you understand what Stephen suggested.
>
> What he was talking about was a storage-level strategy for reliably
> representing renames in git store.
>
> He implied that this strategy could be implemented in a way that is
> transparent to the user, both at commit time and when inspecting the
> history with the proper high level tools. The separate commit for pure
> rename would only visible when examining the raw history DAG.
>
>
>
>
More information about the bazaar
mailing list