2009-10-08 8 views
2

Je suis assez nouveau pour le contrôle de version et j'utilise svn comme le projet sur lequel je travaille est hébergé sur svn.
Dans ma copie de travail locale, j'ai ajouté un fichier temporaire et l'ai supprimé sans utiliser svn delete (car je n'étais pas au courant).
Maintenant que le fichier était encore sous contrôle de version quand je l'ai fait engager mes derniers changements dans ma branche privée, ce fichier a été écrit pour le dépôt et la validation a réussi, mais a signalé des erreurs post-commit:svn: supprimer un fichier dans le dépôt

 
svn: Error processing command 'committed' in '.' 
svn: Error replacing text-base of 'tmp_file' 
svn: Can't change perms of file 'tmp_file': No such file or directory 
run svn cleanup 

nettoyage svn donne également des résultats similaires.
Je ne veux pas le tmp_file dans ma branche dans le dépôt.

Quelqu'un peut-il suggérer un moyen de faire cela?

Merci d'avance

Répondre

4

Rechercher svn revert.

« svn aide revert »

Je n'ai pas svn à portée de main sur cette machine, mais essayer quelque chose le long des lignes de:

svn revert tmp_file 
svn delete tmp_file 
svn update 
svn commit -m "Correctly deleted the temp file" 

Cette undo fondamentalement est le niveau du système de fichiers supprimer vous avez effectué , svn delete, s'assure que votre copie de travail est à jour puis valide les changements.

EDIT: OK, donc si vous lancez "svn --version", cela vous indique-t-il que votre version est 1.4. quelque chose?

Si oui, vous avez brisé votre copie de travail et il ne peut pas être réparé. Voir le Bug Report here

Si votre copie de travail ne contient pas de modifications à valider, en dehors du fichier tmp_file, vous devrez simplement extraire une nouvelle copie de travail dans un répertoire différent et supprimer celle qui est cassée. Vous pouvez confirmer qu'il n'y a pas d'autres changements en exécutant "svn status"

Ensuite, dans la nouvelle copie de travail, suivez les commandes ci-dessus à partir de "svn delete" pour supprimer correctement le fichier.

+0

merci pour votre réponse rapide .. mais il y a un autre problème la copie de travail est verrouillée et aussi "svn revert suggère d'exécuter svn cleanup .. qui se termine avec les mêmes messages d'erreur – sud03r

+0

@Neeraj avez-vous ce tri? Je voulais juste savoir si vous avez essayé d'exécuter la commande de nettoyage sur le répertoire parent du fichier affecté En outre, je supprime et commet tout le temps sans problème. delete devrait fonctionner de la même façon que delete + svn commit dans un espace de travail donné Quelle est la version de SVN que vous utilisez? –

+0

@Critical Je crois que vous trouverez que Neeraj a créé le fichier, effectué un svn add, fait un système de fichiers delete, suivi par un commit.Dans les versions plus anciennes de subversion, ce co irrévocablement interrompt la copie de travail. En note à Neeraj, je mettrais à jour votre client subversion. Tous les clients 1.x sont rétrocompatibles avec les anciennes versions de serveurs subversion. –

2

Ceci a peut-être été corrigé dans un svn plus récent. J'ai essayé de reproduire les choses de cette façon:

$ svnadmin create test_repos 
$ svn co file:///.../test_repos test_co 
Checked out revision 0. 
$ cd test_co 
$ touch tmp_file 
$ svn add tmp_file 
A   tmp_file 
$ rm tmp_file 
$ svn ci -m "" 
svn: '/.../tmp_file' is scheduled for addition, but is missing 

En d'autres termes, mon engagement n'a pas réussi du tout. J'utilise 1.6.2 (r37639).

Questions connexes