File tree Expand file tree Collapse file tree 2 files changed +23
-2
lines changed Expand file tree Collapse file tree 2 files changed +23
-2
lines changed Original file line number Diff line number Diff line change @@ -18,6 +18,7 @@ test -z "$(git ls-files -u)" ||
18
18
19
19
strategy_args= diffstat= no_commit= squash= no_ff= ff_only=
20
20
log_arg= verbosity=
21
+ merge_args=
21
22
curr_branch=$( git symbolic-ref -q HEAD)
22
23
curr_branch_short=$( echo " $curr_branch " | sed " s|refs/heads/||" )
23
24
rebase=$( git config --bool branch.$curr_branch_short .rebase)
62
63
esac
63
64
strategy_args=" ${strategy_args} -s $strategy "
64
65
;;
66
+ -X* )
67
+ case " $# ,$1 " in
68
+ 1,-X)
69
+ usage ;;
70
+ * ,-X)
71
+ xx=" -X $2 "
72
+ shift ;;
73
+ * ,* )
74
+ xx=" $1 " ;;
75
+ esac
76
+ merge_args=" $merge_args$xx "
77
+ ;;
65
78
-r|--r|--re|--reb|--reba|--rebas|--rebase)
66
79
rebase=true
67
80
;;
216
229
217
230
merge_name=$( git fmt-merge-msg $log_arg < " $GIT_DIR /FETCH_HEAD" ) || exit
218
231
test true = " $rebase " &&
219
- exec git-rebase $diffstat $strategy_args --onto $merge_head \
232
+ exec git-rebase $diffstat $strategy_args $merge_args --onto $merge_head \
220
233
${oldremoteref:- $merge_head }
221
- exec git-merge $diffstat $no_commit $squash $no_ff $ff_only $log_arg $strategy_args \
234
+ exec git-merge $diffstat $no_commit $squash $no_ff $ff_only $log_arg $strategy_args $merge_args \
222
235
" $merge_name " HEAD $merge_head $verbosity
Original file line number Diff line number Diff line change @@ -53,4 +53,12 @@ test_expect_success 'recursive favouring ours' '
53
53
! grep 1 file
54
54
'
55
55
56
+ test_expect_success ' pull with -X' '
57
+ git reset --hard master && git pull -s recursive -Xours . side &&
58
+ git reset --hard master && git pull -s recursive -X ours . side &&
59
+ git reset --hard master && git pull -s recursive -Xtheirs . side &&
60
+ git reset --hard master && git pull -s recursive -X theirs . side &&
61
+ git reset --hard master && ! git pull -s recursive -X bork . side
62
+ '
63
+
56
64
test_done
You can’t perform that action at this time.
0 commit comments