From: Christian Couder <chriscool@tuxfamily.org>
To: Junio C Hamano <gitster@pobox.com>
Cc: git@vger.kernel.org,
Linus Torvalds <torvalds@linux-foundation.org>,
Johannes Schindelin <Johannes.Schindelin@gmx.de>,
Stephan Beyer <s-beyer@gmx.net>,
Daniel Barkalow <barkalow@iabervon.org>,
Paolo Bonzini <bonzini@gnu.org>,
Stephen Boyd <bebarino@gmail.com>
Subject: Re: [PATCH v2 00/12] add --ff option to cherry-pick
Date: Thu, 4 Mar 2010 07:55:23 +0100 [thread overview]
Message-ID: <201003040755.23485.chriscool@tuxfamily.org> (raw)
In-Reply-To: <7vhbowoj8y.fsf@alter.siamese.dyndns.org>
On Thursday 04 March 2010 04:31:25 Junio C Hamano wrote:
> Christian Couder <chriscool@tuxfamily.org> writes:
> > I tried to use the checkout_fast_forward() function from builtin/merge.c
> > but unfortunately it doesn't work. It gives an error like that in the
> > tests :
> >
> > error: Your local changes to 'file1' would be overwritten by merge.
> > Aborting. Please, commit your changes or stash them before you can merge.
> >
> > and I don't really understand why. (Though I didn't spend a lot of time
> > on this.)
>
> Shouldn't it be something like this? The patch is still unnecessarily
> large because I wanted to share options between revert and cherry-pick
> while giving --ff only to cherry-pick, but I don't understand why it needs
> a nine patch series worth of code churn.
Please have another look at the patch series and realize that only the first 4
patches are (trivial) refactoring (that you call "code churn"), so I think
it's not fair at all to say that it's "a nine patch series worth of code
churn".
And it used to be accepted to do some refactoring, and IMHO some reasonable
amount of refactoring is good, as long as it is well done of course. So there
is no problem if you criticize the amount in term of line of codes or if you
criticize the quality of refactoring. But I don't think the patch count is
right metric (especially when applied to the whole series).
> +static int fast_forward_to(const unsigned char *to, const unsigned char
> *from) +{
> + struct ref_lock *ref_lock;
> +
> + read_cache();
> + if (checkout_fast_forward(from, to))
> + exit(1); /* the callee should have complained already */
> + ref_lock = lock_any_ref_for_update("HEAD", from, 0);
> + return write_ref_sha1(ref_lock, to, "cherry-pick");
> +}
Ok, so your patch adds new code to do the job, while my refactoring patches
only move existing code into new functions. So I think the net result is that
your patch in fact increases the complexity of the code base and duplicates
existing functionality, while my patches reuse and increase readability of
existing code.
Now it's true that your patch adds a very small amount of new code and maybe I
am missing many things and your patch is much better for many reasons that I
can't see. If that is the case I am sorry to be so stupid.
I also agree that it might not be the right time for refactoring, and that
it's more work for reviewers, especially yourself, and you (and other
reviewers) probably just need less work and not more, but in the long run I
think that reusing existing code is better as that means less maintenance
work.
Best regards,
Christian.
next prev parent reply other threads:[~2010-03-04 6:56 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-02-28 22:21 [PATCH v2 00/12] add --ff option to cherry-pick Christian Couder
2010-02-28 22:21 ` [PATCH v2 01/12] revert: libify cherry-pick and revert functionnality Christian Couder
2010-02-28 22:21 ` [PATCH v2 02/12] pick: refactor checking parent in a check_parent function Christian Couder
2010-02-28 22:21 ` [PATCH v2 03/12] pick: make check_parent function extern Christian Couder
2010-02-28 22:21 ` [PATCH v2 04/12] pick: move calling check_parent() ouside pick_commit() Christian Couder
2010-02-28 22:22 ` [PATCH v2 05/12] reset: refactor updating heads into a static function Christian Couder
2010-02-28 22:22 ` [PATCH v2 06/12] reset: refactor reseting in its own function Christian Couder
2010-02-28 22:22 ` [PATCH v2 07/12] reset: make reset function non static and declare it in "reset.h" Christian Couder
2010-02-28 22:22 ` [PATCH v2 08/12] revert: add --ff option to allow fast forward when cherry-picking Christian Couder
2010-02-28 22:22 ` [PATCH v2 09/12] cherry-pick: add tests for new --ff option Christian Couder
2010-02-28 22:22 ` [PATCH v2 10/12] Documentation: describe new cherry-pick " Christian Couder
2010-02-28 22:22 ` [PATCH v2 11/12] cherry-pick: add a no-op --no-ff option to future proof scripts Christian Couder
2010-02-28 22:22 ` [PATCH v2 12/12] rebase -i: use new --ff cherry-pick option Christian Couder
2010-03-01 3:49 ` [PATCH v2 00/12] add --ff option to cherry-pick Junio C Hamano
2010-03-01 4:42 ` Daniel Barkalow
2010-03-01 7:00 ` Christian Couder
2010-03-01 8:48 ` Junio C Hamano
2010-03-04 2:06 ` Christian Couder
2010-03-04 3:31 ` Junio C Hamano
2010-03-04 6:55 ` Christian Couder [this message]
2010-03-04 20:48 ` Junio C Hamano
2010-03-21 2:01 ` [PATCH 3/6] revert: add --ff option to allow fast forward when cherry-picking Jonathan Nieder
2010-03-01 8:20 ` [PATCH v2 00/12] add --ff option to cherry-pick Johannes Sixt
2010-03-01 12:34 ` Paolo Bonzini
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=201003040755.23485.chriscool@tuxfamily.org \
--to=chriscool@tuxfamily.org \
--cc=Johannes.Schindelin@gmx.de \
--cc=barkalow@iabervon.org \
--cc=bebarino@gmail.com \
--cc=bonzini@gnu.org \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=s-beyer@gmx.net \
--cc=torvalds@linux-foundation.org \
/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).