Saya baru berkolaborasi dengan Mercurial. Situasi saya:
- Programmer lain mengubah rev 1 file untuk mengganti indentasi 4-ruang dengan indentasi 2-ruang. (Yaitu mengubah setiap baris.) Panggil rev 2 itu, didorong ke repo jarak jauh.
- Saya telah melakukan perubahan substantif rev 1 dengan berbagai perubahan kode di ruang kerja lokal saya. Sebut rev itu 3.
- Saya sudah
hg pull
ed danhg merge
d tanpa ide yang jelas tentang apa yang sedang terjadi. - Konflik itu banyak sekali dan tidak terlalu substantif.
Jadi saya benar-benar berharap saya mengubah repo lokal saya ke indentasi 2-ruang sebelum bergabung; maka penggabungan akan sepele (saya seandainya). Tapi sepertinya aku tidak bisa mundur. Saya pikir saya perlu hg update -r 3
tetapi katanya abort: outstanding uncommitted merges
.
Bagaimana saya bisa membatalkan gabungan, perubahan spasi di repo lokal saya, dan muncul kembali?
M-x indent-region
pula trik reindent.BTW: jika Anda baru saja mengembalikan gabungan yang Anda lakukan dan 3 bukan nomor revisi Anda, Anda bisa melakukan ini:
sumber
.
adalah pintasan ke revisi sebelumnya.hg help update
saya dapatkan: Jika tidak ada perubahan yang ditentukan, perbarui ke ujung cabang bernama saat ini ... dan tip mungkin tidak selalu menjadi revisi Anda saat ini yang sedang Anda kerjakan. Saya tidak mengujinya, sejauh ini ..-r .
adalah samaUntuk membatalkan gabungan yang tidak dikomit, gunakan
yang akan memeriksa salinan bersih dari induk gabungan asli, kehilangan semua perubahan.
sumber
Saya tampaknya hanya perlu
hg update -C -r 3
, yang menimpa file lokal saya dengan rev dalam pikiran (yang saya pikirhg update
akan lakukan; tapi saya salah.) Terima kasih atas bantuan saya!sumber
-C
atau--clean
adalah bagaimana Anda memberi tahu Mercurial untuk melanjutkan, bahkan ketika itu akan membuang beberapa file yang dimodifikasi. Anda benar yanghg update -r X
biasanya akan membawa Anda ke revisi X, tetapi ketika Anda berada dalam penggabungan, Anda perlu bersikeras sedikit lebih banyak :-)