From: Michael Haggerty <mhagger@alum.mit.edu>
To: Jonathan Nieder <jrnieder@gmail.com>
Cc: Stefan Beller <sbeller@google.com>,
Junio C Hamano <gitster@pobox.com>,
Ronnie Sahlberg <sahlberg@google.com>,
git@vger.kernel.org
Subject: Re: [PATCH 4/6] repack_without_refs(): make the refnames argument a string_list
Date: Tue, 25 Nov 2014 08:42:13 +0100 [thread overview]
Message-ID: <547432D5.8070802@alum.mit.edu> (raw)
In-Reply-To: <20141122211722.GD15320@google.com>
On 11/22/2014 10:17 PM, Jonathan Nieder wrote:
> Michael Haggerty wrote:
>
>> All of the callers have string_lists available already
>
> Technically ref_transaction_commit doesn't, but that doesn't matter.
You're right. I'll correct this.
>> Suggested-by: Ronnie Sahlberg <sahlberg@google.com>
>> Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu>
>> ---
>> builtin/remote.c | 14 ++------------
>> refs.c | 38 ++++++++++++++++++++------------------
>> refs.h | 11 ++++++++++-
>> 3 files changed, 32 insertions(+), 31 deletions(-)
>
> Reviewed-by: Jonathan Nieder <jrnieder@gmail.com>
>
> One (optional) nit at the bottom of this message.
>
> [...]
>> +++ b/refs.c
>> @@ -2639,22 +2639,25 @@ static int curate_packed_ref_fn(struct ref_entry *entry, void *cb_data)
>> return 0;
>> }
>>
>> -int repack_without_refs(const char **refnames, int n, struct strbuf *err)
>> +int repack_without_refs(struct string_list *refnames, struct strbuf *err)
>> {
>> struct ref_dir *packed;
>> struct string_list refs_to_delete = STRING_LIST_INIT_DUP;
>> - struct string_list_item *ref_to_delete;
>> - int i, ret, removed = 0;
>> + struct string_list_item *refname, *ref_to_delete;
>> + int ret, needs_repacking = 0, removed = 0;
>>
>> assert(err);
>>
>> /* Look for a packed ref */
>> - for (i = 0; i < n; i++)
>> - if (get_packed_ref(refnames[i]))
>> + for_each_string_list_item(refname, refnames) {
>> + if (get_packed_ref(refname->string)) {
>> + needs_repacking = 1;
>> break;
>> + }
>> + }
>>
>> /* Avoid locking if we have nothing to do */
>> - if (i == n)
>> + if (!needs_repacking)
>
> This makes me wish C supported something like Python's for/else
> construct. Oh well. :)
Ahhh, Python, where arrays of strings *are* string_lists :-)
> [...]
>> +++ b/refs.h
>> @@ -163,7 +163,16 @@ extern void rollback_packed_refs(void);
>> */
>> int pack_refs(unsigned int flags);
>>
>> -extern int repack_without_refs(const char **refnames, int n,
>> +/*
>> + * Remove the refs listed in 'refnames' from the packed-refs file.
>> + * On error, packed-refs will be unchanged, the return value is
>> + * nonzero, and a message about the error is written to the 'err'
>> + * strbuf.
>> + *
>> + * The refs in 'refnames' needn't be sorted. The err buffer must not be
>> + * omitted.
>
> (nit)
>
> s/buffer/strbuf/, or s/The err buffer/'err'/
> s/omitted/NULL/
I will fix this too (and improve the docstring a bit in general). Thanks
for your careful review!
Michael
--
Michael Haggerty
mhagger@alum.mit.edu
next prev parent reply other threads:[~2014-11-25 7:49 UTC|newest]
Thread overview: 61+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-11-18 22:43 [PATCH] refs.c: use a stringlist for repack_without_refs Stefan Beller
2014-11-18 23:06 ` Junio C Hamano
2014-11-18 23:39 ` Junio C Hamano
2014-11-18 23:45 ` Jonathan Nieder
2014-11-19 0:28 ` Stefan Beller
2014-11-19 1:08 ` Stefan Beller
2014-11-19 18:00 ` Junio C Hamano
2014-11-19 18:50 ` Stefan Beller
2014-11-19 20:44 ` Jonathan Nieder
2014-11-19 21:54 ` Stefan Beller
2014-11-19 21:59 ` [PATCH v4] " Stefan Beller
2014-11-20 2:15 ` Jonathan Nieder
2014-11-20 16:47 ` Junio C Hamano
2014-11-20 18:04 ` [PATCH v5 1/1] " Stefan Beller
2014-11-20 18:10 ` [PATCH] refs.c: repack_without_refs may be called without error string buffer Stefan Beller
2014-11-20 18:15 ` Ronnie Sahlberg
2014-11-20 18:35 ` Jonathan Nieder
2014-11-20 18:36 ` Ronnie Sahlberg
2014-11-20 18:56 ` Stefan Beller
2014-11-20 18:29 ` [PATCH v5 1/1] refs.c: use a stringlist for repack_without_refs Jonathan Nieder
2014-11-20 18:37 ` Jonathan Nieder
2014-11-20 19:01 ` Junio C Hamano
2014-11-20 19:05 ` Stefan Beller
2014-11-20 20:07 ` [PATCH v6] refs.c: use a string_list " Stefan Beller
2014-11-20 20:36 ` Jonathan Nieder
2014-11-21 14:09 ` [PATCH 0/6] repack_without_refs(): convert to string_list Michael Haggerty
2014-11-21 14:09 ` [PATCH 1/6] prune_remote(): exit early if there are no stale references Michael Haggerty
2014-11-22 21:07 ` Jonathan Nieder
2014-11-21 14:09 ` [PATCH 2/6] prune_remote(): initialize both delete_refs lists in a single loop Michael Haggerty
2014-11-21 14:09 ` [PATCH 3/6] prune_remote(): sort delete_refs_list references en masse Michael Haggerty
2014-11-21 16:44 ` Junio C Hamano
2014-11-25 7:21 ` Michael Haggerty
2014-11-25 8:04 ` Michael Haggerty
2014-11-22 21:08 ` Jonathan Nieder
2014-11-21 14:09 ` [PATCH 4/6] repack_without_refs(): make the refnames argument a string_list Michael Haggerty
2014-11-22 21:17 ` Jonathan Nieder
2014-11-25 7:42 ` Michael Haggerty [this message]
2014-11-21 14:09 ` [PATCH 5/6] prune_remote(): rename local variable Michael Haggerty
2014-11-22 21:18 ` Jonathan Nieder
2014-11-21 14:09 ` [PATCH 6/6] prune_remote(): iterate using for_each_string_list_item() Michael Haggerty
2014-11-22 21:19 ` Jonathan Nieder
2014-11-21 14:25 ` [PATCH 0/6] repack_without_refs(): convert to string_list Michael Haggerty
2014-11-21 18:00 ` Junio C Hamano
2014-11-21 19:57 ` Stefan Beller
2014-11-25 0:28 ` Our cumbersome mailing list workflow (was: Re: [PATCH 0/6] repack_without_refs(): convert to string_list) Michael Haggerty
2014-11-27 17:46 ` Our cumbersome mailing list workflow Torsten Bögershausen
2014-11-27 18:24 ` Matthieu Moy
2014-11-28 12:09 ` Philip Oakley
2014-11-27 22:53 ` Eric Wong
2014-11-28 15:34 ` Michael Haggerty
2014-11-28 16:24 ` brian m. carlson
2014-12-01 2:46 ` Junio C Hamano
2014-12-03 2:20 ` Stefan Beller
2014-12-03 3:53 ` Jonathan Nieder
2014-12-03 17:18 ` Junio C Hamano
2014-12-03 17:28 ` Torsten Bögershausen
2014-11-28 14:31 ` Michael Haggerty
2014-11-28 15:42 ` Marc Branchaud
2014-11-28 21:39 ` Damien Robert
2014-12-03 23:57 ` Philip Oakley
2014-12-04 2:03 ` Stefan Beller
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=547432D5.8070802@alum.mit.edu \
--to=mhagger@alum.mit.edu \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=jrnieder@gmail.com \
--cc=sahlberg@google.com \
--cc=sbeller@google.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.