Existe-t-il un moyen simple d'afficher uniquement les fichiers de mon référentiel ajoutés, supprimés ou modifiés localement? Je sais que je peux taper "cvs stat" et parcourir la liste des fichiers, mais c'est fastidieux et source d'erreurs. Je me demande s'il existe un moyen plus facile. J'utilise CVS 1.11.17, au cas où cela serait important.
Une mise à jour "factice" vous donnera ces informations.
cvs -qn update
Une brève description des options utilisées:
-q Cause CVS to be somewhat quiet.
-n Do not execute anything that will change the disk.
Vous pouvez obtenir une courte liste des différences à l’aide de la commande cvs diff
:
cvs -q diff --brief
Transférez-le à grep
!
cvs -Q status | grep -i locally
Voici ce que j'utilise:
cvs -Q status | grep -A 4 Locally | egrep -v '^\-\-|^ Working|^ Commit|^$' | awk '{print $2 " " $4}' | sed -e 's/\<Locally\>//;s/revision: \CVS-REPOSITORY-PATH/\t\t/'
Sortie:
pin_stages.ref
tests/unit/ccsn/pin_stages/pin_stages.ref,v
pin_stages_func.ref
tests/unit/ccsn/pin_stages_func/pin_stages_func.ref,v
Voici la liste des fichiers modifiés par le script nmake-Perl, elle est basée sur cvs update -qn:
DIRS=\
c:\project1\
c:\project2
all: $(DIRS)
!cd $? & cvs -qn update | Perl -ne "s!\/!\\!g;print '$?\\'.qq($$1) if /^M (.*)/s;"
vous pouvez utiliser la commande suivante pour obtenir la liste des fichiers que vous avez modifiés localement
cvs -qn update | grep "M" | awk '{print $ 2}'
Effectuez une mise à jour CVS Les fichiers précédés de M sont des fichiers modifiés.
Exemple:
CVS Update
cvsntsrv server: Updating dat/idv
M dat/idv/conduct.idv = Modified
...
Au lieu de cvs update -qn
communément mentionné, vous pouvez utiliser la commande cvs release
. Mais celui-ci est interactif et demande une confirmation à la fin de la sortie (il suffit donc de l’abandonner!). Sortie normale:
> cvs release .
...
U some/updated/file
M some/modified/file
...
You have [1] altered files in this repository.
Are you sure you want to release directory `.': n
** `release' aborted by user choice.
>
Après la question Are you sure you want to release directory '.':
, vous avez mis quelque chose de différent de y
ou Y
.