Ini agak terkait dengan pertanyaan ini tetapi merupakan pertanyaan yang berbeda.
Kami memiliki repositori Hg pusat, yang dilayani untuk pengguna melalui SSH dan server-mercurial . Kami memiliki sejumlah klien Mac, Linux dan Windows yang terhubung dengannya.
Ini telah terjadi dua kali sekarang bahwa salah satu pengguna Windows telah merusak repositori mereka, kemudian mendorong kembali ke yang sentral merusaknya. Saya ingin menulis skrip kait yang masuk pada repositori pusat untuk mencegah transaksi diterima jika akan merusak repo pusat.
Meskipun sayangnya saya tidak cukup tahu tentang Mercurial untuk menulis naskah seperti itu. Adakah kemungkinan orang lain menemukan ini? Secara pribadi saya tidak begitu yakin mengapa hg tidak melakukan ini secara default.
sumber
Jawaban:
Versi terbaru dari Mercurial (sejak 1.5) mendukung validasi data yang masuk. Menambahkan
ke konfigurasi hg server Anda (baik
.hg/hgrc
atau konfigurasi hgwebdir akan berfungsi dengan baik) agar server memverifikasi data yang masuk dan menolak dorongan yang tidak valid. Klien kemudian akan melihat kesalahan yang mirip dengan:Semoga itu bisa membantu!
sumber
Mungkin Anda harus menghindari mendorong repositori sama sekali. Dengan Mercurial dan sifatnya yang terdistribusi, setiap orang dapat memiliki cabang mereka, dan ketika mereka merasa siap, mereka memberi tahu Anda dan Anda menarik dari mereka. Tidak ada masalah akses komit, tidak ada dorongan yang akan merusak barang ...
Setidaknya ini saran yang diberikan teman saya, ketika saya pindah dari SVN ke Mercurial.
Saya tidak tahu, apakah ini pilihan bagi Anda, tetapi menyiapkan repositori pribadi untuk semua orang dan kemudian menarik orang-orang yang Anda butuhkan mungkin memerlukan lebih sedikit pekerjaan, daripada mencoba menangkap dorongan berbahaya.
sumber
Tidak bisakah Anda melakukan hal yang sama dengan Blog David Herron , tetapi alih-alih melakukannya saat prerouting, lakukan pada kait prekomentar pada repo pusat?
sumber
Salah satu alternatif yang mungkin adalah:
Solusi ini bukan yang Anda butuhkan, tetapi setidaknya, Anda mendapatkan cara untuk mengembalikan repositori Anda jika terjadi korupsi.
sumber