2008-09-15 12 views
4

Ich kodiere ein Framework zusammen mit einem Projekt, das dieses Framework verwendet. Das Projekt ist ein Bazaar-Repository mit dem Framework in einem Unterordner unterhalb des Projekts.Wie exportiere ich den Bazaar-Verlauf eines Unterordners

Ich möchte dem Framework ein eigenes Bazaar-Repository geben. Wie mache ich es?

Antwort

6

Sie verwenden den Split-Befehl:

bzr split sub_folder 

Dies schafft einen unabhängigen Baum in dem Unterordner, die Sie können nun den Export und arbeitet getrennt.

0

Soweit ich weiß, gibt es keine Möglichkeit, dies einfach mit Basar zu tun. Eine Möglichkeit besteht darin, das ursprüngliche Projekt zu übernehmen, es zu verzweigen und dann alles zu entfernen, was nicht mit dem Framework zusammenhängt. Sie können dann die Dateien im Unterverzeichnis in das Hauptverzeichnis verschieben. Es ist eine ziemliche Pflicht, aber es ist möglich, die Geschichte zu bewahren.

branch project: 
.. other files.. 
framework/a.file 
framework/b.file 
framework/c.file 

branch framework: 
a.file 
b.file 
c.file 
0

Soweit ich weiß, „verschachtelte“ Zweige werden unterstützt von Bazaar noch:

Sie mit so etwas wie am Ende wird. Git unterstützt "Submodule", die sich ähnlich wie Subversion-Externals verhalten.

0

Ich habe versucht, dies mit bzr Split, aber das funktioniert nicht, wie ich es erwarte.

  • Der resultierende Zweig enthält immer noch den Verlauf aller Dateien aus allen ursprünglichen Verzeichnissen, und ein vollständiger Checkout ruft alle Dateien ab. Es scheint das einzige, was Split tut, ist das Repository zu einem reichen Wurzel Repository konvertieren, so dass diese bestimmten Baum von einem bestimmten Unterverzeichnis nur sein kann, aber das Repository enthält noch alle anderen Verzeichnisse und andere Kassen können immer noch den ganzen Baum abrufen.
  • Ich habe die Methode in jamuraas Antwort oben verwendet, und das war viel besser für mich, da ich nicht mit der Konvertierung in einen neuen Repository-Typ zu tun haben musste. Es bedeutet auch, dass vollständige Checkouts/Abzweigungen von diesem Repository nur die Dateien neu erstellt haben, die ich wollte.

    Es hatte jedoch immer noch den Nachteil, dass das Repository die Historie all dieser "gelöschten" Dateien speicherte, was dazu führte, dass es mehr Platz als nötig einnahm (und ein Datenschutzproblem darstellen konnte) in der Lage sein, ältere Revisionen dieser "anderen" Verzeichnisse zu sehen.

    So, mehr Beratung einen Basar Zweig auf nur einem seiner Unterverzeichnisse auf Schneide während permanent Geschichte alles zu entfernen sonst würde geschätzt.

    6

    Verwenden schnell Import-Plugin (http://bazaar-vcs.org/BzrFastImport):

    1) Exportieren Sie alle Ihre Geschichte in den Stream:

    bzr fast-export BRANCH > full-history.fi 
    

    2) die Geschichte Filtern neuen Strom zu erzeugen:

    bzr fast-import-filter -i subfolder full-history.fi > subfolder.fi 
    

    3) Neuen Zweig nur mit Unterordner neu erstellen:

    bzr init-repo . 
    bzr fast-import subfolder.fi 
    
    +2

    Wenn "Unterordner" aus dem Pfad im neuen Repository entfernt werden soll, damit es nicht in der ausgecheckten Struktur ist, dann fügen Sie dem '-i Unterordner'-Argument einen abschließenden Schrägstrich wie' -i Unterordner/'hinzu. Der Fast-Import-Filter rooted die gefilterten Elemente im tiefsten Level-Ordner, der mit dem Argument -i angegeben wurde. – kbulgrien

    0

    ein Verzeichnis

    bzr init . 
    bzr add . 
    bzr commit 
    

    im Rahmen tun.

    Dann können Sie verzweigen und nur zu diesem Verzeichnis zusammenführen.

    Der höher gelegene Bazaar wird dieses Verzeichnis ignorieren, bis Sie eine Verbindung herstellen.

    Bazaar versteht, wenn man Dinge wie

    bzr branch . mycopy 
    bzr branch . myothercopy 
    

    Die aktuellen Verzeichnisse tun .bzr nicht jene Unterverzeichnisse Änderungen verfolgen wird.

    Es erspart Ihnen zu versuchen, einen Platz zu finden, um eine Niederlassung zu setzen.