Browse Source

Update the merge scripts for the big git rename.

Let's see what else I forgot..
maint
Linus Torvalds 20 years ago
parent
commit
2d280e1c5e
  1. 14
      git-merge-one-file-script
  2. 22
      git-pull-script

14
git-merge-one-file-script

@ -32,7 +32,7 @@ case "${1:-.}${2:-.}${3:-.}" in @@ -32,7 +32,7 @@ case "${1:-.}${2:-.}${3:-.}" in
"$1.." | "$1.$1" | "$1$1.")
rm -f -- "$4"
echo "Removing $4"
update-cache --remove -- "$4"
git-update-cache --remove -- "$4"
exit 0
;;

@ -43,7 +43,7 @@ case "${1:-.}${2:-.}${3:-.}" in @@ -43,7 +43,7 @@ case "${1:-.}${2:-.}${3:-.}" in
echo "Adding $4 with perm $6$7"
mv $(unpack-file "$2$3") $4
chmod "$6$7" $4
update-cache --add -- $4
git-update-cache --add -- $4
exit 0
;;
#
@ -57,16 +57,16 @@ case "${1:-.}${2:-.}${3:-.}" in @@ -57,16 +57,16 @@ case "${1:-.}${2:-.}${3:-.}" in
echo "Adding $4 with perm $6"
mv $(unpack-file "$2") $4
chmod "$6" $4
update-cache --add -- $4
git-update-cache --add -- $4
exit 0;;
#
# Modified in both, but differently ;(
#
"$1$2$3")
echo "Auto-merging $4"
orig=$(unpack-file $1)
src1=$(unpack-file $2)
src2=$(unpack-file $3)
orig=$(git-unpack-file $1)
src1=$(git-unpack-file $2)
src2=$(git-unpack-file $3)
merge "$src2" "$orig" "$src1"
ret=$?
if [ "$6" != "$7" ]; then
@ -81,7 +81,7 @@ case "${1:-.}${2:-.}${3:-.}" in @@ -81,7 +81,7 @@ case "${1:-.}${2:-.}${3:-.}" in
echo "ERROR: Leaving conflict merge in $src2"
exit 1
fi
cp -- "$src2" "$4" && chmod -- "$6" "$4" && update-cache --add -- "$4" && exit 0
cp -- "$src2" "$4" && chmod -- "$6" "$4" && git-update-cache --add -- "$4" && exit 0
;;

*)

22
git-pull-script

@ -16,16 +16,16 @@ rsync -L $merge_repo/HEAD .git/MERGE_HEAD || exit 1 @@ -16,16 +16,16 @@ rsync -L $merge_repo/HEAD .git/MERGE_HEAD || exit 1

head=$(cat .git/HEAD)
merge_head=$(cat .git/MERGE_HEAD)
common=$(merge-base $head $merge_head)
common=$(git-merge-base $head $merge_head)
if [ -z "$common" ]; then
echo "Unable to find common commit between" $merge_head $head
exit 1
fi

# Get the trees associated with those commits
common_tree=$(cat-file commit $common | sed 's/tree //;q')
head_tree=$(cat-file commit $head | sed 's/tree //;q')
merge_tree=$(cat-file commit $merge_head | sed 's/tree //;q')
common_tree=$(git-cat-file commit $common | sed 's/tree //;q')
head_tree=$(git-cat-file commit $head | sed 's/tree //;q')
merge_tree=$(git-cat-file commit $merge_head | sed 's/tree //;q')

if [ "$common" == "$merge_head" ]; then
echo "Already up-to-date. Yeeah!"
@ -36,21 +36,21 @@ if [ "$common" == "$head" ]; then @@ -36,21 +36,21 @@ if [ "$common" == "$head" ]; then
echo "Destroying all noncommitted data!"
echo "Kill me within 3 seconds.."
sleep 3
read-tree -m $merge_tree && checkout-cache -f -a && update-cache --refresh
git-read-tree -m $merge_tree && git-checkout-cache -f -a && git-update-cache --refresh
echo $merge_head > .git/HEAD
exit 0
fi
echo "Trying to merge $merge_head into $head"
read-tree -m $common_tree $head_tree $merge_tree
git-read-tree -m $common_tree $head_tree $merge_tree
merge_msg="Merge of $merge_repo"
result_tree=$(write-tree 2> /dev/null)
result_tree=$(git-write-tree 2> /dev/null)
if [ $? -ne 0 ]; then
echo "Simple merge failed, trying Automatic merge"
merge-cache git-merge-one-file-script -a
git-merge-cache git-merge-one-file-script -a
merge_msg="Automatic merge of $merge_repo"
result_tree=$(write-tree) || exit 1
result_tree=$(git-write-tree) || exit 1
fi
result_commit=$(echo "$merge_msg" | commit-tree $result_tree -p $head -p $merge_head)
result_commit=$(echo "$merge_msg" | git-commit-tree $result_tree -p $head -p $merge_head)
echo "Committed merge $result_commit"
echo $result_commit > .git/HEAD
checkout-cache -f -a && update-cache --refresh
git-checkout-cache -f -a && git-update-cache --refresh

Loading…
Cancel
Save