summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2007-02-28 00:22:52 (GMT)
committerJunio C Hamano <junkio@cox.net>2007-02-28 01:09:55 (GMT)
commitaa27e46111a777ae8b11e00675e13b1a9cde7fc2 (patch)
tree83c3f0128a43d02ec7b095973e906015b00901c1
parent7ee70a7119e7d7edc1f85992d0ba8860c1c60a96 (diff)
downloadgit-aa27e46111a777ae8b11e00675e13b1a9cde7fc2.zip
git-aa27e46111a777ae8b11e00675e13b1a9cde7fc2.tar.gz
git-aa27e46111a777ae8b11e00675e13b1a9cde7fc2.tar.bz2
git-show: Reject native ref
So when we do git show v1.4.4..v1.5.0 that's an illogical thing to do, since "git show" is defined to be a non-revision-walking action, which means the range operator be pointless and wrong. The fact that we happily accept it (and then _only_ show v1.5.0, which is the positive end of the range) is quite arguably not very logical. We should complain, and say that you can only do "no_walk" with positive refs. Negative object refs really don't make any sense unless you walk the obejct list (or you're "git diff" and know about ranges explicitly). Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
-rw-r--r--revision.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/revision.c b/revision.c
index 15bdaf6..76499dc 100644
--- a/revision.c
+++ b/revision.c
@@ -116,6 +116,8 @@ void mark_parents_uninteresting(struct commit *commit)
void add_pending_object(struct rev_info *revs, struct object *obj, const char *name)
{
+ if (revs->no_walk && (obj->flags & UNINTERESTING))
+ die("object ranges do not make sense when not walking revisions");
add_object_array(obj, name, &revs->pending);
if (revs->reflog_info && obj->type == OBJ_COMMIT)
add_reflog_for_walk(revs->reflog_info,