Est-ce que svn a une commande `revert-all`?


159

Si je veux supprimer toutes mes modifications et revenir au code qui se trouve sur le référentiel, je fais ce qui suit:

$ rm -fr *
$ svn up

C'est assez simple, mais je me demande s'il existe une seule commande qui permettra d'accomplir cela, quelque chose comme:

$ svn revert-all

Qui utilise -fr au lieu de -rf? Il y a une raison pour laquelle il est prononcé rimraf, pas rimfer.
Jimmy Hoffa

@JimmyHoffa Quelle est la raison?
Eric Wilson

3
Wilson de la convention! Conventions, monsieur! Sans notre discipline et nos traditions culturelles, nous ne sommes que des sauvages! Je dis, bonne journée monsieur!
Jimmy Hoffa

Réponses:


306

Vous pourriez faire:

svn revert -R .

Cela ne supprimera aucun nouveau fichier non sous contrôle de version. Mais vous pouvez facilement écrire un script shell pour le faire comme:

for file in `svn status|grep "^ *?"|sed -e 's/^ *? *//'`; do rm $file ; done

2
Bienvenue dans SO, et merci pour une réponse approfondie, car cela svn revert -Rn'est pas équivalent aux deux commandes que j'ai données.
Eric Wilson

1
Pour supprimer tous les fichiers non sous contrôle de version dans la ligne de commande Windows, la réponse est ici: stackoverflow.com/a/1502365/1385429
Christiaan Westerbeek

L'utilisateur mashzo a souligné (dans une réponse maintenant supprimée) que l' -Rindicateur peut être nécessaire pour s'assurer que les répertoires non versionnés sont également supprimés, dans le cadre de la suppression de toutes les modifications. Pensez à l'incorporer dans votre réponse, si cela vous semble approprié.
Jeremy Banks

27

Il y a une commande

svn revert -R .

OU
vous pouvez utiliser --depth = infinity, qui est en fait le même que ci-dessus:

svn revert --depth=infinity 

svn revertest intrinsèquement dangereux, car tout son objectif est de jeter des données, à savoir vos modifications non validées. Une fois que vous êtes revenu, Subversion ne fournit aucun moyen de récupérer ces modifications non validées


7
-Réquivaut à--depth=infinity
Michael Burr

4
Votre cmd "svn revert -R" n'a pas le répertoire courant dans la syntaxe .. il devrait être "svn revert -R".
boddhisattva

Actuellement, le message semble être -Rmutuellement exclusif --depth-infinitylorsque ce n'est pas le cas.
ahnbizcad

@ahnbizcad Ces deux synonymes ne sont-ils pas exacts de toute façon?
Nyerguds

C'est mon point. Cette réponse rend les deux sons différents quand ce n'est pas le cas. "mutuellement exclusif" = opposé du synonyme
ahnbizcad

17

Utilisez le commutateur récursif --recursive (-R)

svn revert -R .

0

Pour rétablir les fichiers modifiés:

sudo svn revert
svn status|grep "^ *M" | sed -e 's/^ *M *//'

Je pense que mon changement de format représente ce que vous voulez. Revenez si vous ne l'aimez pas. Et merci, il est bon de se souvenir des mauvais vieux jours de SVN ... :)
Eric Wilson
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.