Mercurial: hapus set perubahan dari cabang jarak jauh

Apakah ada cara untuk menghapus a dari perubahan yang dihapus atau menghapus seluruh perubahan? Saya tidak sengaja mengeklik file .war pada repo jarak jauh, dan saya ingin menghapusnya.

20
25 мая '09 в 18:21 2009-05-25 18:21 Miguel Ping bertanya pada 25 Mei 2009 pada 18:21 2009-05-25 18:21
@ 4 balasan

Saya menggunakan ekstensi hg mqueue untuk mengedit cerita. Tampaknya itu berhasil. Terima kasih semuanya.

4
26 мая '09 в 12:44 2009-05-26 12:44 membalas Miguel Ping pada 26 Mei 2009 di 12:44 2009-05-26 12:44

Mercurial sangat rajin menjaga data Anda aman, sehingga Anda tidak pernah bisa mengubah riwayat.

Jadi, ada banyak ekstensi untuk Mercurial, yang memungkinkan Anda untuk dengan mudah mengubah riwayat. Ada halaman di wiki edit riwayat . Halaman ini juga menjelaskan konsekuensinya.

Dalam kasus khusus Anda, Anda harus bertanya pada diri sendiri apakah orang lain sudah akan mengeluarkan set perubahan Anda? Jika demikian, bahkan jika Anda menghapusnya, itu akan tetap ada di klonnya, dan Anda mungkin lebih baik menerima kesalahan.

Jika Anda memutuskan untuk menghapusnya, saya sarankan menggunakan hg clone untuk mendapatkan salinan tanpa itu. Ini adalah jalur aman karena akan selalu menyimpan cadangan. Jika Anda menekan [z] dalam repositori jarak jauh:

 [x] --- [y] --- [z] 

dan sekarang Anda ingin menghapusnya, lalu masuk ke server dan jalankan

 hg clone -ry repo repo-without-z 

Kemudian repo-without-z akan berisi semua variabel hingga [y] - yaitu, [z] akan dihapus:

 [x] --- [y] 
border=0

Kemudian Anda dapat terus bekerja dan klik set perubahan baru:

 [x] --- [y] --- [w] 

Jika saya sudah mengeluarkan receet [z] dan sekarang menarik [w] , saya akan melihat dua bab dalam repositori:

  [w] / [x] --- [y] --- [z] 

Ini tidak berbahaya, tetapi orang mungkin akan terkejut. Jika saya menghapus [z] dari klon saya, saya akan kembali ke repositori yang sama dengan Anda. Tetapi, seperti dijelaskan di atas, ini mungkin tidak praktis jika Anda memiliki banyak pengguna.

Anda juga dapat menggunakan ekstensi MQ untuk menghapus set perubahan di tempat. Dengan demikian, Anda tidak akan membuat klon baru.

Akhirnya, jika Anda yakin bahwa klik adalah operasi terakhir yang dilakukan pada server, maka hg rollback dapat digunakan untuk menghapus transaksi terakhir. Tetapi jangan lakukan ini jika Anda adalah satu-satunya yang dapat mengklik repositori, jika tidak, Anda dapat memutar kembali transaksi lain.

Jika repositori ada di Bitbucket , Anda tidak bisa masuk ke server. Tetapi Bitbucket baru-baru ini menambahkan fungsionalitas bandwidth ke antarmuka webnya. Temukan "Kelola Gudang" di bagian "Admin".

34
25 мая '09 в 19:27 2009-05-25 19:27 balasan yang diberikan oleh Martin Geisler 25 Mei 2009 di 19:27 2009-05-25 19:27

Bitbucket menawarkan Anda paket (cadangan) ketika Anda menghapusnya, dan itu berarti tidak bertentangan dengan kuota Anda. Alasan mengapa hal ini dilakukan adalah hanya karena kami tidak membatalkan kunci cache dengan menentukan berapa banyak ruang yang Anda gunakan.

Ini adalah bug di sistem kami dan akan diperbaiki. Sampai saat itu, pastikan set perubahan dihapus, dan salinan cadangan gratis: -)

13
26 мая '09 в 10:04 2009-05-26 10:04 Jawaban diberikan oleh jespern pada 26 Mei 2009 di 10:04 2009-05-26 10:04

Saya memiliki kasus serupa ketika saya ingin menghapus cabang dengan cabang yang dimodifikasi "A" dari cabang "Dev" menggunakan TortoiseHg:

  • Buat cabang AA dari cabang cabang induk; asalnya.
  • Gabungkan A ke AA (direktori kerja) dan pastikan bahwa opsi "Buang semua perubahan dari versi lain" dicentang.
  • Gabungkan AA menjadi cabang Dev (dengan pesan komit yang menunjukkan bahwa perubahan pada cabang A telah dihapus).

Anda akan melihat bahwa perubahan di cabang A tidak lagi ada di Dev.

1
14 февр. Jawabannya diberikan oleh MarwaAhmad pada 14 Februari. 2017-02-14 07:01 '17 pada 7:01 2017-02-14 07:01

Pertanyaan lain tentang label atau Ajukan pertanyaan