Re: What's new in git.git master branch
- From
Fredrik Kuivinen <freku045@student.liu.se>
- Date
- Dec 1, 2005, 08:54 UTC
- Message-ID
- <20051201085433.GA7866@c165.ib.student.liu.se>
- In-Reply-To
- <7vlkz5n3r1.fsf@assigned-by-dhcp.cox.net>
On Wed, Nov 30, 2005 at 02:57:06PM -0800, Junio C Hamano wrote:
[...]
> - ls-tree rewrite (Linus).
[...]
Show 5 quoted lines
> One interesting change is ls-tree rewrite by Linus. The command > does _not_ show tree nodes when running with -r flag anymore. > Running "git diff v0.99.9i t/t3100-ls-tree-restrict.sh" > after updating to the master tells you the summary of changes in > the behaviour.
It turns out that this change breaks the directory/file conflict handling in git-merge-recursive. Right now merge-recursive uses
git-ls-tree -r -z <tree SHA1>
to get a listing of every blob object (which corresponds to files) and every tree object (which corresponds to directories) in the tree designated by the SHA1. With the new ls-tree behaviour we don't get any tree objects and hence merge-recursive can't do the d/f conflict detection as it doesn't know about the directories. As we don't track empty directories it could be fixed within git-merge-recursive, a list of the directory names can be obtained from the list of file names by stripping everything after the last slash in the file names.
Should we do it that way or should ls-tree be changed?
- Fredrik