X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ian/git?p=topbloke.git;a=blobdiff_plain;f=topbloke-merge-driver;h=a3d199920bac4a2e952859b9562886aac5a94338;hp=c90680e742742d441f40197967639bdc591e6913;hb=8acb4aba1948cee65c773e1d0c199e190dc4837f;hpb=89cc7b48d4486441fcd6f589b5e344993b522fe7 diff --git a/topbloke-merge-driver b/topbloke-merge-driver index c90680e..a3d1999 100755 --- a/topbloke-merge-driver +++ b/topbloke-merge-driver @@ -4,32 +4,42 @@ set -e fail () { echo >&2 "$0: $*"; exit 127; } case "$1" in ---v1) on=tip ;; ---base-v1) on=base ;; +--v1) how=same ;; # merge into tip from another tip of this patch + # or into base from another base of this patch +--v1-base) how=base ;; # merge into tip from a base of this patch +--v1-dep) how=dep ;; # merge into base from a dep's tip *) fail "bad usage" ;; esac whichfile=$1 ancestor=$2 -current=$3 -other=$4 +ours=$3 +theirs=$4 markersize=$5 +set -- "$ours" "$ancestor" "$theirs" + case $on.$whichfile in -tip.msg) - exec git-merge-file --marker-size=$markersize \ - "$current" "$ancestor" "$other" +dep.msg|dep.deps|dep.props) + touch "$ours" + ;; +base.msg) + echo '# not applicable' >"$ours" +base.deps) + echo >"$ours" + touch >"$ours" + ;; +base.props) + exec topbloke-merge-lists -M$markersize -P -UDeleted "$@" ;; -base.msg|base.deps) - echo '# not applicable' >"$current" - exit 0 +same.msg) + exec git-merge-file --marker-size=$markersize "$@" ;; -*.included|tip.deps|tip.flags) - exec topbloke-merge-lists "$current" "$ancestor" "$other" +same.deps|*.included) + exec topbloke-merge-lists -M$markersize "$@" ;; -base.flags) - exec topbloke-merge-lists -UDeleted \ - "$current" "$ancestor" "$other" +same.props|*.pprops) + exec topbloke-merge-lists -M$markersize -P "$@" ;; *) fail "huh $on $whichfile ?"