From: Michael J Gruber <git@drmicha.warpmail.net>
To: Stefan Haller <lists@haller-berlin.de>
Cc: git@vger.kernel.org
Subject: Re: rev-list --cherry-pick and context lines
Date: Fri, 02 Sep 2011 17:32:23 +0200 [thread overview]
Message-ID: <4E60F707.40708@drmicha.warpmail.net> (raw)
In-Reply-To: <1k6yux4.x1kexb19bkrqpM%lists@haller-berlin.de>
Stefan Haller venit, vidit, dixit 02.09.2011 12:35:
> Consider two commits on different branches, one with this patch:
>
> diff --git a/file.txt b/file.txt
> index 704fa27..2f7e74c 100644
> --- a/file.txt
> +++ b/file.txt
> @@ -1,3 +1,3 @@
> old_context
>
> -foo
> +bar
>
> and the other with this patch:
>
> diff --git a/file.txt b/file.txt
> index f35051b..8c7de32 100644
> --- a/file.txt
> +++ b/file.txt
> @@ -1,3 +1,3 @@
> new_context
>
> -foo
> +bar
>
> If I run "git rev-list --cherry-pick --left-right branch1...branch2", it
> reports both commits as being genuine commits on their respective
> branch, even though I consider their patches to be the same.
>
> I guess for my purpose I would like to have patch-ids that ignore
> context (or that use only one line of context, I'm not sure which).
>
> In fact, if I do "git show <commit> -U1 | git patch-id", both commits
> show the same id.
>
> So, would it make sense to have a parameter for git-rev-list (and
> git-cherry) that lets you specify how much context to be used for the
> patch ids?
It would be a bit like the patch below. "git log" accepts diff options already.
But:
- Do we want the patch id generation and the patch display (-p) to use the
same options?
- -U1 implies -p/--patch and there is no --no-patch.
- Which other diff options do we want to pass to the patch id
generation: --histogram, --patience, ...?
Cheers,
Michael
----
diff --git i/diff.c w/diff.c
index fcc0078..4e82912 100644
--- i/diff.c
+++ w/diff.c
@@ -4103,7 +4103,7 @@ static int diff_get_patch_id(struct diff_options *options, unsigned char *sha1)
}
xpp.flags = 0;
- xecfg.ctxlen = 3;
+ xecfg.ctxlen = options->context;
xecfg.flags = 0;
xdi_diff_outf(&mf1, &mf2, patch_id_consume, &data,
&xpp, &xecfg);
diff --git i/revision.c w/revision.c
index 072ddac..5a98ed9 100644
--- i/revision.c
+++ w/revision.c
@@ -601,6 +601,7 @@ static void cherry_pick_list(struct commit_list *list, struct rev_info *revs)
left_first = left_count < right_count;
init_patch_ids(&ids);
ids.diffopts.pathspec = revs->diffopt.pathspec;
+ ids.diffopts.context = revs->diffopt.context;
/* Compute patch-ids for one side */
for (p = list; p; p = p->next) {
next prev parent reply other threads:[~2011-09-02 15:32 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-09-02 10:35 rev-list --cherry-pick and context lines Stefan Haller
2011-09-02 15:32 ` Michael J Gruber [this message]
2011-09-02 16:33 ` Stefan Haller
2011-09-02 18:14 ` Vijay Lakshminarayanan
2011-09-02 18:45 ` Stefan Haller
2011-09-02 19:13 ` 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=4E60F707.40708@drmicha.warpmail.net \
--to=git@drmicha.warpmail.net \
--cc=git@vger.kernel.org \
--cc=lists@haller-berlin.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.