From: Petr Baudis Date: Sat, 07 May 2005 15:28:50 GMT Subject: Broken adding of cache entries Message-ID: <20050507152849.GD9495@pasky.ji.cz> In-Reply-To: <1115431767.32065.182.camel@localhost.localdomain> Dear diary, on Sat, May 07, 2005 at 04:09:27AM CEST, I got a letter where Kay Sievers told me that... ..snip.. > Look what funny thing you can do: > kay@mam:~/public_html/pub/scm/funny-tree$ git-ls-tree HEAD > 100644 blob b1a17ba136936531b72571844a773fe938b85ad4 entry > 040000 tree eba6ba02f18176500019755ad58c0bdfead16c47 entry > > Add a file to the cache, replace it with a directory, add that to the > cache and then write the tree and you have two entries with the same > name. :) Duh. Well, what could be the reasonwhy cache_name_compare() cares about flags at all? Can you _ever_ have two same-named entries? Junio, what do you think about something like this? Index: read-cache.c =================================================================== --- e47e2a558a85b33e0652233f78aa1ca8a959685b/read-cache.c (mode:100644) +++ uncommitted/read-cache.c (mode:100644) @@ -68,10 +68,6 @@ return -1; if (len1 > len2) return 1; - if (flags1 < flags2) - return -1; - if (flags1 > flags2) - return 1; return 0; } -- Petr "Pasky" Baudis Stuff: http://pasky.or.cz/ C++: an octopus made by nailing extra legs onto a dog. -- Steve Taylor