mirror of
https://github.com/git/git.git
synced 2025-12-12 20:36:24 +01:00
Make 'traverse_trees()' traverse conflicting DF entries in parallel
This makes the traverse_trees() entry comparator routine use the more relaxed form of name comparison that considers files and directories with the same name identical. We pass in a separate mask for just the directory entries, so that the callback routine can decide (if it wants to) to only handle one or the other type, but generally most (all?) users are expected to really want to see the case of a name 'foo' showing up in one tree as a file and in another as a directory at the same time. In particular, moving 'unpack_trees()' over to use this tree traversal mechanism requires this. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
committed by
Junio C Hamano
parent
5803c6f8a2
commit
91e4f03604
@@ -34,7 +34,7 @@ int tree_entry(struct tree_desc *, struct name_entry *);
|
||||
void *fill_tree_descriptor(struct tree_desc *desc, const unsigned char *sha1);
|
||||
|
||||
struct traverse_info;
|
||||
typedef int (*traverse_callback_t)(int n, unsigned long mask, struct name_entry *entry, struct traverse_info *);
|
||||
typedef int (*traverse_callback_t)(int n, unsigned long mask, unsigned long dirmask, struct name_entry *entry, struct traverse_info *);
|
||||
int traverse_trees(int n, struct tree_desc *t, struct traverse_info *info);
|
||||
|
||||
struct traverse_info {
|
||||
@@ -42,6 +42,7 @@ struct traverse_info {
|
||||
struct name_entry name;
|
||||
int pathlen;
|
||||
|
||||
unsigned long conflicts;
|
||||
traverse_callback_t fn;
|
||||
void *data;
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user