(Angenommen lokale, "standalone" bzr freigegebene Repository.)
Interessante bzr-Befehle verwendet: bzr init-repo
, bzr init
, bzr branch
, bzr info
, bzr add
, bzr commit
, bzr remove-tree
, bzr remove-branch
.
Einzelbranch in einem freigegebenen Repository einrichten
Richten Sie ein freigegebenes Repository in Ihrem /tmp
-Verzeichnis ein, um damit zu experimentieren.
$ cd /tmp/
$ bzr init-repo test-shared-repo
$ bzr info test-shared-repo/
ergibt:
Freigegebenes Repository mit Bäumen (Format: 2a)
Ort:
freigegebenes Repository: test-shared-repo
Dann erstellen wir einen Ort, um einige Codes in diesem freigegebenen Repository zu speichern:
$ bzr init test-shared-repo/first
ergibt das Folgende, was bedeutet, dass "first" das freigegebene Repository verwendet, das wir oben erstellt haben (und es wird auch dort gespeichert):
Verwenden des freigegebenen Repository: /tmp/test-shared-repo/
Und wir gehen in das Verzeichnis mit dem freigegebenen Repository und erhalten Informationen darüber:
$ cd test-shared-repo
$ bzr info
Was die folgenden Informationen ergibt, die das wiedergeben, was angegeben wurde, als wir es erstellt haben:
Freigegebenes Repository mit Bäumen (Format: 2a)
Ort:
freigegebenes Repository: .
Lassen Sie uns auch die Informationen über das "first" überprüfen, das wir erstellt haben:
$ bzr info first/
Ergibt das Folgende, was zeigt, dass "first" ein Repository-Zweig ist, der ein freigegebenes Repository verwendet, das sich unter .
befindet:
Repository-Baum (Format: 2a)
Ort:
freigegebenes Repository: .
Repository-Zweig: first
Code zum ersten hinzufügen und einen zweiten Zweig davon abzweigen
Lassen Sie uns etwas "Code" zu unserem "first" Zweig erstellen, hinzufügen und commiten, dann zurück zum freigegebenen Repository gehen:
$ cd first/
$ echo "einige Texte" > a_file.txt
$ bzr add a_file.txt
$ bzr commit -m 'eine Commit-Nachricht'
$ cd ..
Jetzt zweigen wir von "first" zu "second" ab:
$ bzr branch first second
Ergibt das Folgende, was zeigt, dass "second" eine Referenz zu "first" hat:
Repository-Baum (Format: 2a)
Ort:
freigegebenes Repository: .
Repository-Zweig: second
Verwandte Zweige:
übergeordneter Zweig: first
Wenn Sie bzr info first
überprüfen, können Sie bestätigen, dass es keine Referenz zu "second" gibt. Überprüfen Sie, ob in "second" etwas vorhanden ist:
$ ls second
a_file.txt
Einen der Zweige löschen
Angenommen, wir sind mit entweder "first" oder "second" fertig, weil wir einen Fehler behoben haben usw. Das Problem ist, dass wir im Moment "bzr remove-branch" nicht auf beide anwenden können:
$ bzr remove-branch first
bzr: FEHLER: Zweig ist aktiv. Verwenden Sie --force, um ihn zu entfernen.
$ bzr remove-branch second
bzr: FEHLER: Zweig ist aktiv. Verwenden Sie --force, um ihn zu entfernen.
Ich habe jedoch etwas namens bzr remove-tree
entdeckt, das zu funktionieren scheint. Es wird den Inhalt auslöschen (ich denke, wenn keine unbestätigten Änderungen vorhanden sind), also seien Sie vorsichtig!
$ bzr remove-tree second
$ ls -a second
. .. .bzr
Dateien sind in "second" verschwunden. Aber es gibt immer noch eine Referenz zum "first":
$ bzr info second
Repository-Baum (Format: 2a)
Ort:
freigegebenes Repository: .
Repository-Zweig: second
Verwandte Zweige:
übergeordneter Zweig: first
Also, lassen Sie uns jetzt bzr remove-branch
auf "second" ausprobieren:
$ bzr remove-branch second
$ bzr info second
Leeres Kontrollverzeichnis (Format: 2a oder pack-0.92)
Ort:
Kontrollverzeichnis: second
Es scheint, als ob alles in "second" verschwunden ist und ich könnte dann sicherlich das Verzeichnis "second" löschen (rm
/ del
).
(Andere können dies bearbeiten, um mehr Informationen zur richtigen Methode zum Entfernen eines Zweigs in einem freigegebenen Repository bereitzustellen.)