Split up git-pull-script into separate "fetch" and "merge" phases.
authorLinus Torvalds <torvalds@ppc970.osdl.org>
Sun, 22 May 2005 18:03:24 +0000 (11:03 -0700)
committerLinus Torvalds <torvalds@ppc970.osdl.org>
Sun, 22 May 2005 18:03:24 +0000 (11:03 -0700)
This allows you to just fetch stuff first, inspect it, and then
resolve the merge separately if everything looks good.

Makefile
git-fetch-script [new file with mode: 0755]
git-pull-script

index 7a2298918a7cfb137314e3c0ae5b66918cf99dcd..120d3c12cad1de6d2e5b02b1bd279fa9fffe52bc 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -20,7 +20,7 @@ INSTALL=install
 
 SCRIPTS=git-apply-patch-script git-merge-one-file-script git-prune-script \
        git-pull-script git-tag-script git-resolve-script git-whatchanged \
-       git-deltafy-script
+       git-deltafy-script git-fetch-script
 
 PROG=   git-update-cache git-diff-files git-init-db git-write-tree \
        git-read-tree git-commit-tree git-cat-file git-fsck-cache \
diff --git a/git-fetch-script b/git-fetch-script
new file mode 100755 (executable)
index 0000000..17f22af
--- /dev/null
@@ -0,0 +1,41 @@
+#!/bin/sh
+#
+merge_repo=$1
+merge_name=${2:-HEAD}
+
+: ${GIT_DIR=.git}
+: ${GIT_OBJECT_DIRECTORY="${SHA1_FILE_DIRECTORY-"$GIT_DIR/objects"}"}
+
+download_one () {
+       # remote_path="$1" local_file="$2"
+       case "$1" in
+       http://*)
+               wget -q -O "$2" "$1" ;;
+       /*)
+               test -f "$1" && cat >"$2" "$1" ;;
+       *)
+               rsync -L "$1" "$2" ;;
+       esac
+}
+
+download_objects () {
+       # remote_repo="$1" head_sha1="$2"
+       case "$1" in
+       http://*)
+               git-http-pull -a "$2" "$1/"
+               ;;
+       /*)
+               git-local-pull -l -a "$2" "$1/"
+               ;;
+       *)
+               rsync -avz --ignore-existing \
+                       "$1/objects/." "$GIT_OBJECT_DIRECTORY"/.
+               ;;
+       esac
+}
+
+echo "Getting remote $merge_name"
+download_one "$merge_repo/$merge_name" "$GIT_DIR"/MERGE_HEAD
+
+echo "Getting object database"
+download_objects "$merge_repo" "$(cat "$GIT_DIR"/MERGE_HEAD)"
index bd892c7bbc8b236d46b19444d94e2c023410f4d5..0585df61e241b302cf007cd75dd6e9fd3b78596a 100755 (executable)
@@ -6,39 +6,7 @@ merge_name=${2:-HEAD}
 : ${GIT_DIR=.git}
 : ${GIT_OBJECT_DIRECTORY="${SHA1_FILE_DIRECTORY-"$GIT_DIR/objects"}"}
 
-download_one () {
-       # remote_path="$1" local_file="$2"
-       case "$1" in
-       http://*)
-               wget -q -O "$2" "$1" ;;
-       /*)
-               test -f "$1" && cat >"$2" "$1" ;;
-       *)
-               rsync -L "$1" "$2" ;;
-       esac
-}
-
-download_objects () {
-       # remote_repo="$1" head_sha1="$2"
-       case "$1" in
-       http://*)
-               git-http-pull -a "$2" "$1/"
-               ;;
-       /*)
-               git-local-pull -l -a "$2" "$1/"
-               ;;
-       *)
-               rsync -avz --ignore-existing \
-                       "$1/objects/." "$GIT_OBJECT_DIRECTORY"/.
-               ;;
-       esac
-}
-
-echo "Getting remote $merge_name"
-download_one "$merge_repo/$merge_name" "$GIT_DIR"/MERGE_HEAD
-
-echo "Getting object database"
-download_objects "$merge_repo" "$(cat "$GIT_DIR"/MERGE_HEAD)"
+git-fetch-script "$merge_repo" "$merge_name"
 
 git-resolve-script \
        "$(cat "$GIT_DIR"/HEAD)" \