Hi! On Wed, Jul 16, 2008 at 07:37:57PM -0700, Junio C Hamano wrote: > Petr Baudis <pasky@xxxxxxx> writes: > > > ... The horrid > > index_path_src_sha1 hack is unfortunately much worse, > > This one certainly is ugly beyond words. ;-) > By the way, why is it even necessary to rehash the contents when you run > "mv"? > > IOW, > > $ >foo > $ git add foo > $ echo 1 >foo > $ git mv foo bar > > makes "foo" disappear from the index and adds "bar", but it makes the > local change added to the index at the same time. > > Side note. It actually is a lot worse than that. When you move > something to another existing entry, the code does not even add > the object name of moved entry recorded in the index, nor rehashes > the moved file. This is totally inconsistent! > > I personally think these buggy behaviours you are trying to inherit are > making this patch more complex than necessary. Perhaps this needs to be > fixed up even further (you did some fix with the first patch) before > adding new features? For example, I think it is a bug that the > "overwrite" codepath does not work with symlinks. I agree that it would be much cleaner to fix this; I got puzzled about this behaviour a bit, but I was afraid to break the traditional behaviour. However, if you are feeling this brave, patch to follow up shortly. :-) > * Then, only for case (1), you do not call add_file_to_cache() -- because > you know you do not have anything you can rehash; instead, factor out > the codepath "git-update-index --cacheinfo" uses and call that. This is excellent hint, sort of what I hoped for, thanks! I forgot about --cacheinfo completely, which is truly a shame especially when I look at the history of this switch. ;-) (BTW, curiously, the commit lists Linus as an author even though the patch is yours. Maybe this was merely some imperfection of the early scripts around Git, though.) I really did not touch git internals for way too long. -- Petr "Pasky" Baudis GNU, n. An animal of South Africa, which in its domesticated state resembles a horse, a buffalo and a stag. In its wild condition it is something like a thunderbolt, an earthquake and a cyclone. -- A. Pierce -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html