2009-12-03 5 views
1

J'utilise subversion afin que je puisse avoir deux checkouts, un pour tester pour s'assurer que les choses fonctionnent et un autre qui est public site en direct. J'ai fait quelques changements dans le site de test mais j'ai aussi fait quelques mises à jour pour une installation wordpress. Maintenant, je ne peux pas valider les modifications sur mon site en ligne.subversion "out-of-date" question

[[email protected] public_html]$ svn commit -m "this time, it's personal" 
svn: Commit failed (details follow): 
svn: Working copy 
'/usr/local/apache/sites/nextadvisor_admin/blog/wp-content/plugins' is 
missing or not locked 

donc je ...

[[email protected] public_html]$svn rm blog/wp-content/plugins --force 
[[email protected] public_html]$svn rm blog/wp-content/plugins --force 
[[email protected] public_html]$svn add blog/wp-content/plugins --force 

et tous les fichiers ont été rajoutés, je

[[email protected] public_html]$ svn commit -m "this time really" 
Sending  blog/.htaccess 
Replacing  blog/wp-content 
svn: Commit failed (details follow): 
svn: Out of date: '/trunk/blog/wp-content/plugins' in transaction '186-1' 

Bon alors quand je regarde en ligne, il me dit de faire la mise à jour svn mais j'ai essayé cela une fois avant et il efface juste tous mes changements locaux parce que le dossier "blog /" n'existe pas dans mon contrôle de test.

Ma question est, comment puis-je faire ce travail de travail sans perdre les modifications locales?

Mise à jour:

Quand je lance svnupdate, il me dit:

svn: travail Chemin de copie 'blog/wp-content/plugins' n'existe pas dans le dépôt

Répondre

4
  • Enregistrer vos fichiers modifiés localement à une copie.

  • effectuer une svn update

  • Copiez vos fichiers modifiés en arrière sur les versions 'svn update d'

  • ne le COMMIT.

+0

Quand je lance svnupdate, il me dit: svn: copie de travail path 'blog/wp-content/plugins' n'existe pas dans le dépôt –

+0

heures de développement Untold ont été perdus par des personnes qui font cela. Il vaut mieux vérifier que vous ne retournez pas les changements de quelqu'un d'autre quand vous faites cela ... parce que vous l'êtes probablement. – retracile

+0

Bien sûr, cela suppose que vous inspectez le diff avant l'enregistrement. Tout programmeur qui ne le fait pas ne fait pas son travail. –

1

Si les choses sont obsolètes, vous devez d'abord faire un svn update avant de pouvoir valider. svn update n'écrase aucun fichier qui a changé localement. Même si vous prétendez que c'est le cas, ce n'est pas le cas, car subversion ne le fait pas. Toutefois, votre flux de travail causera toujours des problèmes car vous travaillerez toujours contre la façon dont subversion a été conçue pour fonctionner. Chaque fois que vous vous trouvez en utilisant le drapeau --force dans le cours normal des événements, c'est un signe que vous ne travaillez pas avec l'outil, vous vous battez contre l'outil. Pour ce que vous voulez faire, vous êtes beaucoup mieux de créer une branche et de faire votre travail de développement sur la branche. Ensuite, lorsque vous êtes prêt à aller en direct, fusionnez la branche dev sur le tronc et mettez à jour votre caisse en direct.

En outre, vous ne devez jamais effectuer de modifications sur le site en ligne. Voilà à quoi sert votre site de test. Le site en ligne doit être considéré comme une extraction en lecture seule.

+0

Oui, je sais que ce que j'ai fait était une mauvaise utilisation, un utilisateur a fait des changements sur le site en direct cependant. Je veux corriger cela afin que je puisse revenir à l'utilisation du site en direct pour exécuter svn update et ne plus jamais l'utiliser pour valider. –

+1

Si les choses sont totalement fubarrées, déplacez le répertoire existant, faites un svn checkout, puis déplacez les choses que vous voulez et validez. – Rudedog