git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] Teach rev-parse the ... syntax.
@ 2006-07-04  9:02 Santi Béjar
  2006-07-04 10:50 ` Johannes Schindelin
  0 siblings, 1 reply; 3+ messages in thread
From: Santi Béjar @ 2006-07-04  9:02 UTC (permalink / raw)
  To: Git Mailing List, Junio C. Hamano

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(-)

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

^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [PATCH] Teach rev-parse the ... syntax.
  2006-07-04  9:02 [PATCH] Teach rev-parse the ... syntax Santi Béjar
@ 2006-07-04 10:50 ` Johannes Schindelin
  2006-07-04 11:17   ` Santi
  0 siblings, 1 reply; 3+ messages in thread
From: Johannes Schindelin @ 2006-07-04 10:50 UTC (permalink / raw)
  To: Santi Béjar; +Cc: Git Mailing List, Junio C. Hamano

[-- Attachment #1: Type: TEXT/PLAIN, Size: 387 bytes --]

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

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH] Teach rev-parse the ... syntax.
  2006-07-04 10:50 ` Johannes Schindelin
@ 2006-07-04 11:17   ` Santi
  0 siblings, 0 replies; 3+ messages in thread
From: Santi @ 2006-07-04 11:17 UTC (permalink / raw)
  To: Johannes Schindelin; +Cc: Git Mailing List, Junio C. Hamano

2006/7/4, Johannes Schindelin <Johannes.Schindelin@gmx.de>:
> 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

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2006-07-04 11:17 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-07-04  9:02 [PATCH] Teach rev-parse the ... syntax Santi Béjar
2006-07-04 10:50 ` Johannes Schindelin
2006-07-04 11:17   ` Santi

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).