Saya baru-baru ini bermigrasi dari gitolite ke gitlab dan tugas rake resmi gitlab:import:repos
bekerja untuk saya. Saya menggunakan gitlab 6.1.0 (82f3446). Inilah yang saya lakukan:
-
rsync
repo telanjang dari gitolite kerepositories/{group}/
. Pastikan untuk mengganti{repository}
dengan nama repo gitolite, dan ubah nama host server gitlab Anda.rsync -rth --progress repositories/{repository}.git \ [email protected]:/home/git/repositories/{group}/
Di sini,
{group}
adalah nama grup pengguna tempat Anda ingin menambahkan repositori. Jika Anda tidak memiliki grup tertentu, pilihroot
sebagai nama grup. -
Perbaiki izin – hanya diperlukan saat
rsync
pengguna bukangit
:sudo chown -R git:git repositories/{group}/
-
cd ~/gitlab
-
Jalankan tugas rake untuk mengimpor semua repositori baru:
bundle exec rake gitlab:import:repos RAILS_ENV=production
Sekarang jika Anda masuk sebagai Administrator, Anda akan menemukan proyek baru ditambahkan.
Untuk informasi selengkapnya, lihat "Impor repositori kosong ke dalam instance proyek GitLab" di bawah http://{your-gitlab-server}/help/raketasks
.
Dalam kasus Anda, Anda dapat masuk ke sistem TKL lama dan menyinkronkan semua repo kosong ke instance baru, diikuti dengan impor.
Salah satu opsinya adalah:
- Kloning repo lama dari gitlab ke mesin dev.
- Buat repo kosong di gitlab baru.
- Tambahkan repo baru sebagai remote pada mesin dev.
- Dorong semuanya kembali ke repo baru.
- Hapus repo lama dari daftar repo jarak jauh.
Untuk membuat remote bernama newRepo, lakukan:git remote add newRepo gitlab.localhost.com:User/newRepo.git
(ganti url di bagian akhir dengan url untuk repo Anda)
Saya melakukannya secara praktis dengan cara berikut setelah membaca jawaban ChrisA, yang membuat saya sedikit pusing tentang bagaimana melakukannya secara praktis. Contoh menyalin repo dari github ke gitlab, untuk memperjelas sumber dan tujuan.
-
Kloning repo lama dari github ke mesin dev (yang membuat repo kosong):
$ git clone --mirror [email protected]:me/myrepo.git
-
Buat repo kosong di gitlab baru.
-
Tambahkan repo baru sebagai remote pada mesin dev.
$ cd myrepo.git $ git remote add newRepo [email protected]:me/myrepo.git
-
Dorong semuanya kembali ke repo baru.
$ git push --mirror newRepo
Itu saja.
Dengan cara ini menyalin semua cabang dan tag ke tujuan baru.
Anda sekarang dapat menghapus repo telanjang yang dikloning dari mesin dev Anda.