Fix "git-rev-list" revision range parsing

From: Linus Torvalds <torvalds@osdl.org>
Date: 2016-06-15 22:42:06
Subsystem: the rest · Maintainer: Linus Torvalds

There were two bugs in there:
 - if the range didn't end up working, we restored the '.' character in 
   the wrong place.
 - an empty end-of-range should be interpreted as HEAD.

See rev-parse.c for the reference implementation of this.

Signed-off-by: Linus Torvalds <torvalds@osdl.org>
---
diff --git a/rev-list.c b/rev-list.c
--- a/rev-list.c
+++ b/rev-list.c
@@ -561,6 +561,8 @@ int main(int argc, char **argv)
 			struct commit *exclude = NULL;
 			struct commit *include = NULL;
 			*dotdot = 0;
+			if (!*next)
+				next = "HEAD";
 			exclude = get_commit_reference(arg, UNINTERESTING);
 			include = get_commit_reference(next, 0);
 			if (exclude && include) {
@@ -569,7 +571,7 @@ int main(int argc, char **argv)
 				handle_one_commit(include, &list);
 				continue;
 			}
-			*next = '.';
+			*dotdot = '.';
 		}
 		if (*arg == '^') {
 			flags = UNINTERESTING;
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help