2010-12-14 5 views
2

Ich habe ein Projekt, das im Mercurial-Repository ist. Im Stammordner befindet sich eine .hgignore-Datei, die besagt, dass der Ordner "Bin" ignoriert werden sollte (und auch einige andere Dateien und Ordner).Wie verzweigen Sie das gesamte Repository einschließlich Ignorieren von Dateien

Jetzt möchte ich dieses Repository klonen, aber in einer Weise, dass ALLE Ordner und Dateien geklont werden sollen, auch die ursprünglich ignorierten. Wenn ich nur das Repository klonen, dann bekomme ich nur die Dateien, die im Repository enthalten sind, daher fehlt mein bin-Ordner.

Wie kann ich geklont Repository mit allen Dateien darin bekommen? Ich möchte diese beiden Repositories in einer Weile zusammenführen ...

PS - Ich arbeite an einer Legacy-Anwendung, die eine Menge externer dll-s im bin-Ordner der Anwendung hat. Ich weiß, ich sollte sie in einen separaten Ordner legen, aber das ist eine andere Geschichte.

+1

Schau, um stumpf zu sein. Wenn Sie wissen, dass Sie sie in einen separaten Ordner legen sollten, dann tun Sie es **. Sie müssen sie nicht verschieben, kopieren Sie sie einfach in einen separaten Ordner und binden Sie sie an das Repository. Auf diese Weise hat ein vollständiger Klon alles, was Sie brauchen. Ja, Sie müssten die Dateien auf einem neuen Klon in das Bin-Verzeichnis kopieren, aber das ist viel besser, als herauszufinden, welche Dateien Sie vermissen und woher Sie sie erhalten. –

+0

Zustimmen, werde es tun – sventevit

Antwort

3

Kopieren Sie es einfach.

Kopieren Sie den gesamten Baum von Punkt a nach Punkt b, und die neue Kopie funktioniert perfekt als Repository. Das einzige, was sich von einem Klon unterscheidet, ist das Fehlen von Hardlinks, und der Standard-Pull/Push-Pfad wird so eingerichtet, dass er dem Original entspricht, anstatt auf das Original zu zeigen. Das ist einfach zu ändern, indem Sie .hg/hgrc bearbeiten, wenn Sie möchten.

+0

@Martin: Ja, einverstanden. Hard-Links sind ebenfalls verloren. –

+0

Könnte es Probleme geben, diese beiden Repositories in Zukunft zusammenzuführen? – sventevit

+2

@_simon_ Abgesehen von den repointernen Hardlinks und dem 'default' Pfad ist eine Kopie die gleiche wie ein Klon. Das Zusammenführen von Code aus einem kopierten Verzeichnis ist also genau das Gleiche wie das Zusammenführen von Code aus einem geklonten Verzeichnis. – Rudi

2

Eine ignorierte Datei befindet sich nicht in Ihrem Repository, daher wird sie nicht geklont. Sie sollten diese Dateien manuell kopieren, nachdem Sie das Repository geklont haben. Wenn Sie diese Dateien kopieren, denke ich, es wird kein Problem sein, wenn Sie andere Dateien in Ihrem Repository überschreiben (sie sind im Grunde die gleichen Dateien), so lange Sie nicht die .hg kopieren Ordner in der Wurzel Ihrer Kasse, werden Sie wahrscheinlich gut.

+0

Natürlich111 :) – sventevit