2017-05-03 2 views
0

Ich habe w/bzr (Basar vcs) für einige Zeit gearbeitet, und beschlossen, eine Reihe von Apps als gestapelt auf einem Core-Stamm (um zu helfen, historische Ressourcen zu verwalten).Basar entfernte gestapelte Zweige mit "funktionierenden Baum"

Für veröffentlichten Web-Anwendungen, die Workflow enthielt

bzr push bzr-ssh://<server>/var/www/<remote-branch-name>

gefolgt von bzr checkout auf dem Server einen Arbeits Baum zu erhalten.

Mit diesem neuen Stacked-Paradigma wollte ich natürlich einen Stacked-Branch auf den Server schieben, UND einen funktionierenden Baum haben, aus dem heraus zu dienen, aber das scheint nicht möglich?

bzr push --stacked -d <branch> <remote>

wird einen neuen gestapelte Zweig auf dem Server, sondern vom Server glücklich erstellen:

  • bzr info zeigt keine Eltern
  • bzr checkout Ergebnisse in BZR: ERROR: Kein Zweig

Netz, kein funktionierender Baum: |

Letztendlich löschte ich nur den neuen Remote-Zweig und ging zurück und unterließ die --stacked.

Immer noch gefragt, ob ich etwas verpasst habe?

+0

Das sieht aus wie ein Bug in Upstream bzr für mich. – jelmer

Antwort

0

Ich werde erklären, über gestapelte Zweige, aber unten empfehle ich, dass Sie stattdessen ein gemeinsames Repository verwenden.

Es spielt keine Rolle, ob "bzr info" ein Elternteil anzeigt. Es muss einen gestapelten Zweig zeigen.

In dem folgenden Beispiel wird die „gestapelt“ ist der Schlüssel:

bzr info bzr+ssh://teeny/~/bzr 
Standalone branch (format: unnamed)            
Location: 
    branch root: bzr+ssh://teeny/~/bzr/ 

Related branches: 
    parent branch: bzr 
    stacked on: http://bazaar.launchpad.net/~abentley/bzr/branches-uncommitted 

Bazaar versucht, welcher Zweig zu stapeln zu bestimmen. Es sollte das als Teil der Push-Ausgabe drucken.

Wenn es falsch ist, können Sie es mit --stack-on überschreiben. Denken Sie daran, dass der Zweig, auf den Sie stapeln, mindestens so öffentlich sein muss wie der Zweig, den Sie schieben.

Aber ich empfehle Shared Repository, nicht gestapelte Zweige, um Platz zu sparen. Es ist effizienter und benutzerfreundlicher. Bazaar verwendet automatisch ein gemeinsam genutztes Repository, wenn es eines findet, das den Zielspeicherort umfasst. Zum Beispiel erstellt "bzr init-repo bzr + ssh: /// var/www /" ein gemeinsames Repository, das automatisch von allen Zweigen unter/var/www verwendet wird.

Gestapelte Zweige existieren, um Datenschutzprobleme zu lösen. Wenn einige der Zweige unter/var/www privat sind, ist ein gemeinsam genutztes Repository ein Risiko, da es Revisionen von diesen privaten Zweigen enthält. Der Hauptgrund, warum Launchpad gestapelte Zweige verwendet, liegt darin, dass Launchpad private Zweige unterstützt. Eine private Zweigstelle, die in einer öffentlichen Zweigstelle gestapelt ist, spart Platz, ohne private Revisionen in die öffentliche Verwaltung zu verlieren. Standardmäßig wird Stacking verwendet, da eine öffentliche Verzweigung nach dem anfänglichen Push-Vorgang als privat gekennzeichnet werden kann.