From 207dfa07919baba034291f1d5169f86272839d59 Mon Sep 17 00:00:00 2001 From: Junio C Hamano Date: Wed, 7 Feb 2007 10:37:03 -0800 Subject: Remove git-resolve. Signed-off-by: Junio C Hamano --- contrib/examples/git-resolve.sh | 112 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 112 insertions(+) create mode 100755 contrib/examples/git-resolve.sh (limited to 'contrib/examples/git-resolve.sh') diff --git a/contrib/examples/git-resolve.sh b/contrib/examples/git-resolve.sh new file mode 100755 index 0000000000..36b90e3849 --- /dev/null +++ b/contrib/examples/git-resolve.sh @@ -0,0 +1,112 @@ +#!/bin/sh +# +# Copyright (c) 2005 Linus Torvalds +# +# Resolve two trees. +# + +echo 'WARNING: This command is DEPRECATED and will be removed very soon.' >&2 +echo 'WARNING: Please use git-merge or git-pull instead.' >&2 +sleep 2 + +USAGE=' ' +. git-sh-setup + +dropheads() { + rm -f -- "$GIT_DIR/MERGE_HEAD" \ + "$GIT_DIR/LAST_MERGE" || exit 1 +} + +head=$(git-rev-parse --verify "$1"^0) && +merge=$(git-rev-parse --verify "$2"^0) && +merge_name="$2" && +merge_msg="$3" || usage + +# +# The remote name is just used for the message, +# but we do want it. +# +if [ -z "$head" -o -z "$merge" -o -z "$merge_msg" ]; then + usage +fi + +dropheads +echo $head > "$GIT_DIR"/ORIG_HEAD +echo $merge > "$GIT_DIR"/LAST_MERGE + +common=$(git-merge-base $head $merge) +if [ -z "$common" ]; then + die "Unable to find common commit between" $merge $head +fi + +case "$common" in +"$merge") + echo "Already up-to-date. Yeeah!" + dropheads + exit 0 + ;; +"$head") + echo "Updating $(git-rev-parse --short $head)..$(git-rev-parse --short $merge)" + git-read-tree -u -m $head $merge || exit 1 + git-update-ref -m "resolve $merge_name: Fast forward" \ + HEAD "$merge" "$head" + git-diff-tree -p $head $merge | git-apply --stat + dropheads + exit 0 + ;; +esac + +# We are going to make a new commit. +git var GIT_COMMITTER_IDENT >/dev/null || exit + +# Find an optimum merge base if there are more than one candidates. +LF=' +' +common=$(git-merge-base -a $head $merge) +case "$common" in +?*"$LF"?*) + echo "Trying to find the optimum merge base." + G=.tmp-index$$ + best= + best_cnt=-1 + for c in $common + do + rm -f $G + GIT_INDEX_FILE=$G git-read-tree -m $c $head $merge \ + 2>/dev/null || continue + # Count the paths that are unmerged. + cnt=`GIT_INDEX_FILE=$G git-ls-files --unmerged | wc -l` + if test $best_cnt -le 0 -o $cnt -le $best_cnt + then + best=$c + best_cnt=$cnt + if test "$best_cnt" -eq 0 + then + # Cannot do any better than all trivial merge. + break + fi + fi + done + rm -f $G + common="$best" +esac + +echo "Trying to merge $merge into $head using $common." +git-update-index --refresh 2>/dev/null +git-read-tree -u -m $common $head $merge || exit 1 +result_tree=$(git-write-tree 2> /dev/null) +if [ $? -ne 0 ]; then + echo "Simple merge failed, trying Automatic merge" + git-merge-index -o git-merge-one-file -a + if [ $? -ne 0 ]; then + echo $merge > "$GIT_DIR"/MERGE_HEAD + die "Automatic merge failed, fix up by hand" + fi + result_tree=$(git-write-tree) || exit 1 +fi +result_commit=$(echo "$merge_msg" | git-commit-tree $result_tree -p $head -p $merge) +echo "Committed merge $result_commit" +git-update-ref -m "resolve $merge_name: In-index merge" \ + HEAD "$result_commit" "$head" +git-diff-tree -p $head $result_commit | git-apply --stat +dropheads -- cgit v1.2.1 From 5be60078c935ed08ee8eb5a32680bdfb6bb5bdf3 Mon Sep 17 00:00:00 2001 From: Junio C Hamano Date: Mon, 2 Jul 2007 22:52:14 -0700 Subject: Rewrite "git-frotz" to "git frotz" This uses the remove-dashes target to replace "git-frotz" to "git frotz". Signed-off-by: Junio C Hamano --- contrib/examples/git-resolve.sh | 34 +++++++++++++++++----------------- 1 file changed, 17 insertions(+), 17 deletions(-) (limited to 'contrib/examples/git-resolve.sh') diff --git a/contrib/examples/git-resolve.sh b/contrib/examples/git-resolve.sh index 36b90e3849..0ee1bd898e 100755 --- a/contrib/examples/git-resolve.sh +++ b/contrib/examples/git-resolve.sh @@ -17,8 +17,8 @@ dropheads() { "$GIT_DIR/LAST_MERGE" || exit 1 } -head=$(git-rev-parse --verify "$1"^0) && -merge=$(git-rev-parse --verify "$2"^0) && +head=$(git rev-parse --verify "$1"^0) && +merge=$(git rev-parse --verify "$2"^0) && merge_name="$2" && merge_msg="$3" || usage @@ -34,7 +34,7 @@ dropheads echo $head > "$GIT_DIR"/ORIG_HEAD echo $merge > "$GIT_DIR"/LAST_MERGE -common=$(git-merge-base $head $merge) +common=$(git merge-base $head $merge) if [ -z "$common" ]; then die "Unable to find common commit between" $merge $head fi @@ -46,11 +46,11 @@ case "$common" in exit 0 ;; "$head") - echo "Updating $(git-rev-parse --short $head)..$(git-rev-parse --short $merge)" - git-read-tree -u -m $head $merge || exit 1 - git-update-ref -m "resolve $merge_name: Fast forward" \ + echo "Updating $(git rev-parse --short $head)..$(git rev-parse --short $merge)" + git read-tree -u -m $head $merge || exit 1 + git update-ref -m "resolve $merge_name: Fast forward" \ HEAD "$merge" "$head" - git-diff-tree -p $head $merge | git-apply --stat + git diff-tree -p $head $merge | git apply --stat dropheads exit 0 ;; @@ -62,7 +62,7 @@ git var GIT_COMMITTER_IDENT >/dev/null || exit # Find an optimum merge base if there are more than one candidates. LF=' ' -common=$(git-merge-base -a $head $merge) +common=$(git merge-base -a $head $merge) case "$common" in ?*"$LF"?*) echo "Trying to find the optimum merge base." @@ -72,10 +72,10 @@ case "$common" in for c in $common do rm -f $G - GIT_INDEX_FILE=$G git-read-tree -m $c $head $merge \ + GIT_INDEX_FILE=$G git read-tree -m $c $head $merge \ 2>/dev/null || continue # Count the paths that are unmerged. - cnt=`GIT_INDEX_FILE=$G git-ls-files --unmerged | wc -l` + cnt=`GIT_INDEX_FILE=$G git ls-files --unmerged | wc -l` if test $best_cnt -le 0 -o $cnt -le $best_cnt then best=$c @@ -92,9 +92,9 @@ case "$common" in esac echo "Trying to merge $merge into $head using $common." -git-update-index --refresh 2>/dev/null -git-read-tree -u -m $common $head $merge || exit 1 -result_tree=$(git-write-tree 2> /dev/null) +git update-index --refresh 2>/dev/null +git read-tree -u -m $common $head $merge || exit 1 +result_tree=$(git write-tree 2> /dev/null) if [ $? -ne 0 ]; then echo "Simple merge failed, trying Automatic merge" git-merge-index -o git-merge-one-file -a @@ -102,11 +102,11 @@ if [ $? -ne 0 ]; then echo $merge > "$GIT_DIR"/MERGE_HEAD die "Automatic merge failed, fix up by hand" fi - result_tree=$(git-write-tree) || exit 1 + result_tree=$(git write-tree) || exit 1 fi -result_commit=$(echo "$merge_msg" | git-commit-tree $result_tree -p $head -p $merge) +result_commit=$(echo "$merge_msg" | git commit-tree $result_tree -p $head -p $merge) echo "Committed merge $result_commit" -git-update-ref -m "resolve $merge_name: In-index merge" \ +git update-ref -m "resolve $merge_name: In-index merge" \ HEAD "$result_commit" "$head" -git-diff-tree -p $head $result_commit | git-apply --stat +git diff-tree -p $head $result_commit | git apply --stat dropheads -- cgit v1.2.1 From a75d7b54097ef0d0945cbe673a9940d6c561f95c Mon Sep 17 00:00:00 2001 From: Felipe Contreras Date: Sat, 24 Oct 2009 11:31:32 +0300 Subject: Use 'fast-forward' all over the place It's a compound word. Signed-off-by: Felipe Contreras Signed-off-by: Junio C Hamano --- contrib/examples/git-resolve.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'contrib/examples/git-resolve.sh') diff --git a/contrib/examples/git-resolve.sh b/contrib/examples/git-resolve.sh index 0ee1bd898e..8f98142f77 100755 --- a/contrib/examples/git-resolve.sh +++ b/contrib/examples/git-resolve.sh @@ -48,7 +48,7 @@ case "$common" in "$head") echo "Updating $(git rev-parse --short $head)..$(git rev-parse --short $merge)" git read-tree -u -m $head $merge || exit 1 - git update-ref -m "resolve $merge_name: Fast forward" \ + git update-ref -m "resolve $merge_name: Fast-forward" \ HEAD "$merge" "$head" git diff-tree -p $head $merge | git apply --stat dropheads -- cgit v1.2.1