This series teaches read_tree_recursive() how to traverse gitlink entries when explicitly instructed to do so (by the return value from the provided callback function) and then uses this functionallity in git-archive to implement a basic --submodules option (as suggested by René in http://thread.gmane.org/gmane.comp.version-control.git/106167/focus=106235). The commit message of the third patch has some suggestions on how the new feature may be extended to support more use cases - hopefully this will cover the issues mentioned by Johannes and Junio in the same thread. Lars Hjemli (3): tree.c: teach read_tree_recursive how to traverse gitlink entries sha1_file: prepare for adding alternates on demand archive.c: add basic support for submodules Documentation/git-archive.txt | 3 + archive.c | 53 ++++++++++++++++++- archive.h | 1 + builtin-ls-tree.c | 9 +--- cache.h | 1 + merge-recursive.c | 2 +- sha1_file.c | 40 +++++++++----- t/t5001-archive-submodules.sh | 121 +++++++++++++++++++++++++++++++++++++++++ tree.c | 28 ++++++++++ 9 files changed, 236 insertions(+), 22 deletions(-) create mode 100755 t/t5001-archive-submodules.sh -- 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