From: Junio C Hamano <gitster@pobox.com>
To: Michael Haggerty <mhagger@alum.mit.edu>
Cc: "Johannes Sixt" <j6t@kdbg.org>,
"Torsten Bögershausen" <tboegi@web.de>,
"Jeff King" <peff@peff.net>,
"Ronnie Sahlberg" <sahlberg@google.com>,
"Jonathan Nieder" <jrnieder@gmail.com>,
git@vger.kernel.org
Subject: Re: [PATCH v6 00/39] Lockfile correctness and refactoring
Date: Fri, 26 Sep 2014 12:10:05 -0700 [thread overview]
Message-ID: <xmqqd2ai8agi.fsf@gitster.dls.corp.google.com> (raw)
In-Reply-To: <1411726119-31598-1-git-send-email-mhagger@alum.mit.edu> (Michael Haggerty's message of "Fri, 26 Sep 2014 12:08:00 +0200")
Michael Haggerty <mhagger@alum.mit.edu> writes:
> Next iteration of my lockfile fixes and refactoring. Thanks to
> Jonathan Nieder and Torsten Bögershausen for their comments about v5.
>
> I believe that this series addresses all of the comments from v1 [1],
> v2 [2], v3 [3], v4 [4], and v5 [5].
Looked quite good. Will replace---let's aim to merge this topic to
'next' soonish.
Thanks.
>
> Changes since v4:
>
> * Revise API documentation.
>
> * Split out a separate header file for the lockfile API: lockfile.h.
>
> * Change close_lock_file() to rollback on errors and make it into a
> NOOP if the file is already closed.
>
> * Don't set lk->on_list until the lock_file object is completely on
> the lock_file_list.
>
> * Delete some information from the docstring in lockfile.c (now
> lockfile.h) that is redundant with the API docs in api-lockfile.txt.
>
> * Remove the accidental extra call of git_config_clear() in
> git_config_set_multivar_in_file() when commit_lock_file() fails.
>
> * Adjust some comments, error messages, and commit messages.
>
> * Rebase to current master.
>
> [1] http://thread.gmane.org/gmane.comp.version-control.git/245609
> [2] http://thread.gmane.org/gmane.comp.version-control.git/245801
> [3] http://thread.gmane.org/gmane.comp.version-control.git/246222
> [4] http://thread.gmane.org/gmane.comp.version-control.git/256564
> [5] http://thread.gmane.org/gmane.comp.version-control.git/257159
>
> Michael Haggerty (39):
> unable_to_lock_die(): rename function from unable_to_lock_index_die()
> api-lockfile: revise and expand the documentation
> close_lock_file(): exit (successfully) if file is already closed
> rollback_lock_file(): do not clear filename redundantly
> rollback_lock_file(): exit early if lock is not active
> rollback_lock_file(): set fd to -1
> lockfile: unlock file if lockfile permissions cannot be adjusted
> hold_lock_file_for_append(): release lock on errors
> lock_file(): always initialize and register lock_file object
> lockfile.c: document the various states of lock_file objects
> cache.h: define constants LOCK_SUFFIX and LOCK_SUFFIX_LEN
> delete_ref_loose(): don't muck around in the lock_file's filename
> prepare_index(): declare return value to be (const char *)
> write_packed_entry_fn(): convert cb_data into a (const int *)
> lock_file(): exit early if lockfile cannot be opened
> remove_lock_file(): call rollback_lock_file()
> commit_lock_file(): inline temporary variable
> commit_lock_file(): die() if called for unlocked lockfile object
> close_lock_file(): if close fails, roll back
> commit_lock_file(): rollback lock file on failure to rename
> api-lockfile: document edge cases
> dump_marks(): remove a redundant call to rollback_lock_file()
> git_config_set_multivar_in_file(): avoid call to rollback_lock_file()
> lockfile: avoid transitory invalid states
> struct lock_file: declare some fields volatile
> try_merge_strategy(): remove redundant lock_file allocation
> try_merge_strategy(): use a statically-allocated lock_file object
> commit_lock_file(): use a strbuf to manage temporary space
> Change lock_file::filename into a strbuf
> resolve_symlink(): use a strbuf for internal scratch space
> resolve_symlink(): take a strbuf parameter
> trim_last_path_component(): replace last_path_elm()
> Extract a function commit_lock_file_to()
> Rename LOCK_NODEREF to LOCK_NO_DEREF
> lockfile.c: rename static functions
> get_locked_file_path(): new function
> hold_lock_file_for_append(): restore errno before returning
> Move read_index() definition to read-cache.c
> lockfile.h: extract new header file for the functions in lockfile.c
>
> Documentation/technical/api-lockfile.txt | 220 ++++++++++++++++++------
> builtin/add.c | 1 +
> builtin/apply.c | 1 +
> builtin/checkout-index.c | 2 +-
> builtin/checkout.c | 2 +-
> builtin/clone.c | 1 +
> builtin/commit.c | 17 +-
> builtin/describe.c | 1 +
> builtin/diff.c | 1 +
> builtin/gc.c | 2 +-
> builtin/merge.c | 16 +-
> builtin/mv.c | 2 +-
> builtin/read-tree.c | 1 +
> builtin/receive-pack.c | 1 +
> builtin/reflog.c | 4 +-
> builtin/reset.c | 1 +
> builtin/rm.c | 2 +-
> builtin/update-index.c | 3 +-
> bundle.c | 1 +
> cache-tree.c | 1 +
> cache.h | 20 +--
> config.c | 16 +-
> credential-store.c | 1 +
> fast-import.c | 5 +-
> fetch-pack.c | 1 +
> lockfile.c | 284 +++++++++++++++++--------------
> lockfile.h | 84 +++++++++
> merge-recursive.c | 1 +
> merge.c | 1 +
> read-cache.c | 21 ++-
> refs.c | 30 ++--
> rerere.c | 1 +
> sequencer.c | 1 +
> sha1_file.c | 1 +
> shallow.c | 7 +-
> test-scrap-cache-tree.c | 1 +
> 36 files changed, 492 insertions(+), 263 deletions(-)
> create mode 100644 lockfile.h
prev parent reply other threads:[~2014-09-26 19:10 UTC|newest]
Thread overview: 55+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-09-26 10:08 [PATCH v6 00/39] Lockfile correctness and refactoring Michael Haggerty
2014-09-26 10:08 ` [PATCH v6 01/39] unable_to_lock_die(): rename function from unable_to_lock_index_die() Michael Haggerty
2014-09-26 10:08 ` [PATCH v6 02/39] api-lockfile: revise and expand the documentation Michael Haggerty
2014-09-26 18:33 ` Junio C Hamano
2014-09-30 10:53 ` Michael Haggerty
2014-09-30 17:39 ` Junio C Hamano
2014-10-01 7:37 ` Michael Haggerty
2014-09-26 20:40 ` Junio C Hamano
2014-09-30 13:41 ` Michael Haggerty
2014-09-30 16:15 ` Jeff King
2014-09-30 17:47 ` Junio C Hamano
2014-10-01 8:11 ` Michael Haggerty
2014-09-26 10:08 ` [PATCH v6 03/39] close_lock_file(): exit (successfully) if file is already closed Michael Haggerty
2014-09-26 10:08 ` [PATCH v6 04/39] rollback_lock_file(): do not clear filename redundantly Michael Haggerty
2014-09-26 10:08 ` [PATCH v6 05/39] rollback_lock_file(): exit early if lock is not active Michael Haggerty
2014-09-26 10:08 ` [PATCH v6 06/39] rollback_lock_file(): set fd to -1 Michael Haggerty
2014-09-26 10:08 ` [PATCH v6 07/39] lockfile: unlock file if lockfile permissions cannot be adjusted Michael Haggerty
2014-09-26 10:08 ` [PATCH v6 08/39] hold_lock_file_for_append(): release lock on errors Michael Haggerty
2014-09-26 10:08 ` [PATCH v6 09/39] lock_file(): always initialize and register lock_file object Michael Haggerty
2014-09-26 10:08 ` [PATCH v6 10/39] lockfile.c: document the various states of lock_file objects Michael Haggerty
2014-09-26 10:08 ` [PATCH v6 11/39] cache.h: define constants LOCK_SUFFIX and LOCK_SUFFIX_LEN Michael Haggerty
2014-09-26 10:08 ` [PATCH v6 12/39] delete_ref_loose(): don't muck around in the lock_file's filename Michael Haggerty
2014-09-26 10:08 ` [PATCH v6 13/39] prepare_index(): declare return value to be (const char *) Michael Haggerty
2014-09-26 10:08 ` [PATCH v6 14/39] write_packed_entry_fn(): convert cb_data into a (const int *) Michael Haggerty
2014-09-26 10:08 ` [PATCH v6 15/39] lock_file(): exit early if lockfile cannot be opened Michael Haggerty
2014-09-26 10:08 ` [PATCH v6 16/39] remove_lock_file(): call rollback_lock_file() Michael Haggerty
2014-09-26 10:08 ` [PATCH v6 17/39] commit_lock_file(): inline temporary variable Michael Haggerty
2014-09-26 10:08 ` [PATCH v6 18/39] commit_lock_file(): die() if called for unlocked lockfile object Michael Haggerty
2014-09-26 10:08 ` [PATCH v6 19/39] close_lock_file(): if close fails, roll back Michael Haggerty
2014-09-26 10:08 ` [PATCH v6 20/39] commit_lock_file(): rollback lock file on failure to rename Michael Haggerty
2014-09-26 10:08 ` [PATCH v6 21/39] api-lockfile: document edge cases Michael Haggerty
2014-09-26 10:08 ` [PATCH v6 22/39] dump_marks(): remove a redundant call to rollback_lock_file() Michael Haggerty
2014-09-26 10:08 ` [PATCH v6 23/39] git_config_set_multivar_in_file(): avoid " Michael Haggerty
2014-09-26 10:08 ` [PATCH v6 24/39] lockfile: avoid transitory invalid states Michael Haggerty
2014-09-26 10:08 ` [PATCH v6 25/39] struct lock_file: declare some fields volatile Michael Haggerty
2014-09-26 10:08 ` [PATCH v6 26/39] try_merge_strategy(): remove redundant lock_file allocation Michael Haggerty
2014-09-26 10:08 ` [PATCH v6 27/39] try_merge_strategy(): use a statically-allocated lock_file object Michael Haggerty
2014-09-26 19:00 ` Junio C Hamano
2014-09-30 14:04 ` Michael Haggerty
2014-09-30 18:08 ` Junio C Hamano
2014-09-26 10:08 ` [PATCH v6 28/39] commit_lock_file(): use a strbuf to manage temporary space Michael Haggerty
2014-09-26 10:08 ` [PATCH v6 29/39] Change lock_file::filename into a strbuf Michael Haggerty
2014-09-26 10:08 ` [PATCH v6 30/39] resolve_symlink(): use a strbuf for internal scratch space Michael Haggerty
2014-09-26 10:08 ` [PATCH v6 31/39] resolve_symlink(): take a strbuf parameter Michael Haggerty
2014-09-26 10:08 ` [PATCH v6 32/39] trim_last_path_component(): replace last_path_elm() Michael Haggerty
2014-09-26 10:08 ` [PATCH v6 33/39] Extract a function commit_lock_file_to() Michael Haggerty
2014-09-26 10:08 ` [PATCH v6 34/39] Rename LOCK_NODEREF to LOCK_NO_DEREF Michael Haggerty
2014-09-26 10:08 ` [PATCH v6 35/39] lockfile.c: rename static functions Michael Haggerty
2014-09-26 10:08 ` [PATCH v6 36/39] get_locked_file_path(): new function Michael Haggerty
2014-09-26 10:08 ` [PATCH v6 37/39] hold_lock_file_for_append(): restore errno before returning Michael Haggerty
2014-09-26 10:08 ` [PATCH v6 38/39] Move read_index() definition to read-cache.c Michael Haggerty
2014-09-26 10:08 ` [PATCH v6 39/39] lockfile.h: extract new header file for the functions in lockfile.c Michael Haggerty
2014-09-26 16:31 ` [PATCH v6 00/39] Lockfile correctness and refactoring Junio C Hamano
2014-09-30 9:55 ` Michael Haggerty
2014-09-26 19:10 ` Junio C Hamano [this message]
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=xmqqd2ai8agi.fsf@gitster.dls.corp.google.com \
--to=gitster@pobox.com \
--cc=git@vger.kernel.org \
--cc=j6t@kdbg.org \
--cc=jrnieder@gmail.com \
--cc=mhagger@alum.mit.edu \
--cc=peff@peff.net \
--cc=sahlberg@google.com \
--cc=tboegi@web.de \
/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.