All of lore.kernel.org
 help / color / mirror / Atom feed
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

             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.