Kami sekarang memiliki cabang "stiging", di mana "pementasan" tampaknya cocok semantik yang jauh lebih baik. Apa strategi yang baik untuk menangani ini?
205
Perbarui ke stiging
cabang dan buat cabang baru darinya. Kemudian tutup cabang lama.
Singkatnya:
hg update stiging
hg branch staging
hg commit -m"Changing stiging branch to staging."
hg update stiging
hg commit --close-branch -m"This was a typo; use staging instead."
hg push --new-branch
--force
. Sebagai contoh:hg branch --force v3
. Ini akan menghasilkanhg update v3
pembaruan kev3
cabang baru , seperti yang Anda inginkan.stiging
sebelum bercabang, Anda tidak mendapatkan "ujung yang longgar"Untuk pembaca yang akan datang: Dengan
rebase
ekstensi, Anda dapat membuat cabang baru dengan orang tua yang samastiging
dan memindahkan seluruh sejarah cabang ke sana, seperti ini:Ini mengasumsikan bahwa
stiging
hanya memiliki satu orangtua. Tentu saja Anda bisa menggunakan angka revisi eksplisit saja.Catatan 1: Jika cabang
stiging
menyertakan gabungan dengan cabang lain, saya pikir ini akan mempertahankannya, selamastaging
danstiging
memiliki induk yang sama. Tapi aku akan mengeceknya.Catatan 2: Karena ini mengedit sejarah, cabang lama tidak akan hilang begitu saja dari repositori yang dikloning (lihat
rebase
dokumentasi). Kecuali setiap orang dapat mengkloning baru, itu mungkin bukan solusi yang sangat praktis untuk kelompok besar.Note3 / Edit (milik @JasonRCoombs): Sekarang fase - fase standar dalam mercurial,
rebase
akan menolak untuk memodifikasi perubahan yang telah didorong. Entah membodohinya dengan mengubah fase kembali ke draft (withhg phases
), atau membiarkan cabang lama tetap di sana, dan hanya membuat salinan yang dinamai dengan benar (misalnya, dengan `hg rebase --keep ').sumber
hg convert
sebagai gantinya.--keep
ke perintah rebase, yang akan menyalin alih-alih memindahkan perubahan.abort: can't rebase immutable changeset 11b1e2b7dc4f
. Perhatikan bahwa saya telah mencangkok perubahan dari cabang lain ke cabang ini. Selain itu, itu terpisah dan bergabung..
Anda--dest
dan rebase akan mengambil nama cabang baru secara otomatis.Jika Anda memiliki set perubahan di dalamnya, maka Anda harus menggunakan ekstensi konversi dengan branchmap untuk mengubah nama itu. Setiap orang kemudian harus mengkloning repo baru atau menanggalkan cabang lama.
sumber
Buat cabang baru yang disebut "pementasan" dan lupakan yang lain ...
sumber
Ini memodifikasi riwayat dan hanya untuk pengguna Mercurial tingkat lanjut. Jangan lakukan ini jika Anda tidak tahu apa artinya itu.
Jika stiging hanya lokal, Anda dapat mengubahnya menjadi staging dengan kombinasi graft dan strip . Mulailah dengan memperbarui ke set leluhur di mana stiging telah menyimpang. Buat cabang pementasan dan graft setiap komit dari stiging ke pementasan. Pementasan sekarang harus menjadi salinan stiging. Terakhir, hancurkan stiging dengan melepaskan komit pertamanya.
sumber
hg graft {first changeset in stiging}..{stiging head}