Saya hanya harus mengatasi masalah ini sendiri. Saya memiliki mesin windows XP dengan server windows terpisah yang menghosting VisualSVN Server .
Saya juga memiliki TortoiseHG terinstal serta Klien Baris Perintah Subversi CollabNet .
<Enable Convert Extension w/ Tortoise Hg 2>
Terima kasih banyak kepada bgever karena telah menunjukkan dalam komentar bahwa dengan TortoiseHg 2.0, mengaktifkan ekstensi konversi lebih mudah dari sebelumnya. Seperti yang dia katakan
Dengan TortoiseHG 2.0 ini telah dibuat jauh lebih sederhana: Jalankan Meja Kerja TortoiseHG dari menu Start. Pilih File -> Pengaturan. Pilih Ekstensi dari daftar. Centang kotak 'convert' dan klik OK. Itu dia! Tidak perlu mencoba membuat file konfigurasi lagi dan mencarinya di sistem file. - bgever 11 Maret pukul 7:56
</Enable Convert Extension w/ Tortoise Hg 2>
<Enable Convert Extension Manually>
Untuk mengonversi repositori dari SVN ke HG, saya mengikuti langkah-langkah ini:
1) Buka C: \ Program Files \ TortoiseHg \ Mercurial.ini
EDIT
FYI - Tortoise Hg telah memindahkan file ini ke
- XP atau yang lebih lama - C: \ Documents and Settings \ USERNAME \ Mercurial.ini
- Vista atau yang lebih baru - C: \ Users \ USERNAME \ Mercurial.ini
File itu sebagian besar akan kosong dan Anda hanya akan mencantumkan apa yang ingin Anda timpa di sana. Jika itu yang Anda miliki, cukup tambahkan dua baris ini ke bagian paling akhir file:
[extensions]
convert =
2) Cari baris yang dimulai dengan
[ekstensi]
3) Di bawahnya Anda akan melihat daftar kata kunci, yang diberi tanda titik koma (;) di setiap baris
4) Temukan baris yang bertuliskan
; mengkonversi =
dan hapus titik koma sehingga terbaca
mengkonversi =
</Enable Convert Extension Manually>
5) Buka command prompt dan arahkan ke direktori yang Anda inginkan untuk membuat folder hg baru (proses akan membuat folder baru bernama yourvnreponame-hg di direktori tempat command prompt terbuka).
6) Gunakan perintah ini
hg mengkonversi file: /// y: / yourvnreponame
Saya menemukan bahwa alat konversi dapat memiliki masalah dengan repositori jaringan, jadi saya harus memetakan drive ke sana, tetapi ini berfungsi dengan baik untuk saya.
sumber
Mercurial memiliki ekstensi konversi built-in untuk ini .
sumber
Untuk mengonversi Repo SVN menjadi Repo HG DAN menyalinnya ke server lain, Anda memerlukan beberapa hal.
convert
ekstensi ke Tortoise. Mulai Meja Kerja TortoiseHG dari menu Start. PilihFile -> Settings
. PilihExtensions
dari daftar. Centangconvert
kotak dan klik OK.Pertama konversi…
\\server\folder
Jangan memetakan folder SVN Repo itu sendiri. Petakan folder tepat di atasnya) Berikan huruf pada drive yang dipetakan, sepertiY:\
CD /D Y:\
Y:\
jenis prompt:hg convert y:/RepoName
(gunakan nama Repo saat ini) Berhati-hatilah dengan garis miring ke depan dan ke belakang. Yang ada di perintah adalah garis miring. Juga, jika namanya memiliki spasi, tulis nama dalam kutipan. (yaituY:/"My Repo folder"
)Kedua, kloning…
File -> Clone Repository
sumber
init
menyimpan repositori pertama?Tidak ada yang masih tidak menyebutkan hgsubversion ( Extension Wiki ), yang dapat melakukannya tanpa sakit kepala apapun (tidak termasuk kasus yang jarang terjadi dan pohon tertentu).
Cukup tambahkan ekstensi, aktifkan dan
hg clone SVN_REPO
ke repo lincah lokalsumber
Ini ada di FAQ TortoiseHg :
Jadi mungkin saja - Saya menggunakan Linux jadi saya belum mencoba sendiri.
sumber
Saya baru saja mengonversi repo SVN jarak jauh dengan auth HTTP menjadi repo Mercurial, dan izinkan saya memberi tahu Anda, tidak banyak dokumentasi tentang cara melakukan ini. Saya harus mengunduh sumber Mercurial dan menginstalnya sendiri, menggunakan paket sumber, dengan cara itu pengikatan SVN akan bekerja dengan cara yang benar.
Saya menginstalnya seperti:
Yang bekerja dengan baik di kotak Server 2003 saya. Sekarang saya dapat mengonversi repo SVN dengan cara yang benar, dengan melakukan sesuatu seperti ini:
Dokumentasi untuk ConvertExtension di situs Mercurial tidak terlalu jelas, tetapi dikatakan sebagai berikut:
Jadi sekarang saya hanya menggunakan versi yang berdiri sendiri untuk mengonversi, dan TortoiseHg untuk pekerjaan VCS yang sebenarnya.
sumber
lebih baik terlambat daripada tidak sama sekali ...
Dua jawaban untuk harga satu ...
Jika ini adalah repo publik sumber terbuka, Anda dapat menggunakan http://svn2github.com/add/ yang membutuhkan waktu sekitar setengah jam untuk mengkloning repo itu ke GitHib dan kemudian menariknya ke Hg.
Keuntungan menggunakan
hg convert
adalah dapat dilanjutkan. Mengonversi SVN ke Hg bisa memakan waktu berhari - hari . Jika Anda menghentikannya, ini akan dilanjutkan dari tempat yang ditinggalkannya.Di bawah ini adalah file batch yang saya tulis karena Codeplex SVNbridge sampah. Repo dalam contoh ini memang membutuhkan beberapa hari untuk mengambil seluruh sejarah (Saya di Australia jadi latensi mungkin menjadi faktor). Saya ingin berpikir itu memberi server TFS di suatu tempat pemukulan yang baik.
File batch ini dapat dijalankan kapan saja untuk menarik pembaruan dari sumber SVN jika kebetulan itu adalah satu-satunya yang tersisa di bumi yang sebenarnya masih menggunakan SVN. Saya belum mengujinya jadi lihat apa yang terjadi jika Anda melakukan ini jadi jika saya jadi Anda, saya akan meninggalkan cabang asli jika Anda akan mengedit repo.
Masalahnya
robocopy shamap
adalah mempertahankan riwayat SVN jika Anda mengkloning repo Hg, shamap bersifat sementara - periksa file batch & shamap in (saya akan melakukannya di cabang baru).kumpulan ...
sumber
Menggunakan
convert
ekstensi Mercurial:convert=
ke[extensions]
bagian .hgrc seperti ini:sudo apt-get install python-subversion
hg convert
perintahhg convert -h
bantuanhg convert http://[svnserver]/[Project] --source-type svn [DestinationDir]
(lihat catatan 2)hg push https://[mercurialserver]/[Project]
catatan : Anda bahkan dapat mengulangi perintah hg convert untuk menyertakan perubahan baru yang dibuat di repositori svn setelah konversi sebelumnya.
catatan 2 : Ketika hg convert tidak berfungsi menggunakan
http://
atausvn://
Anda dapat terlebih dahulu memeriksa repositori Subversion (atau memperbarui yang sudah ada) dan mengonversi menggunakan checkout lokal; contoh:hg convert [DirectoryOfLocalCheckout] --source-type svn [DestinationDir]
sumber