Saya tidak memiliki pengalaman besar dengan Mercurial, saya sebagian besar adalah pria Git.
Saya ingin mencerminkan folder / file Mercurial tertentu di git Repository. Apa yang sebenarnya saya coba lakukan adalah mengekspor riwayat file dari repositori Mercurial ke Git dan dapat menjaganya tetap sinkron dengan komitmen di masa mendatang.
Apakah Anda punya saran tentang cara melanjutkan? Saya percaya bahwa cara yang harus dilakukan adalah mendapatkan riwayat patch Mercurial, secara berkala mengekspor setiap komit sebagai patch dan menerapkan patch Mercurial ke repositori Git.
Jawaban:
Di Linux atau apa pun dengan
bash/sh
atau serupa, ataupython
, coba dengan ekspor cepat :sumber
PYTHON=python2 ~/fast-export/hg-fast-export.sh -r /path/to/old/mercurial_repo
. Selain itu, ini bekerja dengan sempurna.sudo easy_install mercurial
dulu. Akan menyenangkan untuk memiliki instruksiWindows: Ekstensi TortoiseHG Hg-Git
Hg-Git dapat digunakan untuk mengonversi repositori Mercurial ke Git. Anda dapat menggunakan repositori lokal atau repositori jarak jauh yang diakses melalui SSH, HTTP atau HTTPS.
Contoh konversi repositori lokal.
Pasang Hg-Git.
Di Windows, TortoiseHg hadir dengan Hg-Git, meskipun Anda perlu mengaktifkannya melalui alat pengaturan (di bagian ekstensi)
atau secara manual di
~/mercurial.ini
Gunakan perintah berikut untuk mengonversi repositori:
The
hg
bookmark diperlukan untuk mencegah masalah sebagai dorongan sebaliknya hg-git ke cabang saat diperiksa membingungkan Git. Ini akan membuat cabang bernamahg
di repositori Git. Untuk mendapatkan perubahan dalam master gunakan perintah berikut (hanya perlu di jalankan pertama, nanti cukup gunakangit merge
ataurebase
):sumber
Anda dapat (dari sisi Mercurial):
--filemap
opsi convert bagian original repo menjadi lebih kecil dengan hanya file | direktori yang dibutuhkanatau (alih-alih hg-git), menggunakan Mercurial bridge di Git , klon | tarik repositori dari Git
sumber
Gitify
Tampak sebagai alternatif yang lebih modern dan mudah digunakan untuk melakukan konversi https://github.com/buchuki/gitifyhg
sumber
Ubah repositori Mercurial ke Git di Windows 10
Jika tidak ada masalah dengan pengkodean - gunakan ekstensi TortoiseHG Hg-Git
Jika ada yang salah dengan pengkodean - gunakan ekspor cepat
Instal Bash
Buka PowerShell sebagai Administrator dan jalankan:
Instal Ubuntu 16.04 LTS dari Microsoft Store
Buka Bash dan jalankan
instal lincah
dapatkan fast-export v180317 (saat ini versi setelah 180317 tidak bekerja dengan benar)
konversikan repositori
opsi pengkodean:
-f
pengkodean, seperti-f cp1251
--fe
pengkodean nama file seperti--fe cp1251
sumber
hg-git-fast-import
https://github.com/kilork/hg-git-fast-import
Utilitas lain dengan fitur berikut:
Anda dapat mendownload biner untuk Anda platform yang dan menempatkan di suatu tempat di jalan atau menginstal dengan
cargo
(membutuhkanrust
akan diinstal ):Maka penggunaannya seperti ini:
Itu tidak perlu
Python
danMercurial
harus diinstal. Konfigurasi lanjutan memungkinkan untuk mengganti penulis atau cabang, membuat cabang menjadi prefiks dan banyak lagi.sumber
Jika Anda menggunakan github.com , mereka tampaknya memiliki fitur impor yang memungkinkan Anda cukup mengetikkan URL proyek hg Anda.
Pertama buat repositori baru dan kemudian pada halaman arahan repositori baru, gulir ke bawah dan klik tombol "Impor kode" .
Kemudian ketik URL dari repositori Anda sebelumnya dan tekan "Mulai impor".
Kemudian GitHub akan menangani sisanya!
Perhatikan bahwa GitHub akan menanyakan kredensial Anda untuk repositori lama jika diperlukan.
Ooh! Saya menemukan panduan resmi
sumber
Di Windows bisa sedikit rumit. Setelah mengaktifkan plugin yang tepat di mercurial (
hggit
), TortoiseHG juga bisa digunakan.Menggunakan konsol:
% hg bookmarks hg
% hg push <relative path to>/<git-repo>
sumber
Mungkin itu membantu seseorang hari ini (saat mengonversi repositori lincah menjadi git, sambil mempertahankan riwayat). Diuji untuk bekerja dengan mercurial 4.0.1.
Dan terakhir untuk mendorong repo lokal Anda yang baru dikonversi.
sumber