Intégration de la branche pu
This commit is contained in:
commit
2b5eb2aefc
26
lib/ulib/vcs
26
lib/ulib/vcs
|
@ -451,26 +451,42 @@ function git_update() {
|
||||||
return 1
|
return 1
|
||||||
}
|
}
|
||||||
|
|
||||||
git pull "$@" || return
|
if [ -z "$autoff" ]; then
|
||||||
if [ -n "$autoff" ]; then
|
git pull "$@"
|
||||||
local orig_branch restore_branch rbranch
|
return $?
|
||||||
|
fi
|
||||||
|
|
||||||
|
local orig_branch restore_branch remote rbranch pbranch
|
||||||
local -a branches
|
local -a branches
|
||||||
|
|
||||||
|
git fetch -p "$@" || return
|
||||||
|
|
||||||
git_check_cleancheckout || return 0
|
git_check_cleancheckout || return 0
|
||||||
orig_branch="$(git_get_branch)"
|
orig_branch="$(git_get_branch)"
|
||||||
array_from_lines branches "$(git_list_branches)"
|
array_from_lines branches "$(git_list_branches)"
|
||||||
for branch in "${branches[@]}"; do
|
for branch in "${branches[@]}"; do
|
||||||
remote="$(git_get_branch_remote "$branch")"
|
remote="$(git_get_branch_remote "$branch")"
|
||||||
rbranch="$(git_get_branch_rbranch "$branch" "$remote")"
|
rbranch="$(git_get_branch_rbranch "$branch" "$remote")"
|
||||||
|
pbranch="${rbranch#refs/remotes/}"
|
||||||
[ -n "$remote" -a -n "$rbranch" ] || continue
|
[ -n "$remote" -a -n "$rbranch" ] || continue
|
||||||
|
if git_is_ancestor "$branch" "$rbranch"; then
|
||||||
if git_should_ff "$branch" "$rbranch"; then
|
if git_should_ff "$branch" "$rbranch"; then
|
||||||
echo "Fast-forwarding $branch..."
|
echo "* Fast-forwarding $branch -> $pbranch"
|
||||||
git checkout -q "$branch"
|
git checkout -q "$branch"
|
||||||
git merge -q --ff-only "$rbranch"
|
git merge -q --ff-only "$rbranch"
|
||||||
restore_branch=1
|
restore_branch=1
|
||||||
fi
|
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
|
done
|
||||||
[ -n "$restore_branch" ] && git checkout -q "$orig_branch"
|
[ -n "$restore_branch" ] && git checkout -q "$orig_branch"
|
||||||
fi
|
|
||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
function git_push() {
|
function git_push() {
|
||||||
|
|
Loading…
Reference in New Issue