Saya tidak percaya perubahan yang tidak dikomit secara intrinsik adalah hal yang buruk. Anda merujuk pada "ketidakmampuan untuk bergabung dengan mereka" - jika Anda memiliki perubahan yang tidak dikomit ke beberapa file, dan Anda menarik dan memperbarui perubahan ke file itu, Mercurial akan memulai proses penggabungan sama seperti jika Anda telah melakukan itu, kemudian meminta sebuah penggabungan. Apakah maksud Anda sesuatu yang berbeda?
Jadi, untuk perubahan lokal yang belum ingin Anda bagikan dengan pengembang lain, Anda memiliki dua pendekatan. Yang pertama adalah menjaga perubahan dalam copy pekerjaan Anda, tetapi tidak mendorongnya, dan yang lainnya adalah menyingkirkannya, dari copy pekerjaan. Yang Anda pilih tergantung pada apakah Anda ingin agar perubahan ini tersedia saat Anda bekerja.
Jika Anda menyimpannya di copy pekerjaan, perubahan yang masuk akan berfungsi dengan baik, jadi Anda hanya perlu menghindari membuat perubahan keluar, dan itu berarti menghindari melakukan itu. Jika file-file itu baru, itu mudah - jangan lakukan hg add
itu. Jika sudah dilacak, maka Anda dapat secara khusus mengecualikan mereka dari komit hg commit --exclude foo.txt
. Jika Anda memiliki banyak file untuk dikecualikan, atau akan mengecualikannya dari banyak komit (misalnya untuk perubahan permanen ke file konfigurasi lokal), lihat ekstensi kecualikan .
Jika Anda siap untuk mengesampingkan perubahan, Anda memiliki serangkaian opsi lain. Hal yang paling sederhana adalah menggunakan hg diff
pada file untuk menghasilkan tambalan yang menggambarkannya, yang Anda simpan di tempat yang aman, lalu hg patch --no-commit
menerapkan kembali tambalan itu saat Anda menginginkan perubahan kembali. Anda dapat membuat ini lebih lancar dengan memasang ekstensi rak , ekstensi loteng , atau kerabat lainnya. Anda juga bisa menggunakan ekstensi antrian , tetapi itu menggunakan palu untuk memecahkan masalah. Anda bahkan bisa melakukan perubahan, kemudian memperbarui kembali ke induk dan melakukan pekerjaan lain di sana, meninggalkan perubahan di cabang anonim yang gemuk - hg commit -m 'temporary branch' && hg up $(hg log -r 'parents(.)' --template '{node}')
(walaupun mungkin lebih mudah dilakukan secara manual!). Namun, Anda harus berhati-hati untuk tidak mendorong perubahan itu.