Teach directory traversal about subprojects
authorLinus Torvalds <torvalds@linux-foundation.org>
Wed, 11 Apr 2007 21:49:44 +0000 (14:49 -0700)
committerJunio C Hamano <junkio@cox.net>
Thu, 12 Apr 2007 02:09:55 +0000 (19:09 -0700)
commit095952585c2a955f45deac69df17a702d7584c80
treeb82f2b3aa70b28539a67252961d521999c786aa3
parent1833a925484675b328d5df04ffca62efa7a0a012
Teach directory traversal about subprojects

This is the promised cleaned-up version of teaching directory traversal
(ie the "read_directory()" logic) about subprojects. That makes "git add"
understand to add/update subprojects.

It now knows to look at the index file to see if a directory is marked as
a subproject, and use that as information as whether it should be recursed
into or not.

It also generally cleans up the handling of directory entries when
traversing the working tree, by splitting up the decision-making process
into small functions of their own, and adding a fair number of comments.

Finally, it teaches "add_file_to_cache()" that directory names can have
slashes at the end, since the directory traversal adds them to make the
difference between a file and a directory clear (it always did that, but
my previous too-ugly-to-apply subproject patch had a totally different
path for subproject directories and avoided the slash for that case).

Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>
dir.c
dir.h
read-cache.c