You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
101 lines
2.3 KiB
101 lines
2.3 KiB
diff a/Makefile b/Makefile |
|
--- 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 a/git-fetch-script b/git-fetch-script |
|
--- /dev/null |
|
+++ b/git-fetch-script |
|
@@ -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)" |
|
diff a/git-pull-script b/git-pull-script |
|
--- a/git-pull-script |
|
+++ b/git-pull-script |
|
@@ -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)" \
|
|
|