diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2007-02-27 16:22:52 -0800 |
---|---|---|
committer | Junio C Hamano <junkio@cox.net> | 2007-02-27 17:09:55 -0800 |
commit | aa27e46111a777ae8b11e00675e13b1a9cde7fc2 (patch) | |
tree | 83c3f0128a43d02ec7b095973e906015b00901c1 /revision.c | |
parent | 7ee70a7119e7d7edc1f85992d0ba8860c1c60a96 (diff) | |
download | git-aa27e46111a777ae8b11e00675e13b1a9cde7fc2.tar.gz git-aa27e46111a777ae8b11e00675e13b1a9cde7fc2.tar.xz |
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>
Diffstat (limited to 'revision.c')
-rw-r--r-- | revision.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/revision.c b/revision.c index 15bdaf609..76499dcf3 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, |