summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@osdl.org>2005-08-13 17:50:56 (GMT)
committerJunio C Hamano <junkio@cox.net>2005-08-14 01:28:50 (GMT)
commit02a4a32c2da9a89eb9ebc58325adcb47775c9ed5 (patch)
tree87bf551ac035553ae59efa15d018a7d41a9bbf0c
parent314082512403f7f6969cc6d5ded4a48c68a9962e (diff)
downloadgit-02a4a32c2da9a89eb9ebc58325adcb47775c9ed5.zip
git-02a4a32c2da9a89eb9ebc58325adcb47775c9ed5.tar.gz
git-02a4a32c2da9a89eb9ebc58325adcb47775c9ed5.tar.bz2
[PATCH] Make sure git-resolve-script always works on commits
You can resolve a tag, and it does the right thing except that it might end up writing the tag itself into the resulting HEAD, which will confuse subsequent operations no end. This makes sure that when we resolve two heads, we will have turned them into proper commits before we start acting on them. This also fixes the parsing of "treeish^0", which would incorrectly resolve to "treeish" instead of causing an error. Signed-off-by: Linus Torvalds <torvalds@osdl.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
-rwxr-xr-xgit-resolve-script4
-rw-r--r--sha1_name.c10
2 files changed, 5 insertions, 9 deletions
diff --git a/git-resolve-script b/git-resolve-script
index 52dd83b..4641119 100755
--- a/git-resolve-script
+++ b/git-resolve-script
@@ -6,8 +6,8 @@
#
. git-sh-setup-script || die "Not a git archive"
-head=$(git-rev-parse --verify "$1")
-merge=$(git-rev-parse --verify "$2")
+head=$(git-rev-parse --verify "$1"^0) || exit
+merge=$(git-rev-parse --verify "$2"^0) || exit
merge_msg="$3"
dropheads() {
diff --git a/sha1_name.c b/sha1_name.c
index 5d1e441..df45b17 100644
--- a/sha1_name.c
+++ b/sha1_name.c
@@ -208,13 +208,9 @@ static int get_sha1_1(const char *name, int len, unsigned char *sha1)
} else
parent = -1;
- if (0 <= parent) {
- ret = get_parent(name, len, sha1, parent);
- if (!ret)
- return 0;
- else if(parent>0)
- return ret;
- }
+ if (parent >= 0)
+ return get_parent(name, len, sha1, parent);
+
ret = get_sha1_basic(name, len, sha1);
if (!ret)
return 0;