Löschen eines SVN-Zweigs

88

Ich habe einen Zweig eines SVN-Projekts mit dem Namen "Features" erstellt. Wenn ich jetzt versuche, dieses Projekt zu aktualisieren, wird ein Feature-Ordner mitgeliefert, der eine weitere Kopie des Projekts aus dem Zweig enthält. Gibt es eine Möglichkeit, den Zweig vollständig aus dem Repository zu entfernen, damit dies nicht mehr passiert?

GSto
quelle
Mögliches Duplikat von Löschen eines Zweigs
Jim G.

Antworten:

108

Sicher: svn rmder unerwünschte Ordner und Commit.

Um diese Situation in Zukunft zu vermeiden, würde ich das empfohlene Layout für SVN-Projekte befolgen :

  • Legen Sie Ihren Code in den /someproject/trunkOrdner (oder nur, /trunkwenn Sie nur ein Projekt in das Repository stellen möchten).
  • Erstellt Zweige als /someproject/branches/somebranch
  • Tags unter setzen /someproject/tags

Wenn Sie jetzt eine Arbeitskopie auschecken, müssen Sie nur einen trunkoder einen einzelnen Zweig auschecken. Überprüfen Sie nicht alles in einer riesigen Arbeitskopie, die alle Zweige enthält. 1

1 Wenn Sie nicht wissen, was Sie tun, wissen Sie in diesem Fall, wie Sie flache Arbeitskopien erstellen.

Wim Coenen
quelle
58

Angenommen, dieser Zweig ist kein externer oder Symlink, sollte das Entfernen des Zweigs so einfach sein wie:

svn rm branches/< mybranch >

svn ci -m "message"

Wenn Sie dies im Repository tun möchten, aktualisieren Sie es, um es aus Ihrer Arbeitskopie zu entfernen. Sie können Folgendes tun:

svn rm http://< myurl >/< myrepo >/branches/< mybranch >

Dann renne:

svn update
Grmartin
quelle
26
aus dem Buch : "Das Löschen einer URL erfolgt jedoch sofort, daher müssen Sie eine Protokollnachricht [mit -m] svn rm -m message http://...update
angeben
56

Für diejenigen, die TortoiseSVN verwenden , können Sie dies mithilfe des Repository-Browsers erreichen (der im Kontextmenü mit "Repo-Browser" gekennzeichnet ist).

Kontextmenü

Suchen Sie den Zweigordner, den Sie löschen möchten, klicken Sie mit der rechten Maustaste darauf und wählen Sie "Löschen".

Ordner löschen

Geben Sie Ihre Commit-Nachricht ein und Sie sind fertig.

begehen

2rs2ts
quelle
Führen
12

Sie können den Zweig auch direkt auf der Fernbedienung löschen. Wenn Sie dies getan haben, wird es beim nächsten Update aus Ihrer Arbeitskopie entfernt.

svn rm "^/reponame/branches/name_of_branch" -m "cleaning up old branch name_of_branch"

Das ^ist die Abkürzung für die URL der Fernbedienung, wie in 'svn info' zu sehen. Die doppelten Anführungszeichen sind in der Windows-Befehlszeile erforderlich, da ^es sich um ein Sonderzeichen handelt.

Dieser Befehl funktioniert auch, wenn Sie den Zweig noch nie ausgecheckt haben.

CodeKid
quelle
Ich habe dies von einem Mac verwendet und es hat gut funktioniert! Als ich die Top-Antwort ausprobierte, erhielt ich die Antwort "'/ local / path / to / repo / branch / branch-name' ist keine Arbeitskopie", so dass ich es vermutlich nie geschafft hatte, den von mir erstellten Zweig zu überprüfen
Mad Bernard
3

Sie können den Funktionsordner wie jeden anderen Ordner in Ihrer Kasse löschen und dann die Änderung festschreiben.

Um dies in Zukunft zu verhindern, empfehlen wir Ihnen, die Namenskonventionen für das SVN-Layout zu befolgen.

Geben Sie jedem Projekt beim Erstellen einen Stamm-, Zweig- und Tag-Ordner.

svn
+ project1
  + trunk
    + src
    + etc...
  + branches
    + features
      + src
      + etc...
  + tags
+ project2
  + trunk
  + branches
  + tags
Chris Nava
quelle
3

Aus der Arbeitskopie:

svn rm branches/features
svn commit -m "delete stale feature branch"

sbi
quelle
3

Der Befehl zum Löschen eines Zweigs lautet wie folgt:

svn delete -m "<Ihre Nachricht>" <zweig>

Wenn Sie nicht das gesamte Repo abrufen / auschecken möchten, führen Sie den folgenden Befehl auf Ihrem Terminal aus:

1) Holen Sie sich den absoluten Pfad des Verzeichnisses, das Ihre Arbeitskopie enthält
> pwd.
2) Starten Sie die svn-Code-Prüfung
> svn-Prüfung <Verzweigungs-URL> <absoluter Pfad von Punkt 1>

Mit den obigen Schritten erhalten Sie die Dateien im Zweigordner und nicht den gesamten Ordner.

Alvin Chettiar
quelle