2010-12-28 6 views
37

Wir haben ein Repository mit drei benannten Zweigen, ich wollte einen der Zweige klonen. Gibt es einen merkwürdigen Befehl, das zu tun? Wenn ich den Pfad (der Zweigstelle) mit hg Klon zur Verfügung stelle, bekomme ich 404 Fehler.Mercurial-Klon aus einem Zweig

Antwort

86

hg clone http://your/repo -r branchname sollte den Trick tun.

+0

Danke sehr, sehr viel – Maximosaic

+0

Benjamin Pollack Gibt es einen Weg, um Code zu klonen aus diesem Zweig von einer bestimmten Revision an der Spitze dieser branch..I versucht hg clone https: //[email protected]/ TEAM/REPO -r BRANCH_NAME --startrev REVISION_NUMBER, aber es gibt einen Fehler "hg Klon: Option --startrev nicht erkannt " –

13

Benjamin hat Recht. Aber wollen Sie das wirklich? Insbesondere erhalten Sie nur die Changesets, die für diesen Zweig erforderlich sind, und nichts anderes - und das würde zum Beispiel verhindern, dass Changesets vom Stamm oder anderen Zweigen übernommen werden. Sie sollten besser das ganze Repository klonen und dann einfach in der Branche arbeiten, an der Sie interessiert sind. Auf diese Weise können Sie Ihr Repository leichter mit dem synchronisieren, von dem Sie gerade ausgehen.

+0

grundsätzlich habe ich immer an Subversion gearbeitet, würde ich sehr schätzen, wenn Sie mich auf eine Ressource verweisen könnte erklärt dies ein wenig mehr, da die meisten Ressourcen nur darüber sprechen, wie man in hg vorgeht. – Abidi

+3

Ich mache diesen Übergang selbst. Die grundlegende Veränderung, die Sie vornehmen müssen, besteht darin, dass Sie nicht mehr nur mit Mercurial an einer lokalen Kopie arbeiten. Was Sie haben, ist ein Repository, genau wie das, aus dem Sie klonen. Wenn Sie 'hg pull' ausführen, aktualisieren Sie Ihr Repository tatsächlich mit den Änderungen, die im Upstream aufgezeichnet wurden. Wenn Sie "hg push" drücken, drücken Sie Ihre Änderungen darauf. Alle 'hg update' bewirken, dass die Dateien in Ihrem Verzeichnis den Status des Repositorys für jede Revisions- oder Branch-Markierung oder was auch immer Sie auswählen, widerspiegeln. – jmaynard

+0

Ein Grund dafür ist, dass Sie nur Mercurial verwenden, um beispielsweise Änderungen an einem Server vorzunehmen. In diesem Fall * wollen * Sie eigentlich nicht, dass die Nichtproduktionszweige überkopiert werden. –

3

Ich weiß, dass dieser Beitrag sehr alt ist, aber ich hatte die gleiche Frage. Ich habe diesen Trick:

hg clone /path/to/your/repo -r 0 
hg pull -u -b branchname 
+0

Vielleicht möchten Sie erwähnen, was die Unterschiede sind, wenn Sie dies verwenden. Offensichtlich gibt es subtile Veränderungen hinter den Kulissen. –

9

hg clone <URL> -b BRANCHNAME Klon einzigen Zweig, wie

angefordert
2

Ich benutze Mercurial-4.0.2. Darin können wir den Zweignamen angeben, indem Sie den Zweignamen mit einem # Symbol in der Klon-URL anfügen.

z.B.

hg clone https://[email protected]/my_product#MY_BRANCH 

hg clone --verbose https://[email protected]/my_product#MY_BRANCH "C:\myCode" 
+1

Funktioniert perfekt! –