Menghapus cabang SVN

91

Saya membuat cabang dari proyek SVN yang disebut 'fitur', dan sekarang setiap kali saya mencoba memperbarui proyek tersebut, ia membawa serta folder fitur, yang berisi salinan lain dari proyek tersebut dari cabang tersebut. Apakah ada cara untuk menghapus cabang dari repositori sepenuhnya sehingga ini tidak terjadi lagi?

GSto
sumber
Kemungkinan duplikat dari Hapus cabang
Jim G.

Jawaban:

110

Tentu: svn rmfolder yang tidak diinginkan, dan lakukan.

Untuk menghindari situasi ini di masa mendatang, saya akan mengikuti tata letak yang direkomendasikan untuk proyek SVN:

  • Letakkan kode Anda di /someproject/trunkfolder (atau hanya /trunkjika Anda ingin meletakkan hanya satu proyek di repositori)
  • Cabang dibuat sebagai /someproject/branches/somebranch
  • Letakkan tag di bawah /someproject/tags

Sekarang ketika Anda memeriksa copy pekerjaan, pastikan untuk memeriksa hanya trunkatau beberapa cabang individu. Jangan memeriksa semuanya dalam satu copy pekerjaan besar yang berisi semua cabang. 1

1 Kecuali Anda tahu apa yang Anda lakukan, dalam hal ini Anda tahu cara membuat copy pekerjaan yang dangkal.

Wim Coenen
sumber
58

Dengan asumsi cabang ini bukan eksternal atau symlink, menghapus cabang harus sesederhana:

svn rm branches/< mybranch >

svn ci -m "message"

Jika Anda ingin melakukan ini di repositori kemudian perbarui untuk menghapusnya dari copy pekerjaan Anda, Anda dapat melakukan sesuatu seperti:

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

Lalu lari:

svn update
grmartin
sumber
26
dari buku : "Namun, svn rm -m message http://...update
menghapus
57

Bagi mereka yang menggunakan TortoiseSVN , Anda bisa melakukannya dengan menggunakan Browser Repositori (ini diberi label "Repo-browser" di menu konteks.)

menu konteks

Temukan folder cabang yang ingin Anda hapus, klik kanan, dan pilih "Hapus."

menghapus folder

Masukkan pesan komit Anda, dan Anda selesai.

melakukan

2rs2ts
sumber
Lakukan Pembaruan SVN untuk menghapus folder dari disk Anda (jika tidak dihapus sebelum menghapus cabang)
ArieKanarie
12

Anda juga dapat menghapus cabang di remote secara langsung. Setelah melakukan itu, pembaruan berikutnya akan menghapusnya dari copy pekerjaan Anda.

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

Ini ^adalah kependekan dari URL remote, seperti yang terlihat di 'svn info'. Tanda kutip ganda diperlukan pada baris perintah Windows, karena ^merupakan karakter khusus.

Perintah ini juga akan berfungsi jika Anda belum pernah memeriksa cabang.

CodeKid
sumber
Saya menggunakan ini dari Mac dan bekerja dengan baik! Ketika saya mencoba jawaban teratas, saya mendapat tanggapan "'/ local / path / to / repo / Branch / branch-name' bukan copy pekerjaan" jadi mungkin saya tidak pernah berhasil memeriksa cabang yang saya buat
Mad Bernard
3

Anda dapat menghapus folder fitur seperti yang lain di checkout Anda lalu melakukan perubahan.

Untuk mencegah hal ini di masa mendatang, saya sarankan Anda mengikuti konvensi penamaan untuk layout SVN.

Berikan setiap proyek trunk, branch, tags folder saat mereka dibuat.

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

Dari copy pekerjaan:

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

sbi
sumber
3

Perintah untuk menghapus cabang adalah sebagai berikut:

svn delete -m "<pesan Anda>" <branch url>

Jika Anda tidak ingin mengambil / melakukan pembayaran seluruh repo, jalankan perintah berikut di terminal Anda:

1) dapatkan jalur absolut dari direktori yang akan berisi copy pekerjaan Anda
> pwd
2) Mulai kode svn checkout
> svn checkout <branch url> <jalur absolut dari poin 1>

Langkah-langkah di atas akan memberi Anda file di dalam folder cabang dan bukan seluruh folder.

Alvin Chettiar
sumber