Gương github để Gitlab


11

Trong một gitlab địa phương, tôi đã tạo một bản sao của dự án nova ( https://github.com/openstack/nova ).

Làm cách nào để giữ repo nova cục bộ đồng bộ với github, cập nhật có thể một lần mỗi giờ hoặc mỗi ngày?

Tôi muốn một giải pháp tương tự như những gì được mô tả ở đây cho bitnami: http://wiki.bitnami.com/Appluggest/BitNami_GitLab#Keeping_in_sync_with_the_GitLab_Vposeective_at_GitHub

(Tôi đã sử dụng Devstack để cài đặt Openstack.)

Câu trả lời:


6

GitLab hiện đã tích hợp tính năng này!
Vì GitLab EE 8.2 nên nó được hỗ trợ . Hoan hô!

Kéo từ một kho lưu trữ từ xa

Bạn có thể thiết lập một kho lưu trữ để tự động có các nhánh, thẻ và cam kết được cập nhật từ kho lưu trữ ngược dòng.
...

Khi tạo một dự án mới, bạn có thể bật phản chiếu kho lưu trữ khi bạn chọn nhập kho lưu trữ từ "Bất kỳ repo nào bằng URL". Nhập URL đầy đủ của kho Git để lấy từ và nhấp vào hộp kiểm Kho lưu trữ gương .

Phản chiếu tự động GitLab

Đối với một dự án hiện có, bạn có thể thiết lập tính năng kéo gương bằng cách truy cập Cài đặt của dự án ➔ Kho lưu trữ và tìm kiếm phần "Kéo từ kho lưu trữ từ xa". Chọn hộp "Kho lưu trữ gương" và nhấn Lưu thay đổi ở dưới cùng.
...


1
Ví dụ của họ sử dụng gitlab, tôi đã theo dõi chính xác ngoại trừ thay thế phần đó bằng Github và điều cập nhật không bao giờ kết thúc ...
MarcusJ

@MarcusJ Chính xác là như vậy ở đây, bạn đã tìm ra giải pháp chưa?
MemphiZ

Đã được một thời gian kể từ khi tôi phải làm điều này, nhưng tôi nghĩ rằng những gì tôi đã làm là sử dụng url ssh theo định dạng của ssh: //git@gitlab.com: UserName: RepoName.git
MarcusJ

Tôi vừa thực hiện công việc này, kéo từ github sang gitlab thật dễ dàng nếu repo của bạn ở chế độ công khai, chỉ cần dán URL này trong cài đặt gitlab : https://github.com/yourGithubUserName/repoName.git, sau đó chọn phương thức Mật khẩu trong hộp tổ hợp và để trống hộp văn bản mật khẩu
knocte

4

Nếu bạn không bao giờ cần các xác nhận cục bộ, công thức sau đây sẽ hoạt động:

Nhân bản repo với --mirror:

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

Sau đó, trong một cronjob, bạn làm điều này để cập nhật hàng giờ:

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

Việc --mirrorthiết lập các refspec theo cách mà các lần tìm nạp tiếp theo sẽ cập nhật tất cả các ref địa phương, do đó bạn không cần phải hợp nhất các thay đổi trong. Tất nhiên điều đó có nghĩa là các cam kết bị đẩy vào repo đó bị mất.


Điều này dường như không trả lời được câu hỏi, đó là lấy một tấm gương trong GitLab.
Ken Williams


0

Tạo một công việc định kỳ để cập nhật repo


Làm thế nào để thiết lập trong gitlab?
dùng186107

2
Cập nhật câu hỏi của bạn với các chi tiết bạn yêu cầu, những gì bạn đã thử và vấn đề chính xác là gì.
Drew Khoury

0

Bạn có thể làm điều này bằng cách sử dụng các công việc cron .

Trong loại thiết bị đầu cuối của bạn crontab -e(để chỉnh sửa crontab của bạn) và thêm một dòng mới ở dưới cùng với sau đây.

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

Nó sẽ chạy một bản sao mỗi ngày vào nửa đêm.


Tôi hy vọng nó là cập nhật gia tăng. không cần tải lại tất cả.
dùng186107
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.