Apakah mungkin untuk membuka kembali cabang tertutup di Mercurial?

132

Saya mengerti bahwa menutup cabang bernama di Mercurial adalah mungkin, sehingga tidak akan muncul dalam hg branchesdaftar:

hg commit --close-branch -m 'close badbranch, this approach never worked'

Apakah mungkin untuk membuka kembali cabang nanti jika perlu?

Lóránt Pintér
sumber
13
Anda harus mencobanya, cara terbaik untuk belajar adalah dengan bereksperimen, dan karena repositori murah dengan Hg, menjadi liar.
Lasse V. Karlsen
1
Rahasia kecil kotor: "cabang" di Hg berbicara hanyalah cara lain untuk mengatakan "label teks yang terkait dengan komit". "Cabang" dapat memiliki banyak kepala berbeda ke banyak komit berbeda yang tidak terkait.
user2864740

Jawaban:

164

Anda bisa langsung hg updateke cabang yang ditutup kemudian melakukan yang lain hg commitdan itu akan secara otomatis dibuka kembali.

The closedbendera hanya digunakan untuk menyaring cabang tertutup dari hg branchesdan hg headskecuali jika Anda menggunakan --closedopsi - itu tidak mencegah Anda menggunakan cabang-cabang.

Tim Delaney
sumber
20
Komit tidak akan melakukan apa pun kecuali ada sesuatu yang benar-benar berkomitmen, jadi Anda mungkin perlu melakukan perubahan gratis untuk mewujudkannya.
Francis Upton IV
1
Terima kasih telah menunjukkannya - Saya berasumsi bahwa perubahan tersirat dengan melakukan komit, tetapi tentu saja jika Anda hanya ingin menghapus bendera yang ditutup Anda tidak dapat tanpa perubahan.
Tim Delaney
3
Tag sudah cukup untuk membuatnya dapat dikomit.
devlord
Ini mungkin bekerja dari antarmuka baris perintah, saya belum mencobanya, tetapi TortoiseHg tidak akan membiarkan Anda memperbarui ke cabang tertutup. Jika Anda mencoba melakukannya, tombol Perbarui dinonaktifkan. Untuk mengaktifkan ini, saya harus memperbarui ke cabang sebelum tutup berubah (secara efektif induk) dan kemudian perbarui ke tutup ubah. Yang aneh adalah, ketika Anda memperbarui ke induk, TortoiseHg mengklaim perubahan dekat (turunan) adalah induk. Apa pun, itu berfungsi dengan baik begitu Anda melompat melalui lingkaran yang tepat.
DaveN59
Menggunakannya (baris perintah via terminal di phpstorm) dan berfungsi seperti mantra, terima kasih
Mathieu Dierckx
15

Anda dapat membuka kembali cabang dengan menggunakan bendera "-f" saat 'membuat' cabang.

Tidak, perintah ini akan membuat cabang baru dengan nama yang sama.

Lupakan saja sudah tutup. Beralih ke cabang, buat perubahan dan komit. Ini akan dibuka kembali secara otomatis. Setelah selesai, Anda bisa menutupnya lagi.

Rafael Piccolo
sumber
Saya pikir, tidak seperti Git, cabang bernama Mercurial bersifat permanen, dan karena itu nama cabang tidak dapat digunakan kembali. Apa yang saya bingung? Apakah banyak kepala untuk cabang yang sama yang sedang kita bicarakan?
Nate Cook
2

coba dengan yang berikut:

hg pull && hg update branch_name

Sekarang buat perubahan kecil ke salah satu file dan kemudian komit

 hg commit -m "minor change"

lalu dorong

hg push -b . 

Sekarang Anda harus dapat bekerja secara normal.

Dipendra
sumber
-3

Coba ini.

Beralih ke cabang tertutup sebelum mengeksekusi. (hg up closed_branch)

hg st

sentuh a

tambah sebuah

hg komit -m 'membuka kembali cabang yang ditutup'

Ini akan membuka kembali cabang yang ditutup.

Geetanjali
sumber
12
Ini menambahkan file kosong yang tidak berguna ke repositori, itu salah.
Rafael Piccolo