2010-05-30 3 views
2

J'utilise principalement Subversion pour synchroniser le travail entre deux ordinateurs que j'utilise quotidiennement (et en tant que sauvegarde, puisque j'ai une copie retirée du dépôt sur chaque ordinateur). Je garde le référentiel principal sur une clé USB.Subversion commit conflict

Je suis récemment tombé sur l'erreur suivante lors de la tentative de commettre une copie de travail en cours (et les deux copies de travail, l'un sur chaque ordinateur, sont identiques maintenant):

! C career\UVaOnlineJudge\Log.doc 
local delete, incoming delete upon update 
! C career\UVaOnlineJudge\102\Main.class 
local delete, incoming delete upon update 

Sans entrer dans plus de détails sur ce que je fait pour obtenir le référentiel hors de synchronisation, ma question est plus générale. Que signifie "suppression locale, suppression entrante lors de la mise à jour"? Qu'est-ce que Subversion attend de ne pas donner?

Répondre

4

Sans utiliser vos détails (que vous n'avez pas fourni) à ce que vous avez fait pour entrer dans cette situation, il ressemble à que vous avez fait quelque chose de similaire à:

  1. Supprimer « Log.doc » sur ordinateur A
  2. Supprimer « Log.doc » sur l'ordinateur B
  3. appliquez la modification de l'ordinateur A à votre dépôt
  4. Essayez de mettre à jour le référentiel sur l'ordinateur B

Subversion tente de fusionner la suppression du référentiel avec la suppression locale et ne pense pas que la fusion se fasse correctement. Ce que vous pourriez être en mesure de le faire est:

svn revert Log.doc 
svn revert 102/Main.class 

et essayez à nouveau la svn update. Subversion appliquera l'opération "delete" entrante du référentiel et supprimera ces fichiers locaux.

+0

Vous aviez parfaitement raison. Je ne connaissais pas la commande de retour de Subversion, mais cela a fait l'affaire. Je pense aussi que je comprends la séquence des événements qui ont eu lieu pour que mon dépôt soit dans cet état (clairement désynchronisé, il n'y a aucun moyen qu'un système de contrôle de version soit capable de le synchroniser de lui-même). Grande conjecture sur la séquence des événements qui ont conduit à cet état, vous étiez juste sur la marque. Merci pour la solution rapide. – dvanaria

+0

Habituellement 'svn resolved' est le moyen de marquer un conflit comme résolu. Dans ce cas, 'svn revert' a le même effet, mais dans d'autres cas, il supprimera vos modifications locales. –

Questions connexes