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/[email protected]/
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