2014-10-03 15 views
6

Tôi gặp một số vấn đề lạ khi di chuyển kho git cũ của tôi nằm trong một redmine, đến kho lưu trữ Gerrit mới của tôi.Repository Migration to Gerrit, git push --mirror trả về refs/meta/config (không thể xóa cấu hình dự án)

Về cơ bản tôi đã làm một

git clone --mirror ssh:// .... old-repo.git 
cd old-repo.git/ 
git push --mirror ssh:// .... new-gerrit-repo 

Vâng, bây giờ tôi lần đầu tiên có một số cảnh báo:

remote: (W) a01300f: commit message lines >70 characters; manually wrap lines 
remote: (W) 8def171: commit subject >65 characters; use shorter first paragraph 

mà tôi đoán tôi có thể bỏ qua, bởi vì kho ban đầu vẫn sẽ tồn tại như tài liệu tham khảo.

vấn đề chính của tôi là lỗi này:

! [remote rejected] refs/meta/config (cannot delete project configuration) 
error: failed to push some refs to ssh:// .... new-gerrit-repo 

Sau khi một số đọc tôi phát hiện ra, rằng đây refs/meta/config chi nhánh chỉ chứa một số quy tắc cụ thể dự án cho Gerrit. Nó có một vài tập tin cấu hình cho parametrizing Gerrit. (về cơ bản là trang Tùy chọn dự án trong tab "Chung" Gerrit) Không có tệp nguồn liên quan đến dự án.

Ai đó có thể giúp tôi không? Là nó tiết kiệm để bỏ qua lỗi này và tiếp tục với việc di chuyển?

Truy cập push; đọc; gửi quyền được cung cấp cho Quản trị viên trên refs/meta/config. Không có gì giúp được.

Cảm ơn mọi thư!

Trả lời

3

Refs/meta/config ref thực sự chỉ dành cho cài đặt Gerrit cụ thể (bao gồm nhưng không giới hạn đối với cài đặt kiểm soát truy cập) cho dự án. Tùy thuộc vào nguồn và mục tiêu nó có thể hoặc có thể không có ý nghĩa để di chuyển nó, nhưng bạn không thể làm điều đó thông qua --mirror vì đó là tương đương với xóa và tái tạo ref và Gerrit rõ ràng cấm xóa refs/meta/config.

Những gì bạn có thể làm là phản chiếu tất cả các thay đổi khác và sao chép trạng thái của nhánh refs/meta/config theo cách thủ công, nếu đó là thứ gì đó trong đó đáng để lưu giữ.

+0

Kho lưu trữ ban đầu không có refs/meta/config và do đó, tùy chọn #--mirror cho 'git push' cũng cố xóa nó khỏi Gerrit. Vì vậy, làm thế nào để tôi phản ánh tất cả các ref khác nhưng bỏ qua refs/meta/config? – Fl0R1D3R

+0

Bạn không thể sử dụng tùy chọn '--mirror'. Bạn sẽ phải đẩy refs thông qua các mẫu riêng lẻ, như 'refs/heads/*: refs/heads/* refs/tags/*: refs/tags/*' và vân vân. –

+0

Trong thực tế, bạn * có thể * sử dụng '--mirror' nếu bạn chỉ cần thực hiện' git fetch ssh: // ... refs/meta/config: refs/meta/config' trước đó. – sschuberth

Các vấn đề liên quan