42 lines
		
	
	
		
			766 B
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
			
		
		
	
	
			42 lines
		
	
	
		
			766 B
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
| #!/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)"
 |