Bagaimana cara mengubah repositori git menjadi mercurial?

104

Saya telah mengembangkan aplikasi java menggunakan git sebagai repositori kode sumber. Saya ingin berbagi proyek dengan pengembang java lainnya dan hg tampaknya paling banyak digunakan oleh mereka.

Pertanyaan saya adalah bagaimana cara mengubah repositori git menjadi hg?

Jika saya mencoba googling "convert git to hg" dan setiap pencarian hit adalah tentang mengkonversi dari hg ke git. Saya juga menggunakan TortoiseHg .

Spoike
sumber
16
Jika Anda perlu mengonversi dari mercurial ke git sebagai gantinya: stackoverflow.com/questions/883452/…
Christian Oudard
Paragraf terakhir itu tidak masuk akal. Salah ketik?
tshepang
1
@Tshepang: Saya ingin "git -> hg" tapi mendapatkan "hg -> git". Saya akan mengedit pertanyaan ini tetapi saya rasa orang-orang tetap mendapatkannya karena ada jawaban sekarang.
Spoike

Jawaban:

79

The hg convertutilitas tidak secara default setelah instalasi. Untuk mengaturnya seperti itu tambahkan yang berikut ini ke .hgrcfile Anda .

[extensions]
hgext.convert=

Jika Anda menggunakan TortoiseHg pada Windows maka file ini berada di direktori home Anda sebagai mercurial.ini. Setelah pengaturan ini berubah, Anda akan dapat menggunakan hg convertutilitas tersebut.

Spoike
sumber
5
Di Ubuntu, perubahan luas sistem dapat dilakukan di / etc / mercurial / hgrc
Sentient
1
Pada Windows, menggunakan TortoiseHg, itu bisa diaktifkan dengan menggunakan item menu Pengaturan Global dari menu ekstensi shell TortoiseHg di bagian Ekstensi di bawah Pengaturan Global.
Umar Farooq Khawaja
Deskripsi ini agak tidak lengkap karena tidak menentukan bahwa hg akan memerlukan akses ke git untuk konversi atau Anda akan mendapatkan pesan kesalahan "tidak dapat menemukan alat" git "yang diperlukan".
jmd
41

Dengan menggunakan extension Mercurial Convert

Tambahkan baris berikut ke Anda .hgrcatau untuk mengaktifkan ekstensi:

[extensions]
hgext.convert=

Dan mengetik a

cd src
hg convert --datesort . dst

(meskipun itu dapat menyebabkan beberapa masalah ...)

Catatan :: Metrix melaporkan bahwa ini mungkin tidak berfungsi:

     hg convert --datesort src dst

Catatan: kebetulan ada bug hg convertjika Anda menjalankan perintah ini dari direktori selain direktori sumber.
Anda akan mendapatkan kesalahan berikut:

abort: cannot read tags from git-repo4/.git

Dikonfirmasi dengan git 1.7.9 dan Mercurial 2.6.2 di Windows XP

VonC
sumber
Jika jawaban itu termasuk .hgrcpengaturan daripada menautkannya, itu akan komprehensif.
fbmd
17

Anda mungkin ingin melihat http://hg-git.github.com/ utility: plugin Git untuk Mercurial

Plugin ini pada awalnya dikembangkan oleh orang-orang di GitHub, dan memungkinkan konversi dari git <-> tanpa henti. Secara teori, Anda bahkan dapat mengkloning repositori hg.

vdboor.dll
sumber
2
Ini adalah solusi yang lebih baik daripada mengonversi repositori. Ini akan menjadi jawaban yang lebih baik juga, jika lebih detail. Jawaban satu baris tidak berguna.
n nothing101
1
@ naught101, terima kasih atas sarannya, saya telah menambahkan beberapa info lebih lanjut di sini untuk dibaca langsung.
vdboor
setelah Anda menginstal & mengatur hg-git, gunakan hg gexport & hg gimport untuk mengonversi di antara keduanya.
Pria CAD pada
9

Kontrol revisi terdistribusi dengan status Mercurial :

Alat kontrol revisi yang didukung oleh convert adalah sebagai berikut:

  • Subversi
  • CVS
  • Git
  • Darcs

Jadi mungkin Anda tidak membutuhkan alat tambahan?

Bombe
sumber
1
Sayangnya "hg convert" tidak tersedia di tortoisehg
Spoike
6

Ekstensi convert mungkin bekerja untuk Anda, tetapi jika tidak, Anda mungkin ingin memeriksa tailor yang merupakan alat tujuan umum untuk mengkonversi di antara berbagai SCM terdistribusi.

Luke Francl
sumber
2

Anda tidak bisa mengubahnya sama sekali. Cukup gunakan plugin Hg-Git ! Tidak ada yang akan tahu bedanya.

Jay Atkinson
sumber
2

Pemain baru di kota: git-remote-hg . Ini memberikan dukungan penghubung asli di git.

Hanya:

hg init ../hgrepo
git push hg::$PWD/../hgrepo
FelipeC
sumber
1

Di Gitfolder dengan semua repositori Git saya, saya membuat Git2Hg.cmdfile dengan konten berikut:

set PATH=%PATH%;C:\Program Files\TortoiseHg
set PATH=%PATH%;C:\Program Files\Git\bin
hg convert %1

Sekarang saya dapat mengonversi repositori Git ke Hg dengan mengetik ini di CMD:

Git2Hg "Folder Name"
stenci
sumber
0

Plugin Hg-Git atau jika Anda menggunakan untuk windows atau migrasi dari satu ke yang lain kunjungi di sini 2 [Windows GIT]

dilshad
sumber