web-dev-qa-db-fra.com

"unadd" un fichier à svn avant commit

J'étais en train de faire un svn add/commit récursif, et un dossier qui ne possédait pas les propriétés ignorer appropriées était inclus. J'ai environ 100 fichiers binaires téléchargés versionnés maintenant, mais je n'ai pas encore validé.

Quel est le moyen le plus simple d’annuler cela sans supprimer tous les documents?

189
Lowgain

Utilisez svn revert --recursive folder_name


Attention

svn revert est intrinsèquement dangereux, dans la mesure où son objectif est de supprimer les données, à savoir les modifications non validées. Une fois que vous avez annulé l'opération, Subversion ne fournit aucun moyen de récupérer ces modifications non validées.

http://svnbook.red-bean.com/fr/1.7/svn.ref.svn.c.revert.html

236

svn rm --keep-local folder_name

Remarque: dans svn 1.5.4, svn rm supprime les fichiers non versionnés, même si --keep-local est spécifié. Voir http://svn.haxx.se/users/archive-2009-11/0058.shtml pour plus d'informations.

139
Brian Lacy

Essayez svn revert filename pour chaque fichier dont vous n'avez pas besoin et que vous n'avez pas encore validé. Ou bien, faites svn revert -R folder pour le dossier problématique, puis recommencez l'opération avec la configuration appropriée en ignorant.

de la documentation:

 you can undo any scheduling operations:

$ svn add mistake.txt whoops
A         mistake.txt
A         whoops
A         whoops/oopsie.c

$ svn revert mistake.txt whoops
Reverted mistake.txt
Reverted whoops
30
bobah

Processus complet (paquet Unix svn):

Les fichiers de contrôle ne sont pas dans SVN:

> svn st -u folder 
? folder

Ajouter tout (y compris les fichiers ignorés):

> svn add folder
A   folder
A   folder/file1.txt
A   folder/folder2
A   folder/folder2/file2.txt
A   folder/folderToIgnore
A   folder/folderToIgnore/fileToIgnore1.txt
A   fileToIgnore2.txt

Supprimer les "Ajouter" à tous les fichiers * Ignorer *:

> cd folder

> svn revert --recursive folderToIgnore
Reverted 'folderToIgnore'
Reverted 'folderToIgnore/fileToIgnore1.txt'


> svn revert fileToIgnore2.txt
Reverted 'fileToIgnore2.txt'

Modifier svn ignore sur le dossier

svn propedit svn:ignore .

Ajoutez deux lignes simples avec juste ce qui suit:

folderToIgnore
fileToIgnore1.txt

Vérifiez quels fichiers seront chargés et validés:

> cd ..

> svn st -u
A   folder
A   folder/file1.txt
A   folder/folder2
A   folder/folder2/file2.txt


> svn ci -m "Commit message here"
2
mud1e

Pour les fichiers - svn revert filename

Pour les dossiers - svn revert -R folder

1
Arvind singh