Hi, I'm in the process of setting up a git environment with a number of shared branches. To avoid putting unnecessary merges into the trunk, we'd like to normally use rebase when updating private branches. I wondered if it would be possible to automatically determine the correct remote branch to rebase against. The most logical place to do this seemed to be in git-pull, so I experimented with adding a '--rebase' option, per the (rough) diff below. I'm quite new to git, so is this a good strategy? -Tom commit 60b7318c2ebb7ee2bd1afb02f1fc925a29e1b214 Author: Tom Clarke <tom@xxxxxxx> Date: Thu Aug 30 14:39:34 2007 +0200 Added --rebase option to pull diff --git a/git-pull.sh b/git-pull.sh index 5e96d1f..233a1d9 100755 --- a/git-pull.sh +++ b/git-pull.sh @@ -15,7 +15,7 @@ cd_to_toplevel test -z "$(git ls-files -u)" || die "You are in the middle of a conflicted merge." -strategy_args= no_summary= no_commit= squash= +strategy_args= no_summary= no_commit= squash= rebase=false while case "$#,$1" in 0) break ;; *,-*) ;; *) break ;; esac do case "$1" in @@ -29,6 +29,8 @@ do no_commit=--no-commit ;; --sq|--squ|--squa|--squas|--squash) squash=--squash ;; + --re|--reb|--reba|--rebase) + rebase=true ;; -s=*|--s=*|--st=*|--str=*|--stra=*|--strat=*|--strate=*|\ --strateg=*|--strategy=*|\ -s|--s|--st|--str|--stra|--strat|--strate|--strateg|--strategy) @@ -119,5 +121,10 @@ then fi merge_name=$(git fmt-merge-msg <"$GIT_DIR/FETCH_HEAD") || exit -exec git-merge $no_summary $no_commit $squash $strategy_args \ +if test $rebase != "false" +then + exec git-rebase $strategy_args $merge_head +else + exec git-merge $no_summary $no_commit $squash $strategy_args \ "$merge_name" HEAD $merge_head +fi - To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html