Cermin github ke Gitlab


11

Dalam gitlab lokal saya membuat salinan project nova ( https://github.com/openstack/nova ).

Bagaimana cara menjaga repo nova lokal saya sinkron dengan github, memperbarui mungkin sekali per jam atau per hari?

Saya ingin solusi yang mirip dengan apa yang dijelaskan di sini untuk bitnami: http://wiki.bitnami.com/Applications/BitNami_GitLab#Keeping_in_sync_with_the_GitLab_repository_at_GitHub

(Saya menggunakan Devstack untuk menginstal Openstack.)

Jawaban:


6

GitLab sekarang memiliki fitur ini bawaan !
Sejak GitLab EE 8.2 itu didukung . Hore!

Menarik dari tempat penyimpanan jarak jauh

Anda dapat mengatur repositori agar cabang, tag, dan komitnya diperbarui secara otomatis dari repositori hulu.
...

Saat membuat proyek baru, Anda dapat mengaktifkan pencerminan repositori saat Anda memilih untuk mengimpor repositori dari "Repo apa saja dengan URL". Masukkan URL lengkap dari repositori Git untuk tarik dari dan klik pada repositori Cermin kotak centang.

Mirroring otomatis GitLab

Untuk proyek yang sudah ada, Anda dapat mengatur cermin menarik dengan mengunjungi proyek Anda Pengaturan ➔ Repository dan mencari "Tarik dari repositori jauh" bagian. Centang kotak "Mirror repository" dan tekan Simpan perubahan di bagian bawah.
...


1
Contoh mereka menggunakan gitlab, saya mengikutinya persis kecuali mengganti bagian itu dengan Github, dan hal yang memperbarui tidak pernah selesai ...
MarcusJ

@ MarcusJ Sama persis di sini, apakah Anda menemukan solusi?
MemphiZ

Sudah lama sejak saya harus melakukan ini, tapi saya pikir apa yang saya lakukan adalah menggunakan ssh url dalam format ssh: //git@gitlab.com: UserName: RepoName.git
MarcusJ

Saya baru saja membuat pekerjaan ini, menarik dari github ke gitlab mudah jika repo Anda bersifat publik, cukup tempel URL ini dalam pengaturan gitlab:, https://github.com/yourGithubUserName/repoName.gitlalu pilih metode Kata sandi di kotak kombo dan biarkan kotak teks kata sandi kosong
knocte

4

Jika Anda tidak pernah memerlukan komit lokal, resep berikut akan berfungsi:

Kloning repo dengan --mirror:

git clone --mirror https://github.com/openstack/nova.git

Kemudian dalam cronjob, Anda melakukan ini untuk pembaruan setiap jam:

0 * * * * cd /path/to/nova.git && git fetch

The --mirrorset up refspecs sedemikian rupa sehingga fetch berikutnya akan memperbarui semua ref lokal, sehingga Anda tidak perlu untuk menggabungkan perubahan. Tentu saja itu artinya bahwa komit mendorong ke repo yang hilang.


Ini sepertinya tidak menjawab pertanyaan, yaitu untuk mendapatkan cermin di GitLab.
Ken Williams


0

Buat pekerjaan cron untuk memperbarui repo


Bagaimana cara mengatur di gitlab?
user186107

2
Perbarui pertanyaan Anda dengan perincian yang Anda butuhkan, apa yang sudah Anda coba, dan apa masalah sebenarnya.
Drew Khoury

0

Anda dapat melakukan ini menggunakan pekerjaan cron .

Dalam tipe terminal Anda crontab -e(untuk mengedit crontab Anda) dan tambahkan baris baru di bagian bawah dengan yang berikut.

* 0 * * * git clone ssh://username@hostname:port/repo

Ini akan menjalankan klon setiap hari di tengah malam.


Saya harap ini adalah pembaruan inkremental. tidak perlu mengunduh lagi.
user186107
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.