Intégration de la branche pu

This commit is contained in:
Jephte CLAIN 2015-05-21 15:09:27 +04:00
commit 2b5eb2aefc
1 changed files with 31 additions and 15 deletions

View File

@ -451,26 +451,42 @@ function git_update() {
return 1
}
git pull "$@" || return
if [ -n "$autoff" ]; then
local orig_branch restore_branch rbranch
if [ -z "$autoff" ]; then
git pull "$@"
return $?
fi
local orig_branch restore_branch remote rbranch pbranch
local -a branches
git fetch -p "$@" || return
git_check_cleancheckout || return 0
orig_branch="$(git_get_branch)"
array_from_lines branches "$(git_list_branches)"
for branch in "${branches[@]}"; do
remote="$(git_get_branch_remote "$branch")"
rbranch="$(git_get_branch_rbranch "$branch" "$remote")"
pbranch="${rbranch#refs/remotes/}"
[ -n "$remote" -a -n "$rbranch" ] || continue
if git_is_ancestor "$branch" "$rbranch"; then
if git_should_ff "$branch" "$rbranch"; then
echo "Fast-forwarding $branch..."
echo "* Fast-forwarding $branch -> $pbranch"
git checkout -q "$branch"
git merge -q --ff-only "$rbranch"
restore_branch=1
fi
else
if [ "$branch" == "$orig_branch" ]; then
echo "* Cannot fast-forward CURRENT branch $branch from $pbranch
Try to merge manually with: git merge $pbranch"
else
echo "* Cannot fast-forward local branch $branch from $pbranch
You can merge manually with: git checkout $branch; git merge $pbranch"
fi
fi
done
[ -n "$restore_branch" ] && git checkout -q "$orig_branch"
fi
return 0
}
function git_push() {