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
Eric Wilson
la source
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
Voir aussi: stackoverflow.com/questions/239340/… | stackoverflow.com/questions/6204572/…
Ciro Santilli 郝海东 冠状 病 六四 事件 法轮功

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
Juan Carlos Muñoz
la source
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

bilash.saha
la source
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 .
Chris
la source
0

Pour rétablir les fichiers modifiés:

sudo svn revert
svn status|grep "^ *M" | sed -e 's/^ *M *//'
Taylor Hawkes
la source
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