From: Michael Haggerty <mhagger@alum.mit.edu>
To: Junio C Hamano <gitster@pobox.com>,
David Turner <dturner@twopensource.com>
Cc: "Ramsay Jones" <ramsay@ramsayjones.plus.com>,
"Eric Sunshine" <sunshine@sunshineco.com>,
"Jeff King" <peff@peff.net>,
"Nguyễn Thái Ngọc Duy" <pclouds@gmail.com>,
git@vger.kernel.org, "Michael Haggerty" <mhagger@alum.mit.edu>
Subject: [PATCH v2 00/13] Reference iterators
Date: Fri, 3 Jun 2016 14:33:40 +0200 [thread overview]
Message-ID: <cover.1464957077.git.mhagger@alum.mit.edu> (raw)
This is v2 of a patch series to implement iteration over references
via iterators. Thanks to Ramsay, Eric, Junio, and David for their
feedback about v1 [1]. I think I have addressed all of the points that
were raised.
Changes from v1 -> v2:
* In "refs: introduce an iterator interface":
* Fix some comments.
* Remove a redundant call to `sort_ref_dir()`.
* Rename the parameters to `overlay_ref_iterator` from `iter0` and
`iter1` to `front` and `back`, and reverse their order.
* Add a comment explaining why merge_ref_iterator_begin() can't do
an is_empty_ref_iterator() optimization.
* In "dir_iterator: new API for iterating over a directory tree":
* Fix some comments.
* Add a warning if `lstat()` fails for a reason other than `ENOENT`.
This patch series applies on top of mh/split-under-lock. It can also
be obtained from my GitHub repo [2] as branch "ref-iterators".
Michael
[1] http://thread.gmane.org/gmane.comp.version-control.git/295860
[2] https://github.com/mhagger/git
Michael Haggerty (13):
refs: remove unnecessary "extern" keywords
do_for_each_ref(): move docstring to the header file
refs: use name "prefix" consistently
delete_refs(): add a flags argument
remote rm: handle symbolic refs correctly
get_ref_cache(): only create an instance if there is a submodule
entry_resolves_to_object(): rename function from
ref_resolves_to_object()
ref_resolves_to_object(): new function
refs: introduce an iterator interface
do_for_each_ref(): reimplement using reference iteration
for_each_reflog(): don't abort for bad references
dir_iterator: new API for iterating over a directory tree
for_each_reflog(): reimplement using iterators
Makefile | 2 +
builtin/fetch.c | 2 +-
builtin/remote.c | 8 +-
dir-iterator.c | 185 +++++++++++++++
dir-iterator.h | 86 +++++++
iterator.h | 81 +++++++
refs.c | 20 ++
refs.h | 139 +++++++-----
refs/files-backend.c | 629 +++++++++++++++++++++++++++++++--------------------
refs/iterator.c | 384 +++++++++++++++++++++++++++++++
refs/refs-internal.h | 226 +++++++++++++++++-
11 files changed, 1440 insertions(+), 322 deletions(-)
create mode 100644 dir-iterator.c
create mode 100644 dir-iterator.h
create mode 100644 iterator.h
create mode 100644 refs/iterator.c
--
2.8.1
next reply other threads:[~2016-06-03 12:34 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-06-03 12:33 Michael Haggerty [this message]
2016-06-03 12:33 ` [PATCH v2 01/13] refs: remove unnecessary "extern" keywords Michael Haggerty
2016-06-03 12:33 ` [PATCH v2 02/13] do_for_each_ref(): move docstring to the header file Michael Haggerty
2016-06-03 12:33 ` [PATCH v2 03/13] refs: use name "prefix" consistently Michael Haggerty
2016-06-03 12:33 ` [PATCH v2 04/13] delete_refs(): add a flags argument Michael Haggerty
2016-06-03 12:33 ` [PATCH v2 05/13] remote rm: handle symbolic refs correctly Michael Haggerty
2016-06-03 12:33 ` [PATCH v2 06/13] get_ref_cache(): only create an instance if there is a submodule Michael Haggerty
2016-06-03 12:33 ` [PATCH v2 07/13] entry_resolves_to_object(): rename function from ref_resolves_to_object() Michael Haggerty
2016-06-03 12:33 ` [PATCH v2 08/13] ref_resolves_to_object(): new function Michael Haggerty
2016-06-03 12:33 ` [PATCH v2 09/13] refs: introduce an iterator interface Michael Haggerty
2016-06-03 12:33 ` [PATCH v2 10/13] do_for_each_ref(): reimplement using reference iteration Michael Haggerty
2016-06-03 12:33 ` [PATCH v2 11/13] for_each_reflog(): don't abort for bad references Michael Haggerty
2016-06-03 12:33 ` [PATCH v2 12/13] dir_iterator: new API for iterating over a directory tree Michael Haggerty
2016-06-07 5:13 ` Eric Sunshine
2016-06-09 11:46 ` Michael Haggerty
2016-06-09 12:35 ` Michael Haggerty
2016-06-09 16:19 ` Junio C Hamano
2016-06-03 12:33 ` [PATCH v2 13/13] for_each_reflog(): reimplement using iterators Michael Haggerty
2016-06-03 18:02 ` [PATCH v2 00/13] Reference iterators David Turner
2016-06-03 21:33 ` Junio C Hamano
2016-06-03 21:55 ` Michael Haggerty
2016-06-03 23:40 ` Junio C Hamano
2016-06-07 11:58 ` Michael Haggerty
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=cover.1464957077.git.mhagger@alum.mit.edu \
--to=mhagger@alum.mit.edu \
--cc=dturner@twopensource.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=pclouds@gmail.com \
--cc=peff@peff.net \
--cc=ramsay@ramsayjones.plus.com \
--cc=sunshine@sunshineco.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.