<br><br><div class="gmail_quote">On Tue, Nov 27, 2012 at 10:08 AM, Nicholas Allen <span dir="ltr"><<a href="mailto:nick.allen@onlinehome.de" target="_blank">nick.allen@onlinehome.de</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div class="im">On 11/27/2012 03:56 AM, Stephen J. Turnbull wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
As far as tracking renames goes, there's a very simple strategy for<br>
guaranteeing 100% accuracy for git's inference algorithm: always<br>
rename (or copy, for that matter) in a separate commit, ensuring that<br>
git can do the matching at the "tree object" level by object hash. Of<br>
course then you're not happy as a Java developer, because the rename<br>
happens in a different commit.<br>
<br>
With bit of fussing, either in the VCS itself or in the IDE you could<br>
ensure that such commits happen on a branch, which is automatically<br>
merged with the desired parent. It will be a WTF for people who<br>
haven't seen it before looking at the history DAG. Except for that<br>
glitch, though, this strategy should pretty much satisfy the needs of<br>
Java developers, since it's not the rename tracking per se that they<br>
care about at commit time, it's that renames be bound to the content<br>
changes.<br>
</blockquote></div>
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...<br>
</blockquote><div><br></div><div>I don't think you understand what Stephen suggested.</div><div><br></div><div>What he was talking about was a storage-level strategy for reliably representing renames in git store.</div>
<div><br></div><div>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.</div>
<div><br></div><div><br></div><div> </div></div><br>