2016-06-13 33 views
2

Scheint, dass ich in der Lage, dies mit Hilfe von Subclipse oder Tortoise tun könnte.SVN wechseln zu einem anderen Zweig, so dass ich später merge/commit

Ich begann mit der Arbeit an einem Feature in einem Zweig und der Umfang dieses Features wuchs, so dass ich nicht einchecke, um diesen Zweig stabil zu halten. Ich möchte einen Platz zum Einchecken, also habe ich den ursprünglichen Zweig verzweigt, und ich möchte meine Kopie auf diesen Zweig verweisen.

Mit SVN-Schalter scheint es, ich muss Konflikte als Teil des Prozesses lösen, aber ich bin nicht bereit, das zu tun. Ich möchte nur, dass mein Arbeitsbereich jetzt auf die Kopie der Verzweigung zeigt, auf die er zuvor gezeigt hat, sodass ich meine Zeit zusammenführen und aktualisieren kann.

Gibt es eine Möglichkeit, dies zu tun?

Antwort

1

Switch muss ein Update durchführen. Ich glaube nicht, dass Ihr Problem mit der Umstellung ist, es ist wahrscheinlich mit der Branche, die Sie erstellt haben. Angenommen, Ihre Arbeitskopie wird auf R100 Ihres Repositorys aktualisiert und Sie beginnen, Änderungen lokal vorzunehmen. Jetzt entscheiden Sie sich, Ihren Zweig zu erstellen, und Sie erstellen ihn basierend auf dem Repository-HEAD, der nicht bei r150 ist. Dann haben Sie vielleicht ein paar Probleme, weil der Zweig nicht wirklich aus derselben Quelle wie Ihre Arbeitskopie erstellt wurde.

Wenn Sie optimieren möchten, um es einfach zu machen, Ihre Änderung zu speichern, dann ist die beste Sache, Ihren Zweig von der Arbeitskopie zu erstellen. Dies ist eine der Optionen im Assistenten, wenn Sie Ihr Projekt auswählen und "Team"> "Zweig/Tag erstellen" wählen.

Arbeitskopien können sich in verrückten gemischten Revisionszuständen befinden und daraus wird der Zweig erstellt. So kann es später etwas schwieriger sein, wenn Sie zu Ihrem Wechsel zurückkehren wollen und es wieder mit dem Trunk verschmelzen wollen oder den Zweig mit Trunk erwischen wollen.

Wenn Sie eine ungefähre Vorstellung davon haben, welche Revision Ihre Arbeitskopie ausführen soll, dann wäre der Mittelweg, den Zweig gegen die Repository-Revision zu erstellen. Dann ist die Verzweigung sauber und Sie minimieren die Wahrscheinlichkeit von Konflikten, wenn Sie die Arbeitskopie mit dem Switch aktualisieren.

+0

Ich glaube, Sie verstehen mein Problem, aber ich bin mir nicht sicher, ob ich Ihre Lösung verstehe.Ich denke, mein Problem ist, dass ich den Zweck des Switches nicht vollständig verstehe. Im Grunde genommen ist meine Arbeitskopie der Stamm, aber wenn der Stamm eingefroren ist, muss ich meinen Code irgendwo (einen Zweig des aktuellen Stamms) einbinden. Ich möchte weiterarbeiten, Konflikte nach meinem Zeitplan begehen/lösen Ich möchte nur, dass meine Arbeitskopie von diesem Zweig des Trunks kommt, nicht vom Trunk. Switch scheint zu erfordern, dass Sie die Arbeitskopie und den neuen Repo-Speicherort als Teil des Prozesses synchronisieren, was ich jetzt nicht tun muss. –

+1

Ich verstehe dein Problem, was du willst, existiert nicht. Switch aktualisiert Ihre Arbeitskopie so, dass sie auf eine neue Verzweigung zeigt, und das erfordert eine Aktualisierung. Die Techniken, die ich dir gegeben habe, waren, um sicherzustellen, dass du so gut du kannst, dass der Zweig mit deiner Arbeitskopie identisch war, was das Update zu einem No-Op oder nahe daran macht. –

+0

Danke, ich habe die Richtlinien befolgt und bin erfolgreich umgestellt worden. Ich habe alle Konflikte vor dem Verzweigen und Wechseln gelöst. Irgendwelche Ratschläge wann ich diesen Zweig wieder in seine ursprüngliche Linie zusammenführen muss? Vielen Dank. –

1

Ich bin mir nicht sicher, ob ich verstehe, was Sie tun möchten. In jedem Fall müssten Sie mit Ihren Kollegen über diese Konflikte sprechen, bevor Sie sie lösen.

Wenn Sie jedoch die Konfliktlösung verschieben und mit der Arbeit an der neuen Verzweigung beginnen möchten, müssen Sie nur eine neue Arbeitskopie der neuen Verzweigung auschecken. Belassen Sie Ihre bestehende Arbeitskopie mit nicht übernommenen Änderungen (entfernen Sie sie nicht!) Und verwenden Sie die neue saubere Arbeitskopie.

+0

Ich habe eine modifizierte Arbeitskopie eines Zweigs, ich möchte einen temporären Zweig dieses Zweigs erstellen, meine aktuelle Arbeitskopie dorthin richten und weiterarbeiten, ohne meine aktuellen Änderungen zusammenführen/aktualisieren zu müssen. Switch tut dies, außer dass es einen dummen Text merge zu allen meinen Dateien mit Konflikten, die fast alle von ihnen ist. Ich möchte nur ändern, wo meine Kopie darauf hinweist und weiter daran arbeiten, und schließlich wieder eindringen, aber nicht richtig diese Sekunde, wie SVN es von mir will. –

0

Wenn ich das richtig verstehe, haben Sie den ursprünglichen Zweig (Zweig 1) und einen Zweig, den Sie aus diesem verzweigten Code (Zweig 2) erstellt haben. Anstatt von Zweig 1 zu Zweig 2 zu wechseln, würde ich Zweig 2 auschecken, meine in Zweig 1 vorgenommenen Änderungen kopieren (Konflikte lösen) und mich an Zweig 2 binden. Ich habe festgestellt, dass die Verwendung von SVN zwischen verzweigten Codebasen nicht so elegant ist wie sollte es sein, und manchmal ist es besser, Codeänderungen nur zu kopieren/einfügen.

+1

Danke, es sieht so aus, als wäre das meine einzige Option. Ich hatte wirklich gehofft, dass ich die Konflikte auflösen könnte, aber es sieht so aus, als wäre Switch so mächtig wie ich dachte. –