2014-01-28 2 views
13

noob Frage Ich weiß, aber alle Ressourcen, die ich gefunden habe scheitern oder gab mir das neue Problem.Wie aktualisiert man einen SVN-Zweig, der mit svn-copy erstellt wurde?

Ich habe wenige Zweige in meinem SVN Repo. Alle Entwickler erhalten Zugang zu seiner persönlichen Branche. Jeder Zweig wurde mit einer Kopie aus der Beta-Branche erstellt.

svn copy svn://192.168.0.2/svn/example/branches/beta 
svn://192.168.0.2/svn/example/branches/dev/devN 

Nun, wenn dev1 arbeiten fertig, er seine Arbeit in der Betaphase verschmelzen (PWD = ./beta/)

svn merge svn://192.168.0.2/svn/example/branches/dev/[email protected] . 

Nun, meine Frage ist, wie andere Entwickler könnten ihre eigenen Zweig aktualisieren die letzte Beta mit dev1 change?

wenn dev2 eine Zusammenführung zu tun (nach seinem Wechsel verpflichtet | PWD = ./dev/dev2)

svn merge svn://192.168.0.2/svn/example/branches/[email protected] . 

Er diese Meldung:

svn: E195016: Merge tracking not allowed with missing subtrees; try restoring these items first: 
pointing his files. -> impossible to merge. 

Gibt es eine Möglichkeit Update“ "eine Zweigniederlassung?

+0

BTW, gemeinsame Merge-Muster vermeiden PEG-Revisionen in Quelle verwenden –

+1

Dies ist nicht der richtige Ansatz. Anstatt für jeden Benutzer einen separaten Zweig zu erstellen, sollten Sie einen Zweig erstellen und die Benutzer sollten von diesem Zweig auschecken und sie sollten in ihrem Arbeitsbereich arbeiten und ihre Änderungen festschreiben. So erhalten andere Benutzer die Änderungen nur durch Aktualisieren ihrer Arbeitskopie. Dies sollte Ihr Leben erleichtern. –

+0

@DipuH. Ok danke für deinen Kommentar. – abenevaut

Antwort

25

Diese Fehlermeldung tritt auf, wenn jemand etwas löscht, ohne Subversion darüber zu informieren. Wenn Sie svn status auf dieser Arbeitskopie ausführen, sollte derselbe Pfad, über den sich Subversion beschwert, mit einem ! in der ersten Spalte der Ausgabe angezeigt werden. In der Regel bedeutet dies, dass jemand einen Betriebssystembefehl zum Löschen von Pfaden anstelle eines svn-Befehls verwendet hat.

Wenn Sie wirklich möchten, dass die Pfade gelöscht werden, können Sie das beheben, indem Sie Subversion darüber informieren, indem Sie den Befehl svn rm verwenden. Die Pfade werden mit einem in der ersten Spalte der Statusausgabe als gelöscht angezeigt und Ihre Zusammenführung sollte fortgesetzt werden (obwohl Sie möglicherweise Baumkonflikte haben).

Wenn Sie die blutigen Details sehen möchten, siehe issue #2915 aus dem Subversion-Projekt, das erklärt, warum diese Fehlermeldung hinzugefügt wurde.

0

Ich bekomme diesen Fehler und ich habe gerade einen Checkout mit TortoiseSVN gemacht. Nichts wurde gelöscht. Ich habe festgestellt, dass am Ende eines langen Pfads ein "gemeinsames" Verzeichnis erstellt wurde, das nicht erscheint, wenn ich zum Repo-Browser gehe. Wenn ich das übergeordnete Verzeichnis lösche und eine Aktualisierung vornimmt, erscheint das "common" Verzeichnis wieder. Das übergeordnete Verzeichnis zeigt auch ein rotes X, das anzeigt, dass TortoiseSVN denkt, dass etwas über einen OS-Befehl gelöscht wurde, anstatt mit einem SVN-Löschbefehl.

Ich denke, irgendwo im Code ist ein Fehler. Ich weiß nicht, ob es mit der Pfadlänge zu tun hat (ein Problem für Windows 7?) Oder ob es ein anderes Problem gibt.

0

Wenn Sie in Windows arbeiten und der Pfad 256 Zeichen überschreitet, fängt Windows an, unangenehm zu werden. Ich komme normalerweise dazu, indem ich den Arbeitsbereich direkt unter einem kurzen Verzeichnis im Root-Dateisystem (z. B. C: \ WRK) erstelle. Dies wird einen Pfad verwenden, der viel kürzer ist als C: \ Benutzer \ Benutzername \ Desktop \ Verzeichnis. Sobald ich meinen Arbeitsbereich erstellt habe, füge ich eine Verknüpfung zu meinem Desktop für den einfachen Zugriff hinzu.

Verwandte Themen