diff --git a/lib/ulib/base b/lib/ulib/base index 596411f..bd72148 100644 --- a/lib/ulib/base +++ b/lib/ulib/base @@ -1193,6 +1193,7 @@ function __cpdir() { } __CPNOVCS_RSYNC_SLOW=1 # synchro potentiellement plus lente, mais plus fidèle (option -c) __CPNOVCS_RSYNC_ARGS=(-q) +__CPNOVCS_INCLUDE_VCS= # ne pas ignorer les répertoires de VCS function cpnovcs() { # copier le fichier/répertoire $1 *dans* le *répertoire* $2 avec rsync. Les # options du tableau __CPNOVCS_RSYNC_ARGS sont rajoutées aux options standard @@ -1206,11 +1207,13 @@ function cpnovcs() { local src="$1" destdir="$2" [ -d "$destdir" ] || mkdir -p "$destdir" || return 1 if progexists rsync; then - local gitexclude=/.git/ - if [ "${src%/}" == "$src" ]; then - gitexclude="/$(basename -- "$src")$gitexclude" + local -a novcs + if [ -z "$__CPNOVCS_INCLUDE_VCS" ]; then + local gitexclude=/.git/ + [ "${src%/}" == "$src" ] && gitexclude="/$(basename -- "$src")$gitexclude" + novcs=(--exclude CVS/ --exclude .svn/ --exclude "$gitexclude") fi - rsync -a ${__CPNOVCS_RSYNC_SLOW:+-c} --exclude CVS/ --exclude .svn/ --exclude "$gitexclude" "${__CPNOVCS_RSYNC_ARGS[@]}" "$src" "$destdir/" + rsync -a ${__CPNOVCS_RSYNC_SLOW:+-c} "${novcs[@]}" "${__CPNOVCS_RSYNC_ARGS[@]}" "$src" "$destdir/" elif [ "${src%/}" != "$src" ]; then __cpdir "$src" "$destdir" else @@ -1219,6 +1222,11 @@ function cpnovcs() { __cpdir "$src" "$destdir/$srcname" fi } +function cpvcs() { +# comme cpnovcs, mais ne pas ignorer les répertoires de VCS + local __CPNOVCS_INCLUDE_VCS=1 + cpnovcs "$@" +} function cpdirnovcs() { # Le pendant de cpdir, mais en ignorant les sous-répertoires de VCS: copier le # contenu du répertoire $1 dans le répertoire $2