mirror of
https://github.com/git/git.git
synced 2025-12-23 12:14:22 +01:00
Split up git-pull-script into separate "fetch" and "merge" phases.
This allows you to just fetch stuff first, inspect it, and then resolve the merge separately if everything looks good.
This commit is contained in:
@@ -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)" \
|
||||
|
||||
Reference in New Issue
Block a user