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

Reply via email to