From: Daniel Ferreira Date: Wed, 29 Mar 2017 00:32:08 GMT Subject: [PATCH v4 0/5] [GSoC] remove_subtree(): reimplement using iterators Message-ID: <1490747533-89143-1-git-send-email-bnmvco@gmail.com> Hi there, This is the fourth version of the GSoC microproject of refactoring remove_subtree() from recursively using readdir() to use dir_iterator. Below are the threads for other versions: v1: https://public-inbox.org/git/CAGZ79kZwT-9mHTiOJ5CEjk2wDFkn6+NcogjX0=vjhsAh16ANYg@mail.gmail.com/T/#t v2: https://public-inbox.org/git/CACsJy8Dxh-QPBBLfaFWPAWUsbA9GVXA7x+mXLjEvYKhk1zOpig@mail.gmail.com/T/#t v3: https://public-inbox.org/git/CAGZ79kYtpmURSQWPumobA=e3JBFjKhWCdv_LPhKCd71ZRwMovA@mail.gmail.com/T/#t In this version of the patch, I followed Michael's suggestion of splitting the commits responsible for adding the new feature to dir_iterator. His suggestion of using flags instead of an options struct has also been adopted. This version also contains a test that is finally able to test the function decently (not the one Stefan had suggested, which did not result in a call to remove_subtree). I am just unsure about its location in t/. I'd appreciate suggestions to put it in a more decent home. Daniel Ferreira (5): dir_iterator: add helpers to dir_iterator_advance dir_iterator: iterate over dir after its contents remove_subtree(): reimplement using iterators remove_subtree(): test removing nested directories files_reflog_iterator: amend use of dir_iterator dir-iterator.c | 105 +++++++++++++++++++++++++++++++--------- dir-iterator.h | 14 ++++-- entry.c | 31 ++++-------- refs/files-backend.c | 2 +- t/t2000-checkout-cache-clash.sh | 11 +++++ 5 files changed, 114 insertions(+), 49 deletions(-) -- 2.7.4 (Apple Git-66)