threads / patch / 4763

patchTeach rev-parse the ... syntax.

Subject: [PATCH] Teach rev-parse the ... syntax.

## tl;dr

3 messages between Jul 4, 2006 and Jul 4, 2006. Diffs are folded; open one to read it.

replies: 2people: 2as markdown or json

Santi Béjar· Jul 4, 2006, 09:02 UTC · lore
Signed-off-by: Santi Béjar <sbejar@gmail.com>
---
 I think this time the mail patch is OK, I've tested it.
 builtin-rev-parse.c |   17 ++++++++++++++++-
 1 files changed, 16 insertions(+), 1 deletions(-)
Show changes to builtin-rev-parse.c +16 −1
diff --git a/builtin-rev-parse.c b/builtin-rev-parse.c
index 5f5ade4..8d2beb2 100644
--- a/builtin-rev-parse.c
+++ b/builtin-rev-parse.c
@@ -331,14 +331,29 @@ int cmd_rev_parse(int argc, const char *
 			unsigned char end[20];
 			const char *next = dotdot + 2;
 			const char *this = arg;
+			int symmetric = *next == '.';
+
 			*dotdot = 0;
+			next += symmetric;
+
 			if (!*next)
 				next = "HEAD";
 			if (dotdot == arg)
 				this = "HEAD";
 			if (!get_sha1(this, sha1) && !get_sha1(next, end)) {
 				show_rev(NORMAL, end, next);
-				show_rev(REVERSED, sha1, this);
+				show_rev(symmetric?NORMAL:REVERSED, sha1, this);
+				if (symmetric) {
+				  struct commit *a, *b;
+				  a = lookup_commit_reference(sha1);
+				  b = lookup_commit_reference(end);
+				  struct commit_list *exclude = get_merge_bases(a, b,1);
+				  while (exclude) {
+				    show_rev(REVERSED,
+					     exclude->item->object.sha1,NULL);
+				    exclude = exclude->next;
+				  }
+				}
 				continue;
 			}
 			*dotdot = '.';
-- 
1.4.1.ge6c0-dirty
Johannes Schindelin· Jul 4, 2006, 10:50 UTC · re: Santi Béjar · lore

Re: [PATCH] Teach rev-parse the ... syntax.

Hi,
On Tue, 4 Jul 2006, Santi Béjar wrote:
> +				  struct commit_list *exclude = get_merge_bases(a, b,1);
You never free_commit_list() exclude.
Side thought: we do not really support multiple ranges, do we? E.g.
	git-rev-list HEAD~10..HEAD~8 HEAD^..

would not yield the intended result, right? (And same goes for ... ranges) Maybe we should at least warn about that.

Ciao, Dscho

Santi· Jul 4, 2006, 11:17 UTC · re: Johannes Schindelin · lore

Re: [PATCH] Teach rev-parse the ... syntax.

2006/7/4, Johannes Schindelin <Johannes.Schindelin@gmx.de>:
Show 8 quoted lines
> Hi,
>
> On Tue, 4 Jul 2006, Santi Béjar wrote:
>
> > +                               struct commit_list *exclude = get_merge_bases(a, b,1);
>
> You never free_commit_list() exclude.
>
Ups! But thanks to Junio it is already there :)
Santi
-- 
Looking for signature...
Looking for signature...done

← back to recent threads