2011-02-07 4 views
3

Lors de la restauration de fichiers modifiés localement, existe-t-il un moyen d'exclure des fichiers? En raison de circonstances indépendantes de ma volonté, mon flux de travail actuel est de:Rétablissement sélectif des fichiers modifiés localement

  1. Créer une diff de fichiers que je veux inclure
  2. état svn pour obtenir une liste des modifications
  3. svn revert, copypasting les fichiers qui ont été inclus dans le diff
  4. restes rm'ing - par exemple les fichiers ajoutés non sous contrôle de version

Ce que je suis après ressemblerait à quelque chose comme

svn revert -R --exclude file1 --exclude file2 /my/path 

Répondre

4

En utilisant changelists.

Tag tous les fichiers comme to_revert:
$ svn changelist to_revert -R /my/path

untag certains fichiers:
$ svn changelist --remove file1 file2

Revert uniquement les fichiers marqués:
$ svn revert --changelist to_revert -R /my/path

+0

Ceci est préférable, mais, autant que je sache, remplace les fichiers dans d'autres changelists. – c0dem4gnetic

+0

Il détruit toutes les listes de modifications que vous avez, c'est vrai. Peut-être pourriez-vous plutôt placer les fichiers que vous voulez exclure dans une liste de changements, et plutôt que de revenir au reste, utilisez simplement l'argument --cl avec commit, etc. – aaz

0

Utilisez find pour faire la correspondance.

find . -name .svn -prune -o -name file1 -o -name file2 -o -print0 | 
    xargs -0 svn revert -- 
  • -name file1 exclut par nom de fichier dans un sous-répertoire,
  • -path ./src/file1 exclut par voie spécifique,
  • -path ./src/dir1 -prune exclut un répertoire entier.
Questions connexes