diff --git a/CHANGES.txt b/CHANGES.txt index cba4985..fe93949 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,3 +1,10 @@ +## Version 1.11.0 du 22/05/2015-11:41 + +2984052 Intégration de la branche quiet-completion +755cfa7 ne pas afficher les erreurs pour les fonctions de complétion de git +2b5eb2a Intégration de la branche pu +b004730 uproject update fait fetch puis merge, manuellement + ## Version 1.10.0 du 20/05/2015-12:08 bf1d86a Intégration de la branche pu-auto-forward diff --git a/VERSION.txt b/VERSION.txt index 81c871d..1cac385 100644 --- a/VERSION.txt +++ b/VERSION.txt @@ -1 +1 @@ -1.10.0 +1.11.0 diff --git a/lib/completion.d/ptools b/lib/completion.d/ptools index 085c636..85bf02d 100644 --- a/lib/completion.d/ptools +++ b/lib/completion.d/ptools @@ -3,8 +3,8 @@ function __pdev_branches() { local prefix=origin/ { - git for-each-ref refs/heads/ --format='%(refname:short)' - git for-each-ref "refs/remotes/$prefix" --format='%(refname:short)' | grep -F "$prefix" | cut -c $((${#prefix} + 1))- + git for-each-ref refs/heads/ --format='%(refname:short)' 2>/dev/null + git for-each-ref "refs/remotes/$prefix" --format='%(refname:short)' 2>/dev/null | grep -F "$prefix" | cut -c $((${#prefix} + 1))- } | LANG=C sort -u | grep -vF HEAD | grep -vF master | @@ -12,6 +12,6 @@ function __pdev_branches() { grep -v '^hotfix-' } function __prel_branches() { - git for-each-ref --format='%(refname:short)' refs/heads | + git for-each-ref --format='%(refname:short)' refs/heads 2>/dev/null | grep -E '^(master$|release-)' } diff --git a/lib/ulib/vcs b/lib/ulib/vcs index 79cbad9..9e7ccd0 100644 --- a/lib/ulib/vcs +++ b/lib/ulib/vcs @@ -451,26 +451,42 @@ function git_update() { return 1 } - git pull "$@" || return - if [ -n "$autoff" ]; then - local orig_branch restore_branch rbranch - local -a branches - 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")" - [ -n "$remote" -a -n "$rbranch" ] || continue + 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 - done - [ -n "$restore_branch" ] && git checkout -q "$orig_branch" - 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" return 0 } function git_push() {