Mirror GitHub ถึง Gitlab


11

ใน gitlab ท้องถิ่นฉันสร้างสำเนาโครงการโนวา ( https://github.com/openstack/nova )

ฉันจะรักษา repo nova ในพื้นที่ให้ตรงกับ github ได้อย่างไรอาจอัปเดตหนึ่งครั้งต่อชั่วโมงหรือต่อวัน

ฉันต้องการโซลูชันที่คล้ายกับสิ่งที่อธิบายไว้ที่นี่สำหรับ bitnami: http://wiki.bitnami.com/Applications/BitNami_GitLab#Keeping_in_sync_with_the_GitLab_repository_at_GitHub

(ฉันใช้ Devstack เพื่อติดตั้ง Openstack)

คำตอบ:


6

ตอนนี้GitLabมีคุณสมบัตินี้ในตัวแล้ว!
ตั้งแต่ GitLab EE 8.2มันได้รับการสนับสนุน ไชโย!

ดึงจากที่เก็บข้อมูลระยะไกล

คุณสามารถตั้งค่าพื้นที่เก็บข้อมูลให้มีกิ่งก้านแท็กและการกระทำที่อัปเดตโดยอัตโนมัติจากที่เก็บอัปสตรีม
...

เมื่อสร้างโครงการใหม่คุณสามารถเปิดใช้งานการจำลองพื้นที่เก็บข้อมูลเมื่อคุณเลือกที่จะนำเข้าพื้นที่เก็บข้อมูลจาก "ใด ๆ repo ด้วย URL" ป้อน URL แบบเต็มของที่เก็บ Git เพื่อดึงและคลิกที่ช่องทำเครื่องหมายที่เก็บ Mirror

การทำมิเรอร์อัตโนมัติ GitLab

สำหรับโครงการที่มีอยู่คุณสามารถตั้งค่าการดึงมิเรอร์ได้โดยไปที่การตั้งค่า project พื้นที่เก็บข้อมูลของโครงการและค้นหาส่วน "ดึงจากที่เก็บระยะไกล" ทำเครื่องหมายในช่อง "Mirror Repository" แล้วกดบันทึกการเปลี่ยนแปลงที่ด้านล่าง
...


1
การใช้งานของพวกเขาตัวอย่างเช่น gitlab, ผมทำตามมันตรงยกเว้นแทนที่ว่าเป็นส่วนหนึ่งกับ Github และสิ่งปรับปรุงไม่เสร็จสมบูรณ์ ...
MarcusJ

@MarcusJ เหมือนกันตรงนี้คุณหาวิธีแก้ไหม?
MemphiZ

เป็นเวลานานแล้วที่ฉันต้องทำสิ่งนี้ แต่ฉันคิดว่าสิ่งที่ฉันทำคือใช้ URL ในรูปแบบของ ssh: //git@gitlab.com: ชื่อผู้ใช้: RepoName.git
MarcusJ

ฉันเพิ่งทำงานนี้การดึงจาก github ไปยัง gitlab นั้นง่ายถ้า repo ของคุณเป็นแบบสาธารณะเพียงแค่วาง URL นี้ในการตั้งค่า gitlab: https://github.com/yourGithubUserName/repoName.gitจากนั้นเลือกวิธีการรหัสผ่านใน combobox และปล่อยให้กล่องข้อความรหัสผ่านว่างเปล่า
knocte

4

หากคุณไม่ต้องการรับค่าคอมมิชชันท้องถิ่นสูตรต่อไปนี้จะใช้ได้:

ลอกแบบ repo ด้วย--mirror:

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

จากนั้นใน cronjob คุณทำสิ่งนี้เพื่ออัปเดตรายชั่วโมง:

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

การ--mirrorตั้งค่า refspecs ในลักษณะที่การดึงข้อมูลที่ตามมาจะอัปเดตการอ้างอิงในท้องถิ่นทั้งหมดดังนั้นคุณไม่จำเป็นต้องรวมการเปลี่ยนแปลงเข้าด้วยกันแน่นอนว่านั่นหมายความว่าคอมมิชชันที่ผลักดันไปยัง repo นั้นหายไป


ดูเหมือนจะไม่ตอบคำถามซึ่งก็คือการได้กระจกใน GitLab
Ken Williams


0

สร้างงาน cron เพื่ออัพเดท repo


วิธีการตั้งค่าใน gitlab?
user186107

2
อัปเดตคำถามของคุณด้วยรายละเอียดที่คุณต้องการสิ่งที่คุณได้ลองและปัญหาที่แน่นอนคืออะไร
Drew Khoury

0

คุณสามารถทำได้โดยใช้งาน cron

ในประเภทเทอร์มินัลของคุณcrontab -e(เพื่อแก้ไข crontab ของคุณ) และเพิ่มบรรทัดใหม่ที่ด้านล่างด้วยต่อไปนี้

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

มันจะทำการโคลนทุกวันเวลาเที่ยงคืน


ฉันหวังว่ามันจะเป็นการปรับปรุงที่เพิ่มขึ้น ไม่จำเป็นต้องดาวน์โหลดทั้งหมดอีกครั้ง
user186107
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.