This patchset contains: - a replacement of explicit recursive dir iteration at copy_or_link_directory for the dir-iterator API; - some refactoring and behaviour changes at local clone, mainly to take care of symlinks and hidden files at .git/objects; and - tests for this type of files Changes since v4: - Improved and fixed errors at messages from patches 1, 3, 5, 6 and 7. - At first patch: - Simplified construction, changing a multi-line cat for an echo. - Removed unnecessary subshells. - Disabled gc.auto, just to make sure we don't get any undesired behaviour for this test - Removed the first section of a sed command ("s!/..\$!/X!;") that converts SHA-1s to fixed strings. No SHA-1 seemed to be changed by this section and neither it seemed to be used after the command. - At second patch, removed linkat() usage, which is POSIX.1-2008 and may not be supported in all platforms git is being built. Now the same effect is achieved using real_pathdup() + link(). v4: https://public-inbox.org/git/20190322232237.13293-1-matheus.bernardino@xxxxxx/ Matheus Tavares (6): clone: better handle symlinked files at .git/objects/ dir-iterator: add flags parameter to dir_iterator_begin clone: copy hidden paths at local clone clone: extract function from copy_or_link_directory clone: use dir-iterator to avoid explicit dir traversal clone: replace strcmp by fspathcmp Ævar Arnfjörð Bjarmason (1): clone: test for our behavior on odd objects/* content builtin/clone.c | 75 ++++++++++++--------- dir-iterator.c | 28 +++++++- dir-iterator.h | 39 +++++++++-- refs/files-backend.c | 2 +- t/t5604-clone-reference.sh | 133 +++++++++++++++++++++++++++++++++++++ 5 files changed, 235 insertions(+), 42 deletions(-) -- 2.20.1