Làm cách nào để đổi tên kho lưu trữ Git được tạo bằng gitolite?


85

Tôi đã tạo một kho lưu trữ Git bằng gitolite. Bây giờ tôi muốn đổi tên kho lưu trữ đó.

Tôi có thể làm cái này như thế nào?

Trong readme của gitolite nói rằng tôi không nên làm việc trực tiếp trên máy chủ. Nhưng tôi đoán tôi phải làm một số công việc trên máy chủ trong trường hợp này, phải không?


Câu hỏi hay và cảm ơn đã nhận xét về câu trả lời của tôi. Hôm nay tôi cần câu trả lời này;)

Câu trả lời:


135

Như đã nêu trong hướng dẫn sử dụng gitolite basic-admin :

đổi tên một repo

Điều này cũng tương tự; không có mã nào để làm điều này gitolite. Những gì bạn làm là:

  • đăng nhập vào máy chủ, cd $REPO_BASE(mặc định cd ~/repositories:) và

    mv old-name.git new-name.git

  • quay lại bản sao gitolite-admin của bạn, chỉnh sửa conf/gitolite.confvà thay thế tất cả các lần xuất hiện của old-namevới new-name. Sau đó thêm, cam kết và đẩy như bình thường.

Thứ tự của 2 bước này là quan trọng; không đảo ngược chúng :-)

Bước thứ ba là cần thiết trên gitolite3:

  • chỉnh sửa tệp gl-conftrong kho và thay đổi tên kho thành tên mới

Và tất nhiên, mọi người dùng nên cập nhật cấu hình bản sao của mình để trỏ đến tên repo mới.


7
Trên gitolite3, bạn cũng phải chỉnh sửa gl-confvà thay đổi tên kho lưu trữ.
Fernando Correia

4
đừng quên đặt url từ xa của bản sao cục bộ của repo thành tên mới : git remote set-url git@your.server:new-name.git, sau đó thực hiện một git fetchđể đảm bảo không có lỗi.
cneuro

Tôi đã thực hiện hai bước đầu tiên không đúng thứ tự trước khi đạt được câu trả lời này. FYI nó cũng hoạt động, chỉ cần rm -r new-name.gittrước mvlệnh.
Arnaud P

9

Tôi không rành về gitolite cụ thể, nhưng một cách tiếp cận có thể hiệu quả là tạo một kho lưu trữ hoàn toàn mới với tên chính xác, đẩy mã của bạn lên đó, rồi xóa kho cũ.


Từ những gì tôi biết nên giữ lịch sử. +1

1
Việc xóa kho cũ, tạo một kho mới và đẩy nội dung của kho cũ vào kho mới hoạt động. Cảm ơn!
Patrick

Dưới đây là các lệnh để đạt được điều này (giả sử rằng NewRepo đã được tạo trong Gitolite): // Trong repo cũ $ git remote add <remote-moniker> NewRepo $ git push --all --force NewRepo // Trong repo mới $ git pull Không cần hack config gitolite, và tất cả các lịch sử giữ lại :)
Matthew Skelton

0

Sử dụng Greg Hewgill làm ý tưởng, bạn có thể đổi tên kho lưu trữ trong tệp cấu hình. Bạn có thể muốn thử điều đó trên một kho lưu trữ giả trước. Mối nghi ngờ của tôi là tên cũ sẽ bị xóa, tên mới sẽ được tạo và bạn cần cập nhật nguồn gốc cục bộ của mình sau đó đẩy.


Rất tiếc, việc đổi tên kho lưu trữ trong tệp cấu hình không hoạt động. gitlolite thêm kho mới nhưng không xóa kho cũ. Tuy nhiên, việc sử dụng ý tưởng của Greg có hiệu quả.
Patrick

@Patrick: Thật tốt khi biết, tôi không cần đổi tên hoặc xóa tên.

-2

Một cách tiếp cận rõ ràng là tạo kho lưu trữ mới dưới dạng một kho lưu trữ trống, sau đó thực hiện như sau:

Giả sử cũ là CŨ và mới (trống) là MỚI:

# mkdir /tmp/1
# cd /tmp/1
# git clone OLD_REPO old
# git clone NEW_REPO new
# cd new
# git pull ../old
# git push origin master

Hoặc bạn có thể sử dụng trực tiếp repo từ xa cho OLD:

# mkdir /tmp/1
# cd /tmp/1
# git clone NEW_REPO new
# cd new
# git pull OLD_REPO
# git push origin master

Điều này sẽ lưu giữ tất cả lịch sử và sẽ cho phép gitolite xử lý nội bộ của nó. Ngoài ra, bạn sẽ phải cập nhật gitolite-admin nhưng không có giới hạn về thứ tự.

Điều này cũng hoạt động từ xa mà không có vấn đề.

Tuy nhiên, việc xóa kho lưu trữ OLD nên được thực hiện theo hướng dẫn của gitolite (cục bộ).

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.