Add 'ours' merge strategy.

This adds the coolest merge strategy ever, "ours".  It can take
arbitrary number of foreign heads and merge them into the
current branch, with the resulting tree always taken from our
branch head, hence its name.

What this means is that you can declare that the current branch
supersedes the development histories of other branches using
this merge strategy.

Signed-off-by: Junio C Hamano <junkio@cox.net>
This commit is contained in:
Junio C Hamano 2005-11-01 19:34:49 -08:00
parent 123ee3ca7b
commit 64da9e604e
4 changed files with 10 additions and 2 deletions

1
.gitignore vendored
View File

@ -50,6 +50,7 @@ git-merge-base
git-merge-index git-merge-index
git-merge-octopus git-merge-octopus
git-merge-one-file git-merge-one-file
git-merge-ours
git-merge-recursive git-merge-recursive
git-merge-resolve git-merge-resolve
git-merge-stupid git-merge-stupid

View File

@ -89,7 +89,7 @@ SCRIPT_SH = \
git-tag.sh git-verify-tag.sh git-whatchanged.sh git.sh \ git-tag.sh git-verify-tag.sh git-whatchanged.sh git.sh \
git-applymbox.sh git-applypatch.sh git-am.sh \ git-applymbox.sh git-applypatch.sh git-am.sh \
git-merge.sh git-merge-stupid.sh git-merge-octopus.sh \ git-merge.sh git-merge-stupid.sh git-merge-octopus.sh \
git-merge-resolve.sh git-grep.sh git-merge-resolve.sh git-merge-ours.sh git-grep.sh
SCRIPT_PERL = \ SCRIPT_PERL = \
git-archimport.perl git-cvsimport.perl git-relink.perl \ git-archimport.perl git-cvsimport.perl git-relink.perl \

7
git-merge-ours.sh Executable file
View File

@ -0,0 +1,7 @@
#!/bin/sh
#
# Copyright (c) 2005 Junio C Hamano
#
# Pretend we resolved the heads, but declare our tree trumps everybody else.
#
exit 0

View File

@ -14,7 +14,7 @@ usage () {
# all_strategies='resolve recursive stupid octopus' # all_strategies='resolve recursive stupid octopus'
all_strategies='recursive octopus resolve stupid' all_strategies='recursive octopus resolve stupid ours'
default_strategies='resolve octopus' default_strategies='resolve octopus'
use_strategies= use_strategies=