2011-01-13 18 views
6

Ich habe ein Repository an verschiedenen Orten ausgecheckt. Ich habe einen Ordner X, der extern zu einem anderen Repository ist. Ich möchte, dass X lokal ist. Es gibt andere Fragen, aber sie scheinen nicht in meine Schwierigkeiten geraten zu sein.svn: saubere Möglichkeit, externe mit lokalen Ordner mit dem gleichen Namen zu ersetzen

Was ich getan habe, ist ich bearbeitet die svn: externals und entfernt diese Zeile. Dann habe ich das Repo gemacht. Dann nahm ich den Ordner, entfernt alle .svn Einträge darin (um es zu einem regulären Ordner zu machen), und svn add Ed es, dann verpflichtet. Das hat gut funktioniert.

Als ich jedoch ein anderes Auschecken des Repos aktualisierte, stieß ich auf Probleme. Der erste Fehler war so etwas wie:

UUID mismatch: existing directory XXX was checked out from a different repository. 

Ok, schon svn up ausfällt, aber ich versuche, den Ordner zu löschen und erneut aktualisiert werden. Jetzt ist es verwaltet alle Inhalte wieder, aber jetzt bekomme ich einen neuen Fehler:

Can't remove file XXX: Access is denied 

ich wieder versuchen, zu aktualisieren, und nichts passiert. Ich lösche eine Datei in diesem Ordner und aktualisiere wieder von der Wurzel, nichts passiert. Ich lösche den Ordner X, und nichts passiert - so scheint es nur vergessen zu haben! Meine einzige Möglichkeit ist, das Wurzelverzeichnis von X zu löschen und svn up von einer Ebene nach unten (da dies auch in einem Unterordner geschah, der auch ein externer war).

Nicht gut .. Ich möchte nicht auf allen Websites, auf denen dieses Repository ausgecheckt ist, manuelle Rigamarole erstellen. Was ist zu tun?

Antwort

0

Nicht sicher, ob es funktionieren würde, aber einen Versuch wert.

Versuchen Sie, auf die Revision zu aktualisieren, wo Sie die externen gelöscht haben, danach machen Sie Ihr Update auf den Kopf.

// XX revision of the externals deletion 
svn update -rXX 
// to see if the folder is deleted 
svn status 
// delete the folder if he is on the local working copy 
svn rm folder 
// Update to head 
svn update 
3

Vielleicht nicht die sauberste Lösung, aber es funktioniert:

  • Entfernen Sie den externen Ordner in Ihnen lokale Kopie
  • -Update mit der Version aus dem Repository (NICHT svn rm Ordner verwenden)