On Sat, 23 Apr 2005, Petr Baudis wrote:
>
> Just FYI, this is bug in core git's diff-cache;
Nice find.
Yes, I told you guys I hadn't tested it well ;)
"diff-cache" does the same "diff trees in lockstep" thing that "diff-tree"
does, but it's actually more complex, since the _tree_ part always needs
to be recursively followed, while the _cache_ part is this linear list
that is already expanded.
Which just made the whole algorithm very messy.
Once I found out how nasty it was to do that compare, I was actually
planning to re-write the thing using the same approach that "read-tree -m
<tree>" does - ie move the tree information _into_ the in-memory cache, at
which point it should be absolutely trivial to compare the two. But since
the horrid algorithm seemed to end up working, I never did.
I'm not even going to debug this bug. I'm just going to rewrite diff-cache
to do what I should have done originally, ie use the power of the
in-memory cache. That's also automatically going to properly warn about
unmerged files.
Give me five minutes ;)
Linus
-
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at http://vger.kernel.org/majordomo-info.html