From: Ramkumar Ramachandra <artagnon@gmail.com>
To: Junio C Hamano <gitster@pobox.com>
Cc: Git List <git@vger.kernel.org>,
Daniel Barkalow <barkalow@iabervon.org>,
Jonathan Nieder <jrnieder@gmail.com>
Subject: Re: [PATCH v3] rerere: Expose an API corresponding to 'clear' functionality
Date: Sat, 7 May 2011 18:47:45 +0530 [thread overview]
Message-ID: <20110507131745.GA29061@ramkum.desktop.amazon.com> (raw)
In-Reply-To: <7vr58b22ny.fsf@alter.siamese.dyndns.org>
Hi Junio,
Junio C Hamano writes:
> Ramkumar Ramachandra <artagnon@gmail.com> writes:
>
> > Libify the "rerere clear" into a simple function called rerere_clear
> > that takes no arguments, and returns the exit status. Also export
> > unlink_rr_item as unlink_rerere_item so rerere_clear and the
> > un-libified "git rerere gc" can both use it.
> >
> > Helped-by: Jonathan Nieder <jrnieder@gmail.com>
> > Signed-off-by: Ramkumar Ramachandra <artagnon@gmail.com>
> > ---
> > What changed since v2: Jonathan's review.
>
> Are you sure this is the version you wanted to send?
>
> You now return -1 from rerere_clear() when setup_rerere() says that the
> feature is not enabled, and this is propagated back to cmd_rerere(),
> causing the whole command to report a failure in its exit status, which
> seems to me a grave regression. Your previous round got this part right,
> but it is broken in this round.
Ugh, I'm not sure how this change crept in- sorry :|
Could you please squash this diff into the patch?
Signed-off-by: Ramkumar Ramachandra <artagnon@gmail.com>
diff --git a/rerere.c b/rerere.c
index aaca3b0..fda02f6 100644
--- a/rerere.c
+++ b/rerere.c
@@ -687,7 +687,7 @@ int rerere_clear(void)
fd = setup_rerere(&merge_rr, 0);
if (fd < 0)
- return -1;
+ return 0;
for (i = 0; i < merge_rr.nr; i++) {
const char *name = (const char *)merge_rr.items[i].util;
if (!has_rerere_resolution(name))
> Also I seem to recall that Jonathan suggested that you do not have to
> expose unlink_rr_item() as an external symbol if you moved the garbage
> collection part from builtin/rerere.c to rerere.c but I do not see such a
> change in this patch. I think the gc interface is a lot more reasonable
> API to expose to external callers ("git gc" may want to make an internal
> call to rerere_gc() moved to rerere.c, instead of spawning "git rerere gc"
> as an external command) than unlink_rerere_item() that is only useful for
> callers that are deep inside rerere specific codepath.
I'll quote Jonathan from the previous review:
"
I think the reason for this is that rerere_gc is not being exposed at
the same time, right? I suppose if I were doing it, I would have
moved that to rerere.c, too and kept unlink_rr_item static, but there
is also appeal in a minimal patch. It would be clearer to say
something to the effect that we
Also export unlink_rr_item as unlink_rerere_item so
rerere_clear and the un-libified "git rerere gc" can
both use it.
"
To the first part of the question: yes, that's the reason for exposing
unlink_rr_item as unlink_rerere_item. Yet, I followed the latter
approach for the appeal of the minimal patch -- I should have said
this explicitly. Anyway, I plan to post another patch cleaning up and
libifying rerere shortly.
Junio: If you feel that garbage_collect should be exposed in this
patch, I'll post an alternative version now, and you can pick the one
you like :)
-- Ram
next prev parent reply other threads:[~2011-05-07 13:17 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-04-11 8:51 [PATCH] rerere: Expose an API corresponding to 'clear' functionality Ramkumar Ramachandra
2011-04-11 18:36 ` Junio C Hamano
2011-04-13 13:18 ` [PATCH v2] " Ramkumar Ramachandra
2011-04-13 20:38 ` Jonathan Nieder
2011-05-06 6:36 ` [PATCH v3] " Ramkumar Ramachandra
2011-05-06 16:51 ` Junio C Hamano
2011-05-07 13:17 ` Ramkumar Ramachandra [this message]
2011-05-08 7:30 ` [PATCH v4 0/2] Libify rerere: clear and gc Ramkumar Ramachandra
2011-05-08 7:30 ` [PATCH v4 1/2] usage: Introduce error_errno corresponding to die_errno Ramkumar Ramachandra
2011-05-08 9:46 ` Ramkumar Ramachandra
2011-05-08 18:10 ` Junio C Hamano
2011-05-08 7:30 ` [PATCH v4 2/2] rerere: Libify "rerere clear" and "rerere gc" Ramkumar Ramachandra
2011-05-08 20:06 ` Junio C Hamano
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=20110507131745.GA29061@ramkum.desktop.amazon.com \
--to=artagnon@gmail.com \
--cc=barkalow@iabervon.org \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=jrnieder@gmail.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).