Git fork
at reftables-rust 101 lines 2.3 kB view raw
1diff a/Makefile b/Makefile 2--- a/Makefile 3+++ b/Makefile 4@@ -20,7 +20,7 @@ INSTALL=install 5 6 SCRIPTS=git-apply-patch-script git-merge-one-file-script git-prune-script \ 7 git-pull-script git-tag-script git-resolve-script git-whatchanged \ 8- git-deltafy-script 9+ git-deltafy-script git-fetch-script 10 11 PROG= git-update-index git-diff-files git-init-db git-write-tree \ 12 git-read-tree git-commit-tree git-cat-file git-fsck-cache \ 13diff a/git-fetch-script b/git-fetch-script 14--- /dev/null 15+++ b/git-fetch-script 16@@ -0,0 +1,41 @@ 17+#!/bin/sh 18+# 19+merge_repo=$1 20+merge_name=${2:-HEAD} 21+ 22+: ${GIT_DIR=.git} 23+: ${GIT_OBJECT_DIRECTORY="${SHA1_FILE_DIRECTORY-"$GIT_DIR/objects"}"} 24+ 25+download_one () { 26+ # remote_path="$1" local_file="$2" 27+ case "$1" in 28+ http://*) 29+ wget -q -O "$2" "$1" ;; 30+ /*) 31+ test -f "$1" && cat >"$2" "$1" ;; 32+ *) 33+ rsync -L "$1" "$2" ;; 34+ esac 35+} 36+ 37+download_objects () { 38+ # remote_repo="$1" head_sha1="$2" 39+ case "$1" in 40+ http://*) 41+ git-http-pull -a "$2" "$1/" 42+ ;; 43+ /*) 44+ git-local-pull -l -a "$2" "$1/" 45+ ;; 46+ *) 47+ rsync -avz --ignore-existing \ 48+ "$1/objects/." "$GIT_OBJECT_DIRECTORY"/. 49+ ;; 50+ esac 51+} 52+ 53+echo "Getting remote $merge_name" 54+download_one "$merge_repo/$merge_name" "$GIT_DIR"/MERGE_HEAD 55+ 56+echo "Getting object database" 57+download_objects "$merge_repo" "$(cat "$GIT_DIR"/MERGE_HEAD)" 58diff a/git-pull-script b/git-pull-script 59--- a/git-pull-script 60+++ b/git-pull-script 61@@ -6,39 +6,7 @@ merge_name=${2:-HEAD} 62 : ${GIT_DIR=.git} 63 : ${GIT_OBJECT_DIRECTORY="${SHA1_FILE_DIRECTORY-"$GIT_DIR/objects"}"} 64 65-download_one () { 66- # remote_path="$1" local_file="$2" 67- case "$1" in 68- http://*) 69- wget -q -O "$2" "$1" ;; 70- /*) 71- test -f "$1" && cat >"$2" "$1" ;; 72- *) 73- rsync -L "$1" "$2" ;; 74- esac 75-} 76- 77-download_objects () { 78- # remote_repo="$1" head_sha1="$2" 79- case "$1" in 80- http://*) 81- git-http-pull -a "$2" "$1/" 82- ;; 83- /*) 84- git-local-pull -l -a "$2" "$1/" 85- ;; 86- *) 87- rsync -avz --ignore-existing \ 88- "$1/objects/." "$GIT_OBJECT_DIRECTORY"/. 89- ;; 90- esac 91-} 92- 93-echo "Getting remote $merge_name" 94-download_one "$merge_repo/$merge_name" "$GIT_DIR"/MERGE_HEAD 95- 96-echo "Getting object database" 97-download_objects "$merge_repo" "$(cat "$GIT_DIR"/MERGE_HEAD)" 98+git-fetch-script "$merge_repo" "$merge_name" 99 100 git-resolve-script \ 101 "$(cat "$GIT_DIR"/HEAD)" \