implémenter l'action push
This commit is contained in:
parent
423d971a13
commit
6353686d4a
114
ulib/vcs
114
ulib/vcs
|
@ -196,9 +196,7 @@ function vcs_add_help() {
|
||||||
uecho "uproject $1: Ajouter les fichiers spécifiés dans le gestionnaire de version
|
uecho "uproject $1: Ajouter les fichiers spécifiés dans le gestionnaire de version
|
||||||
|
|
||||||
USAGE
|
USAGE
|
||||||
uproject $1 <files...>
|
uproject $1 <files...>"
|
||||||
|
|
||||||
OPTIONS"
|
|
||||||
}
|
}
|
||||||
function vcs_add() {
|
function vcs_add() {
|
||||||
# le répertoire de référence est le répertoire du premier fichier ajouté
|
# le répertoire de référence est le répertoire du premier fichier ajouté
|
||||||
|
@ -210,9 +208,7 @@ function vcs_remove_help() {
|
||||||
uecho "uproject $1: Suppprimer les fichiers versionnés spécifiés du gestionaire de version
|
uecho "uproject $1: Suppprimer les fichiers versionnés spécifiés du gestionaire de version
|
||||||
|
|
||||||
USAGE
|
USAGE
|
||||||
uproject $1 <files...>
|
uproject $1 <files...>"
|
||||||
|
|
||||||
OPTIONS"
|
|
||||||
}
|
}
|
||||||
function vcs_remove() {
|
function vcs_remove() {
|
||||||
# le répertoire de référence est le répertoire du premier fichier supprimé
|
# le répertoire de référence est le répertoire du premier fichier supprimé
|
||||||
|
@ -224,9 +220,7 @@ function vcs_copy_help() {
|
||||||
uecho "uproject $1: Copier les fichiers versionnés spécifiés
|
uecho "uproject $1: Copier les fichiers versionnés spécifiés
|
||||||
|
|
||||||
USAGE
|
USAGE
|
||||||
uproject $1 <sources...> <dest>
|
uproject $1 <sources...> <dest>"
|
||||||
|
|
||||||
OPTIONS"
|
|
||||||
}
|
}
|
||||||
function vcs_copy() {
|
function vcs_copy() {
|
||||||
# le répertoire de référence est le répertoire de destination
|
# le répertoire de référence est le répertoire de destination
|
||||||
|
@ -239,9 +233,7 @@ function vcs_move_help() {
|
||||||
uecho "uproject $1: Déplacer les fichiers versionnés spécifiés
|
uecho "uproject $1: Déplacer les fichiers versionnés spécifiés
|
||||||
|
|
||||||
USAGE
|
USAGE
|
||||||
uproject $1 <sources...> <dest>
|
uproject $1 <sources...> <dest>"
|
||||||
|
|
||||||
OPTIONS"
|
|
||||||
}
|
}
|
||||||
function vcs_move() {
|
function vcs_move() {
|
||||||
# le répertoire de référence est le répertoire de destination
|
# le répertoire de référence est le répertoire de destination
|
||||||
|
@ -254,9 +246,7 @@ function vcs_mkdir_help() {
|
||||||
uecho "uproject $1: Créer un nouveau répertoire versionné
|
uecho "uproject $1: Créer un nouveau répertoire versionné
|
||||||
|
|
||||||
USAGE
|
USAGE
|
||||||
uproject $1
|
uproject $1"
|
||||||
|
|
||||||
OPTIONS"
|
|
||||||
}
|
}
|
||||||
function vcs_mkdir() {
|
function vcs_mkdir() {
|
||||||
# le répertoire de référence est le répertoire du premier répertoire créé
|
# le répertoire de référence est le répertoire du premier répertoire créé
|
||||||
|
@ -275,7 +265,7 @@ Si files n'est pas spécifié, prendre tous les fichiers modifiés actuellement
|
||||||
OPTIONS
|
OPTIONS
|
||||||
-a Enregistrer les modifications sur tous les fichiers modifiés.
|
-a Enregistrer les modifications sur tous les fichiers modifiés.
|
||||||
-c Enregistrer uniquement les modifications de l'index. (si applicable)
|
-c Enregistrer uniquement les modifications de l'index. (si applicable)
|
||||||
-l Garder le commit local, i.e. les modifications ne sont pas pushées sur
|
-l Garder le commit local, i.e. les modifications ne sont pas poussées sur
|
||||||
le serveur. (si applicable)"
|
le serveur. (si applicable)"
|
||||||
}
|
}
|
||||||
function vcs_commit() {
|
function vcs_commit() {
|
||||||
|
@ -307,6 +297,17 @@ function vcs_update() {
|
||||||
_vcs_dispatch "" update "$@"
|
_vcs_dispatch "" update "$@"
|
||||||
}
|
}
|
||||||
########################################
|
########################################
|
||||||
|
function vcs_push_help() {
|
||||||
|
local OENC="$UTF8"
|
||||||
|
uecho "uproject $1: Pousser les modifications locales sur le serveur
|
||||||
|
|
||||||
|
USAGE
|
||||||
|
uproject $1"
|
||||||
|
}
|
||||||
|
function vcs_push() {
|
||||||
|
_vcs_dispatch "" push "$@"
|
||||||
|
}
|
||||||
|
########################################
|
||||||
function vcs_diff_help() {
|
function vcs_diff_help() {
|
||||||
local OENC="$UTF8"
|
local OENC="$UTF8"
|
||||||
uecho "uproject $1: Afficher les différences
|
uecho "uproject $1: Afficher les différences
|
||||||
|
@ -362,12 +363,13 @@ function git_mkdir() {
|
||||||
git mkdir "$@"
|
git mkdir "$@"
|
||||||
}
|
}
|
||||||
function git_commit() {
|
function git_commit() {
|
||||||
local all=auto nopush args
|
local all=auto push=auto args
|
||||||
normyesval nopush "$NOPUSH"
|
normyesval nopush "$NOPUSH"
|
||||||
parse_opts + "${PRETTYOPTS[@]}" \
|
parse_opts + "${PRETTYOPTS[@]}" \
|
||||||
-a all=1 \
|
-a,--all all=1 \
|
||||||
-c all= \
|
-c,--cached all= \
|
||||||
-l nopush=1 \
|
-p,--push push=1 \
|
||||||
|
-l,--local push= \
|
||||||
@ args -- "$@" && set -- "${args[@]}" || {
|
@ args -- "$@" && set -- "${args[@]}" || {
|
||||||
eerror "$args"
|
eerror "$args"
|
||||||
return 1
|
return 1
|
||||||
|
@ -393,11 +395,16 @@ function git_commit() {
|
||||||
else
|
else
|
||||||
[ -n "$all" ] && cmd=("${cmd[@]}" -a)
|
[ -n "$all" ] && cmd=("${cmd[@]}" -a)
|
||||||
fi
|
fi
|
||||||
"${cmd[@]}" "$@"
|
|
||||||
if [ -z "$nopush" ]; then
|
if ! "${cmd[@]}" "$@"; then
|
||||||
[ -n "$(git config --get remote.origin.url)" ] &&
|
[ "$push" == auto ] && return 1
|
||||||
git push origin master
|
|
||||||
fi
|
fi
|
||||||
|
if [ "$push" == auto ]; then
|
||||||
|
git_push --auto || return
|
||||||
|
elif [ -n "$push" ]; then
|
||||||
|
git_push --force || return
|
||||||
|
fi
|
||||||
|
return 0
|
||||||
}
|
}
|
||||||
function git_status() {
|
function git_status() {
|
||||||
git status "$@"
|
git status "$@"
|
||||||
|
@ -413,6 +420,49 @@ function git_update() {
|
||||||
|
|
||||||
git pull "$@"
|
git pull "$@"
|
||||||
}
|
}
|
||||||
|
function git_push() {
|
||||||
|
local auto force args
|
||||||
|
parse_opts + "${PRETTYOPTS[@]}" \
|
||||||
|
-a,--auto auto=1 \
|
||||||
|
-f,--force force=1 \
|
||||||
|
@ args -- "$@" && set -- "${args[@]}" || {
|
||||||
|
eerror "$args"
|
||||||
|
return 1
|
||||||
|
}
|
||||||
|
|
||||||
|
if [ $# -gt 0 ]; then
|
||||||
|
# si des arguments sont spécifiés, les passer à git sans modification
|
||||||
|
git push "$@"
|
||||||
|
return $?
|
||||||
|
fi
|
||||||
|
|
||||||
|
# sinon on push vers origin. vérifier la présence du remote
|
||||||
|
[ -n "$(git config --get remote.origin.url)" ] || {
|
||||||
|
if [ -n "$auto" ]; then
|
||||||
|
# en mode automatique, ignorer l'absence de remote
|
||||||
|
return 0
|
||||||
|
else
|
||||||
|
eerror "Aucun remote origin n'est défini"
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# puis calculer la branche à pusher
|
||||||
|
local branch="$(git rev-parse --abbrev-ref HEAD 2>/dev/null)"
|
||||||
|
local origin="$(git config --get "branch.$branch.remote")"
|
||||||
|
if [ -n "$branch" -a "$origin" == origin ]; then
|
||||||
|
if [ -n "$auto" ]; then
|
||||||
|
# en mode automatique, ne pousser que la branche courante
|
||||||
|
git push origin "$branch" || return
|
||||||
|
else
|
||||||
|
# pousser toutes les branches
|
||||||
|
git push || return
|
||||||
|
fi
|
||||||
|
elif [ -n "$force" ]; then
|
||||||
|
git push || return
|
||||||
|
fi
|
||||||
|
return 0
|
||||||
|
}
|
||||||
function git_diff() {
|
function git_diff() {
|
||||||
local dummy cached args
|
local dummy cached args
|
||||||
parse_opts + "${PRETTYOPTS[@]}" \
|
parse_opts + "${PRETTYOPTS[@]}" \
|
||||||
|
@ -477,6 +527,14 @@ function svn_update() {
|
||||||
|
|
||||||
svn update ${ignore_externals:+--ignore-externals} "$@"
|
svn update ${ignore_externals:+--ignore-externals} "$@"
|
||||||
}
|
}
|
||||||
|
function svn_push() {
|
||||||
|
local args
|
||||||
|
parse_opts + "${PRETTYOPTS[@]}" \
|
||||||
|
@ args -- "$@" && set -- "${args[@]}" || {
|
||||||
|
eerror "$args"
|
||||||
|
return 1
|
||||||
|
}
|
||||||
|
}
|
||||||
function svn_diff() {
|
function svn_diff() {
|
||||||
local dummy revision args tmpfile0 tmpfile
|
local dummy revision args tmpfile0 tmpfile
|
||||||
parse_opts + "${PRETTYOPTS[@]}" \
|
parse_opts + "${PRETTYOPTS[@]}" \
|
||||||
|
@ -592,6 +650,14 @@ function cvs_update() {
|
||||||
|
|
||||||
cvs update "$@"
|
cvs update "$@"
|
||||||
}
|
}
|
||||||
|
function cvs_push() {
|
||||||
|
local args
|
||||||
|
parse_opts + "${PRETTYOPTS[@]}" \
|
||||||
|
@ args -- "$@" && set -- "${args[@]}" || {
|
||||||
|
eerror "$args"
|
||||||
|
return 1
|
||||||
|
}
|
||||||
|
}
|
||||||
function cvs_diff() {
|
function cvs_diff() {
|
||||||
local dummy revision args tmpfile
|
local dummy revision args tmpfile
|
||||||
parse_opts + "${PRETTYOPTS[@]}" \
|
parse_opts + "${PRETTYOPTS[@]}" \
|
||||||
|
|
5
uproject
5
uproject
|
@ -72,7 +72,7 @@ COMMANDS
|
||||||
SCRIPT_ALIASES=(
|
SCRIPT_ALIASES=(
|
||||||
pv:vcs
|
pv:vcs
|
||||||
pa:add prm:remove pcp:copy pmv:move pmd:mkdir
|
pa:add prm:remove pcp:copy pmv:move pmd:mkdir
|
||||||
pci:commit pu:update pdiff:diff
|
pci:commit pu:update pp:push pdiff:diff
|
||||||
pnew:new
|
pnew:new
|
||||||
pgr:grep
|
pgr:grep
|
||||||
paddml:addml
|
paddml:addml
|
||||||
|
@ -88,12 +88,13 @@ CMD_ALIASES=(
|
||||||
ci:commit
|
ci:commit
|
||||||
s:status st:status
|
s:status st:status
|
||||||
u:update upd:update
|
u:update upd:update
|
||||||
|
p:push
|
||||||
gr:grep
|
gr:grep
|
||||||
)
|
)
|
||||||
DEFAULT_CMD=status
|
DEFAULT_CMD=status
|
||||||
PY_CMDS=(new)
|
PY_CMDS=(new)
|
||||||
|
VCS_CMDS=(getvcs getroot getrepos geturl vcs add remove copy move mkdir commit status update push diff tag)
|
||||||
ML_CMDS=(printml addml)
|
ML_CMDS=(printml addml)
|
||||||
VCS_CMDS=(getvcs getroot getrepos geturl vcs add remove copy move mkdir commit status update diff tag)
|
|
||||||
|
|
||||||
if [ "$#" -eq 1 -a "$1" == --nutools-makelinks ]; then
|
if [ "$#" -eq 1 -a "$1" == --nutools-makelinks ]; then
|
||||||
# créer les liens
|
# créer les liens
|
||||||
|
|
Loading…
Reference in New Issue