On 06/17/2016 05:20 AM, Junio C Hamano wrote: > [...] > * mh/ref-iterators (2016-06-03) 13 commits > (merged to 'next' on 2016-06-06 at c8e79dc) > + for_each_reflog(): reimplement using iterators > + dir_iterator: new API for iterating over a directory tree > + for_each_reflog(): don't abort for bad references > + do_for_each_ref(): reimplement using reference iteration > + refs: introduce an iterator interface > + ref_resolves_to_object(): new function > + entry_resolves_to_object(): rename function from ref_resolves_to_object() > + get_ref_cache(): only create an instance if there is a submodule > + remote rm: handle symbolic refs correctly > + delete_refs(): add a flags argument > + refs: use name "prefix" consistently > + do_for_each_ref(): move docstring to the header file > + refs: remove unnecessary "extern" keywords > (this branch is used by mh/ref-store; uses mh/split-under-lock; is tangled with mh/update-ref-errors.) > > The API to iterate over all the refs (i.e. for_each_ref(), etc.) > has been revamped. > > Will merge to 'master'. It would be preferable (though not critical) to use the promised v3, which I just sent [1]. This includes some minor improvements, described here [2]. This is also available from my GitHub fork [3] as branch "ref-iterators". > * mh/split-under-lock (2016-05-13) 33 commits > (merged to 'next' on 2016-06-03 at 2e71330) > + lock_ref_sha1_basic(): only handle REF_NODEREF mode > + commit_ref_update(): remove the flags parameter > + lock_ref_for_update(): don't resolve symrefs > + lock_ref_for_update(): don't re-read non-symbolic references > + refs: resolve symbolic refs first > + ref_transaction_update(): check refname_is_safe() at a minimum > + unlock_ref(): move definition higher in the file > + lock_ref_for_update(): new function > + add_update(): initialize the whole ref_update > + verify_refname_available(): adjust constness in declaration > + refs: don't dereference on rename > + refs: allow log-only updates > + delete_branches(): use resolve_refdup() > + ref_transaction_commit(): correctly report close_ref() failure > + ref_transaction_create(): disallow recursive pruning > + refs: make error messages more consistent > + lock_ref_sha1_basic(): remove unneeded local variable > + read_raw_ref(): move docstring to header file > + read_raw_ref(): improve docstring > + read_raw_ref(): rename symref argument to referent > + read_raw_ref(): clear *type at start of function > + read_raw_ref(): rename flags argument to type > + ref_transaction_commit(): remove local variable n > + rename_ref(): remove unneeded local variable > + commit_ref_update(): write error message to *err, not stderr > + refname_is_safe(): insist that the refname already be normalized > + refname_is_safe(): don't allow the empty string > + refname_is_safe(): use skip_prefix() > + remove_dir_recursively(): add docstring > + safe_create_leading_directories(): improve docstring > + read_raw_ref(): don't get confused by an empty directory > + commit_ref(): if there is an empty dir in the way, delete it > + t1404: demonstrate a bug resolving references > (this branch is used by mh/ref-iterators, mh/ref-store and mh/update-ref-errors.) > > Further preparatory work on the refs API before the pluggable > backend series can land. > > Will merge to 'master'. Please make sure to pick up the important bugfix discussed here [4], which is integrated into branch "split-under-lock" on my GitHub fork [3]. Michael [1] http://thread.gmane.org/gmane.comp.version-control.git/297625 [2] http://thread.gmane.org/gmane.comp.version-control.git/296322/focus=296883 [3] https://github.com/mhagger/git [4] http://article.gmane.org/gmane.comp.version-control.git/297174 -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html