mbox series

[GSoC,v4,0/7] clone: dir-iterator refactoring with tests

Message ID 20190322232237.13293-1-matheus.bernardino@usp.br (mailing list archive)
Headers show
Series clone: dir-iterator refactoring with tests | expand

Message

Matheus Tavares March 22, 2019, 11:22 p.m. UTC
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 v3 includes:
- Addressed Duy's and Ævar's comments and suggestions in v2,
  including but not limited to:
  - Add patch to replace strcmp for fspathcmp
  - Code comments refactoring
  - Unident snippet at mkdir_if_missing
- Made t5604 added subtests pass under GIT_TEST_MULTI_PACK_INDEX=1
  and GIT_TEST_COMMIT_GRAPH=1
- Re-implemented patch 2 with linkat(), to be simpler and have a safer
  behaviour when clonning repos with symlinks at .git/objects
- Split first patch's tests into patches 1 and 2, tweaked it a little
  to reflect the previous item changes, and replaced some usages of the
  string 'link' for 'symlink' just to avoid confusion with 'hardlinks'
  which are also known just by 'links'.

v3: https://public-inbox.org/git/20190226122829.19178-1-avarab@gmail.com/

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            |  72 ++++++++++---------
 dir-iterator.c             |  28 +++++++-
 dir-iterator.h             |  39 +++++++++--
 refs/files-backend.c       |   2 +-
 t/t5604-clone-reference.sh | 137 +++++++++++++++++++++++++++++++++++++
 5 files changed, 236 insertions(+), 42 deletions(-)