Si je cours svn rm file
, le fichier est supprimé de la copie de travail locale.
Ce que je fais maintenant, c'est:
$ cp file file2
$ svn rm file
$ svn ci
$ mv file2 file
Comment éviter que svn ne supprime également le fichier local lors de l'utilisation svn rm
?
svn
version-control
Juanjo Conti
la source
la source
Réponses:
Vous voulez l'
--keep-local
option de ligne de commande. Cela supprime le fichier du contrôle de version sans le supprimer de votre système de fichiers.Remarque: le
--keep-local
seul affecte lesvn rm
de votre copie. Les autres utilisateurs peuvent faire supprimer leur propre copie locale du fichier, sauf en cas de conflit entre leur copie locale et le référentiel en raison des modifications qu'ils ont apportées. Ce n'est peut-être pas le résultat souhaité. Voir les commentaires ci-dessous.la source
Supprimer un fichier de SVN sans le supprimer localement n'est nulle part un problème courant. Un exemple frappant est le fichier .classpath dans un projet Eclipse. Mettre ce fichier de configuration sous SVN est merveilleux tant que toutes les machines utilisées dans le projet ont la même installation Eclipse et Java. Une fois cette condition violée, les validations commencent à interrompre les autres projets Eclipse. C'est là que l'on doit supprimer un fichier de SVN sans le supprimer n'importe où.
fait parfaitement le travail sur une seule machine et à ce moment-là.
Le problème est que d'autres machines peuvent perdre ce fichier (lors de la mise à jour) ou le ressusciter (lors de la validation). La faille de SVN n'est ni de gérer
--keep-local
dans le référentiel ni de le propager à d'autres copies de travail. Par conséquent, sur toutes les autres machines, la commande ci-dessus doit être exécutée - mieux avant toute validation ou mise à jour.Ceci, bien sûr, fonctionnera à 90%, au mieux. Les suppressions et les révisions se produiront soudainement. Ma solution est d'avoir chaque machine, j'ai un accès direct ou indirect à, faire
C'est tellement moche qu'on l'appelle à peine une «solution». Néanmoins, il a toujours permis des réparations rapides de tout accident ultérieur.
la source
Je n'ai pas de réponse à cette question précise, mais j'ai une réponse à une question connexe, qui est de savoir comment supprimer tous les fichiers (c'est-à-dire pas un fichier spécifique) dans un répertoire du contrôle de version sans les supprimer localement. Cette solution est issue d'une implémentation scientifique Linux.
ls -a .svn
devrait afficher le répertoire svn qui stocke les données de contrôle. Simplement:
rm -r .svn
se débarrassera de ce répertoire. Puis en tapant:
svn status
produira une erreur «avertissement: ce répertoire n'est pas une copie de travail», car il n'est plus sous contrôle de version.
J'espère que ça aide.
la source