git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH v8 0/5] [GSoC] remove_subtree(): reimplement using iterators

From
Daniel Ferreira (theiostream) <bnmvco@gmail.com>
Date
Apr 13, 2017, 00:06 UTC
Message-ID
<CAEA2_RJfcOc6FD41FNzU9LYs2xfzGZJxQyb2x8txuQqUE8RtNQ@mail.gmail.com>
In-Reply-To
<1491442767-54068-1-git-send-email-bnmvco@gmail.com>

Hey there! I'm sorry for bothering you, but any chance you might have overlooked this patch for a review? (I'm just not familiar with how long patches usually take to be reviewed, and since I always got an answer within two days of sending it I wondered if you may have just not noticed it.)

-- Daniel.
On Wed, Apr 5, 2017 at 10:39 PM, Daniel Ferreira <bnmvco@gmail.com> wrote:
Show 53 quoted lines
> This is the seventh version of a patch series that implements the GSoC
> microproject of converting a recursive call to readdir() to use dir_iterator.
>
> 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
> v4: https://public-inbox.org/git/1490747533-89143-1-git-send-email-bnmvco@gmail.com/T/#e437a63e0c22c00c69b5d92977c9b438ed2b9fd3a
> v5: https://public-inbox.org/git/1490844730-47634-1-git-send-email-bnmvco@gmail.com/T/#m2323f15e45de699f2e09364f40a62e17047cf453
> v6: https://public-inbox.org/git/1491107726-21504-1-git-send-email-bnmvco@gmail.com/T/#t
> v7: https://public-inbox.org/git/1491163388-41255-1-git-send-email-bnmvco@gmail.com/T/#t
>
> Travis CI build: https://travis-ci.org/theiostream/git/jobs/219111182
>
> In this version, I applied pretty much all suggestions Michael and Stefan had
> for the patch.
>
> Michael, regarding the patch you sent for parsing the arguments on the
> test-dir-iterator helper, I did not squash because it'd generate too many
> merge conflicts. I just preferred add your code manually. Let me know how I
> can properly credit you for it.
>
> The only "controversial" part of this code is how I ended up caching the result
> of lstat() on the dir_iterator_level struct. Having to handle the case of the
> root directory ended up making set_iterator_data() way more complicated (having
> to handle the case of level->stat not being set by push_dir_level()), as well
> as required the introduction of st_is_set member in the level struct. This issue
> would be solved if we could lstat() the root dir on dir_iterator_begin() and
> possibly return an error there. Regardless, I appreciate other suggestions to
> make this less complex.
>
> Daniel Ferreira (5):
>   dir_iterator: add tests for dir_iterator API
>   remove_subtree(): test removing nested directories
>   dir_iterator: add helpers to dir_iterator_advance
>   dir_iterator: refactor state machine model
>   remove_subtree(): reimplement using iterators
>
>  Makefile                        |   1 +
>  dir-iterator.c                  | 247 +++++++++++++++++++++++++++++-----------
>  dir-iterator.h                  |  35 ++++--
>  entry.c                         |  39 +++----
>  refs/files-backend.c            |   2 +-
>  t/helper/.gitignore             |   1 +
>  t/helper/test-dir-iterator.c    |  48 ++++++++
>  t/t0065-dir-iterator.sh         |  93 +++++++++++++++
>  t/t2000-checkout-cache-clash.sh |  11 ++
>  9 files changed, 373 insertions(+), 104 deletions(-)
>  create mode 100644 t/helper/test-dir-iterator.c
>  create mode 100755 t/t0065-dir-iterator.sh
>
> --
> 2.7.4 (Apple Git-66)
>
Previous: Daniel FerreiraNext: Stefan Beller
Message 9 of 11 in “[GSoC] remove_subtree(): reimplement using iterators”
  1. 0/5 [GSoC] remove_subtree(): reimplement using iteratorsDaniel Ferreira, Apr 6, 2017
  2. 1/5 dir_iterator: add tests for dir_iterator APIDaniel Ferreira, Apr 6, 2017
  3. Stefan BellerApr 13, 2017
  4. 2/5 remove_subtree(): test removing nested directoriesDaniel Ferreira, Apr 6, 2017
  5. 4/5 dir_iterator: refactor state machine modelDaniel Ferreira, Apr 6, 2017
  6. Michael HaggertyApr 17, 2017
  7. 3/5 dir_iterator: add helpers to dir_iterator_advanceDaniel Ferreira, Apr 6, 2017
  8. 5/5 remove_subtree(): reimplement using iteratorsDaniel Ferreira, Apr 6, 2017
  9. Daniel Ferreira (theiostream)Apr 13, 2017
  10. Stefan BellerApr 13, 2017
  11. Michael HaggertyApr 17, 2017

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.