Wie man mit TortoiseHG verzweigt

218

Ich habe TortoiseHg 1.0 zur Auswertung heruntergeladen. Für mein Leben kann ich nicht herausfinden, wie man einen Zweig macht. Es scheint Zweige zu verstehen (z. B. in seinem Repository-Browser), aber ich kann einfach keinen Weg finden, einen Zweig zu erstellen. Dies scheint eine so grundlegende Fähigkeit zu sein, da unter den oft angepriesenen Vorteilen von DVC die leichte Verzweigung liegt.

Ich habe herum gegoogelt und konnte nicht viel Diskussion über dieses Thema finden (zumindest für neuere Versionen), also muss ich davon ausgehen, dass mir etwas fehlt, oder?

Update: Also habe ich die Antwort von Chad Birch unten markiert, um das Problem "Neue Niederlassung" zu beantworten. Wie er richtig hervorhebt, führen Sie ein Commit durch und klicken dann auf die Schaltfläche "Verzweigung", um das Dialogfeld "Verzweigungspflege" aufzurufen, in dem Sie neue Verzweigungen erstellen. Ich wünschte, sie hätten uns dafür eine Kontextmenüoption gegeben. Sobald Sie sich verzweigt haben, ist die nächste natürliche Frage, wie Sie zusammenführen sollen, und dies ist auch nicht offensichtlich. Es stellt sich heraus, dass diese Option im Repository-Explorer vergraben ist. Sie müssen den Kopf eines anderen Zweigs auswählen, mit der rechten Maustaste klicken und dann "Zusammenführen mit ..." auswählen.

Michael Tiller
quelle
Die Verzweigung ist ernsthaft in einem völlig unintuitiven Aspekt des Workflows vergraben. Verzweigen und Festschreiben sind zwei sehr unterschiedliche Vorgänge, und es macht keinen Sinn, Verzweigungen tief in der Festschreibungs-Benutzeroberfläche zu vergraben. Da ich normalerweise vor dem Verzweigen festschreibe, kam es mir nicht in den Sinn, unter der Festschreibungsoberfläche zu suchen. Die Verzweigung ist auch Mitte 2016 noch nicht dokumentiert . Chad Birch weist darauf hin, was als Verzweigungsdokumentation gilt; Es ist immer noch schrecklich, aber wie er bemerkt, ist er nur der Bote ...
Arclight

Antworten:

213

Wie in den Dokumenten gezeigt , müssen Sie lediglich auf die branch: defaultSchaltfläche oben im Festschreibungsdialog klicken und in einen neuen Zweigstellennamen wechseln.

Chad Birch
quelle
30
Ah, ich sehe, wo es heißt "Drücken dieser Taste öffnet einen Zweigwartungsdialog". Das öffnet zwar einen Dialog, in dem, wie sich herausstellt, das Erstellen von Zweigen möglich ist, aber ich habe Probleme mit der Aussage "Wie in den Dokumenten gezeigt", da nicht explizit erwähnt wird, wie irgendwo auf dieser Seite ein Zweig erstellt werden soll Ich könnte finden. Ich frage mich, was die Verzweigung getan hat, um eine Behandlung zweiter Klasse in TortoiseHg zu verdienen (im Vergleich zu den anderen Tortoise * -Tools, bei denen es sich um eine erstklassige Kontextmenüoption handelt). :-)
Michael Tiller
31
Oh, ich habe nicht versucht, auf "RTFM" Weise oder so etwas zu beleidigen, ich brauchte nur eine Phrase, um auf die entsprechende Seite zu verlinken. Vielleicht wäre "wie vage in den Dokumenten impliziert" in dieser Situation angemessener gewesen.
Chad Birch
1
Kein Schweiß. Ich habe auch nicht versucht, beleidigend zu sein. Ich wollte nur jedem klar machen, der gekommen ist, um sich diesen Link anzusehen, dass man wirklich zwischen den Zeilen in den Dokumenten lesen muss, um die Antwort zu erhalten, da er nicht explizit erwähnt wird.
Michael Tiller
8
Bei neueren Versionen von Mercurial müssen Sie a ausführen, hg push --new-branchum einen neuen Zweig in ein Remote-Repository zu verschieben. Informationen dazu finden Sie unter stackoverflow.com/questions/2365483 in TortoiseHg.
Peter Graham
26

Um einen neuen Zweig mit TortoiseHg zu starten, drücken Sie Commit ... und dann über der Commit-Nachricht Branch, dann "Neuen benannten Zweig öffnen:".

nme
quelle
9

Ich wollte nur hinzufügen, dass zum Verschieben eines neuen Zweigs in das Remote-Repository ein Kontrollkästchen auf der Registerkarte Synchronisieren unter den Optionen "Push eines neuen Zweigs zulassen" angezeigt wird. Sie müssen daran denken, ihn unmittelbar danach wieder auszuschalten.

TamW
quelle
8

Die meiste Zeit in mercurial haben Sie clonedas Repository, um einen Zweig zu machen.

Sie können dann die separaten Repositorys zusammenführen, sobald Sie Ihre Änderungen und Festschreibungen vorgenommen haben.

Dies mag so klingen, als würde es viel Speicherplatz beanspruchen, aber auf den meisten Betriebssystemen erstellt mercurial Hardlinks, anstatt die Dateien zu kopieren. Wie auch immer, Speicherplatz ist normalerweise billig und weil er lokal ist, ist er ziemlich schnell.

Wenn Sie darüber nachdenken, ist jeder "Checkout" (in der SVN-Terminologie) oder "Klon" (in der Quecksilber-Terminologie) wirklich ein Zweig, der wahrscheinlich wieder zusammengeführt wird, so dass es sehr sinnvoll ist, dass Klone die übliche Art sind, Zweige zu erstellen.

Blokeley
quelle
11
Es ist nicht praktisch für Feature-Zweige.
Turm
Einverstanden. Wenn Sie lang laufende (semipermanente) Zweige haben, z. B. einen stabilen Zweig der Version 1 und einen stabilen Zweig der Version 2, sollten Sie benannte Zweige verwenden . Siehe auch die Dokumentation zum Quecksilberzweig .
Blokeley
11
-1. Dies ist bestenfalls ein Hack. Das Klonen für die Verzweigung funktioniert überhaupt nicht, wenn Sie einem Remote-Repository folgen, da Sie Ihre lokalen Änderungen nicht übertragen können. Dies bedeutet, dass Sie Ihren Zweig nicht mit anderen Entwicklern teilen können, mit denen Sie arbeiten. Der richtige Weg zum Verzweigen besteht darin, einen benannten Zweig in Ihrem Repository zu erstellen.
Peter Graham
8
Das Klonen ist immer noch so, wie das offizielle Quecksilberbuch "Big Picture" -Zweige empfiehlt. Hgbook.red-bean.com/read/… Schieße nicht auf den Boten.
Blokeley
0

Klicken Sie vor dem Festschreiben auf die Schaltfläche Verzweigen (siehe Bild). Wählen Sie dann einen Zweig aus oder erstellen Sie einen neuen (indem Sie eingeben, wo Sie die Zweige auswählen).

Sehen Sie das Bild hier

Felipe Dias
quelle