From: Linus Torvalds Date: Tue, 21 Jun 2005 21:04:13 +0000 (-0700) Subject: Clean up different special *HEAD handling X-Git-Tag: v0.99~217 X-Git-Url: https://git.verplant.org/?a=commitdiff_plain;h=6b38a402e97274037982a5346ca4168cc8ee026c;p=git.git Clean up different special *HEAD handling We codify the following different heads (in addition to the main "HEAD", which points to the current branch, of course): - FETCH_HEAD Populated by "git fetch" - ORIG_HEAD The old HEAD before a "git pull/resolve" (successful or not) - LAST_MERGE The HEAD we're currently merging in "git pull/resolve" - MERGE_HEAD The previous head of a unresolved "git pull", which gets committed by a "git commit" after manually resolving the result We used to have "MERGE_HEAD" be populated directly by the fetch, and we removed ORIG_HEAD and LAST_MERGE too aggressively. --- diff --git a/git-fetch-script b/git-fetch-script index 7cd88b93..2e62f001 100755 --- a/git-fetch-script +++ b/git-fetch-script @@ -35,7 +35,7 @@ download_objects () { } echo "Getting remote $merge_name" -download_one "$merge_repo/$merge_name" "$GIT_DIR"/MERGE_HEAD || exit 1 +download_one "$merge_repo/$merge_name" "$GIT_DIR"/FETCH_HEAD || exit 1 echo "Getting object database" -download_objects "$merge_repo" "$(cat "$GIT_DIR"/MERGE_HEAD)" || exit 1 +download_objects "$merge_repo" "$(cat "$GIT_DIR"/FETCH_HEAD)" || exit 1 diff --git a/git-pull-script b/git-pull-script index dbef56c7..90ee0f32 100755 --- a/git-pull-script +++ b/git-pull-script @@ -17,5 +17,5 @@ git-fetch-script "$merge_repo" "$merge_head" || exit 1 git-resolve-script \ "$(cat "$GIT_DIR"/HEAD)" \ - "$(cat "$GIT_DIR"/MERGE_HEAD)" \ + "$(cat "$GIT_DIR"/FETCH_HEAD)" \ "$merge_name" diff --git a/git-resolve-script b/git-resolve-script index 91b001b9..bf2fb2d4 100755 --- a/git-resolve-script +++ b/git-resolve-script @@ -12,7 +12,7 @@ merge_repo="$3" : ${GIT_OBJECT_DIRECTORY="${SHA1_FILE_DIRECTORY-"$GIT_DIR/objects"}"} dropheads() { - rm -f -- "$GIT_DIR/ORIG_HEAD" "$GIT_DIR/MERGE_HEAD" \ + rm -f -- "$GIT_DIR/MERGE_HEAD" \ "$GIT_DIR/LAST_MERGE" || exit 1 } @@ -44,7 +44,7 @@ if [ "$common" == "$head" ]; then echo "Updating from $head to $merge." git-read-tree -u -m $head $merge || exit 1 echo $merge > "$GIT_DIR"/HEAD - git-diff-tree -p ORIG_HEAD HEAD | git-apply --stat + git-diff-tree -p $head $merge | git-apply --stat dropheads exit 0 fi