Lưu trữ nhiều kho lưu trữ (svn, hg, git)


8

Gần đây tôi đã có được một máy chủ chuyên dụng và cần chuyển một số kho lưu trữ đến nó từ một dịch vụ lưu trữ kiểm soát nguồn. Không có nhiều kinh nghiệm trong quản trị máy chủ tuy nhiên tôi không biết làm thế nào để tổ chức nó một cách hiệu quả. Những gì tôi tìm kiếm -

  1. svn.host.com, hg.host.com, git.host.com tên miền phụ sẽ bắt nguồn từ các repos khác nhau, thông qua các khóa SSH
  2. dễ dàng tạo ra các kho lưu trữ mới
  3. xác thực bằng cách sử dụng danh sách người dùng unix máy chủ, nhưng với quyền trên cơ sở từng dự án, cũng có quyền truy cập công khai chỉ đọc tùy chọn cho một số repos

Thật không may, bất kỳ thuật ngữ tìm kiếm nào tôi thử trên Google đều hướng tôi đến các giải pháp lưu trữ thương mại và không hướng dẫn cách tự triển khai. Tôi cần một cái gì đó giống như một giải pháp lưu trữ bị loại bỏ nhưng không cần người dùng có thể tạo các repos của riêng họ.

Bất kỳ đề xuất, hướng dẫn hoặc giải pháp kịch bản về nơi bắt đầu nghiên cứu? Một giải pháp nguồn mở cho giao diện quản trị để xử lý điều đó (hoặc ít nhất là đối với một số người sẽ hoàn hảo ...

Câu trả lời:


6

Tôi chỉ sử dụng Git, vì vậy tôi sẽ cố gắng ít nhất để giúp bạn với điều đó:

Nếu bạn không thấy bất kỳ rắc rối nào trong việc quản lý repos của mình thông qua dòng lệnh, gitosis sẽ thực hiện thủ thuật khá độc đáo.

Nếu bạn thực sự cần một giao diện web, bạn có thể xem repo.or.cz ( http://repo.or.cz/w/girocco.git ) hoặc gitorious ( http://gitorious.org/gitorious ) . Repo.or.cz thì xấu hơn, nhưng cách cài đặt dễ dàng hơn (gitorious là nguồn mở, nhưng nó cũng là phần mềm cung cấp năng lượng cho gitorious.org - họ không có nhiều động lực để viết các hướng dẫn hay)

Dưới đây là danh sách các tùy chọn toàn diện hơn: https://git.wiki.kernel.org/index.php/Githosting

Bất cứ ai trong số các tùy chọn đó sẽ cung cấp cho bạn dễ dàng tạo các kho lưu trữ mới.

Bây giờ, một lời cảnh báo: bạn không bao giờ nên sử dụng danh sách người dùng máy chủ unix cho quyền lưu trữ. Nó đủ dễ để gây rối, và kết quả rất dễ bị thảm họa (gitosis sử dụng một cấu hình tệp đơn giản và các phím ssh. Nên thực hiện thủ thuật cho bạn).

Một điều nữa, tôi không thấy lý do tại sao bạn cần phải có lật đổ, kho HG và Git. Hầu hết các dự án chỉ sử dụng một trong những lựa chọn đó. Quan tâm đến công phu tại sao?


Tôi có một số dự án, được tổ chức trong một số kho lưu trữ. Nhiều người cam kết không đặc biệt am hiểu công nghệ và do đó hg và git sẽ là một vấn đề đối với họ, vì vậy tôi giữ svn cho các dự án mở hơn. Cá nhân tôi sử dụng HG làm SCM của tôi. Tôi cũng là khách mời của một vài dự án cho bạn bè của tôi và một số người trong số họ sử dụng git làm SCM của họ. Không có cách nào để làm hài lòng tất cả mọi người như nó có vẻ :)
Kornel Kisielewicz

1
Ngoài ra, bạn có thể giải thích thêm về sự nguy hiểm của việc sử dụng danh sách người dùng unix cho quyền repo không?
Kornel Kisielewicz

3
Tại sao sử dụng danh sách người dùng unix cho kho lưu trữ là một điều xấu: mất độ chi tiết, mất tính di động. Nếu bạn cần thay đổi repos sang máy chủ khác, bạn sẽ phải di chuyển toàn bộ danh sách người dùng unix. Nếu bạn muốn ủy quyền cho quản trị viên, bạn phải cấp quyền root. Bây giờ, trên gitosis, nếu bạn muốn thay đổi máy chủ, bạn chỉ cần sao chép repo. Nếu bạn muốn ủy quyền cho quản trị viên, bạn chỉ cần thêm người dùng vào nhóm quản trị viên gitosis.
Tiago Fassoni

just_testing, đồng ý, điểm hợp lệ :)
Kornel Kisielewicz

2

SVN có thể được thực hiện với Apache WebDAV, trong một vhost, sử dụng xác thực unix và ACL cấp độ người dùng của chính họ. Tôi không biết gì về đồng bóng hay git, nhưng tôi hy vọng chúng cũng có thể được nối vào DAV.


1

Khi bạn muốn sử dụng SSH , về cơ bản bạn phải hạn chế các khóa bằng cách chỉnh sửa authorized_keystệp trên máy chủ. Đối với Mercurial, các cách chính để làm điều này là:

  • Bạn có thể sử dụng contrib/hg-sshtập lệnh để hạn chế các lệnh mọi người có thể thực thi khi đăng nhập bằng SSH. Tệp này chứa một tiêu đề để giải thích cách sử dụng nó, nhưng về cơ bản bạn thêm

    $ command="hg-ssh path/to/repo"
    

    phía trước của khóa trong authorized_keystập tin. Điều đó hạn chế khóa để nó chỉ có thể được sử dụng để đẩy và kéo vào kho lưu trữ được chỉ định.

  • Bạn cũng có thể sử dụng công cụ máy chủ đồng bóng của bên thứ ba nếu bạn muốn một cái gì đó như gitois . Điều này cho phép bạn quản lý người dùng và quyền truy cập của họ bằng cách chỉnh sửa các tệp trong kho lưu trữ quản trị đặc biệt.

Xem wiki Mercurial để biết một số công cụ tương tự khác cho SSH.

Đối với HTTP , có

  • Tập hgweblệnh CGI hoặc WSGI tích hợp (Nhanh) đi kèm với Mercurial. Điều đó xử lý đẩy và kéo, nhưng không cho phép tạo ra các kho lưu trữ mới - đăng nhập vào máy chủ cho điều đó.

  • Dự án RhodeCode của bên thứ ba . Điều này mang đến cho bạn một giao diện web giống như Bitbucket cho Mercurial nơi bạn có thể định cấu hình người dùng và quyền truy cập của họ. Nó hỗ trợ xác thực LDAP, vì vậy bạn có thể nối nó vào cơ sở dữ liệu người dùng Unix hiện có của mình.

Xem trang về kho xuất bản để biết thêm thông tin.


1

SCM-Manager có thể hoàn hảo cho nhu cầu của bạn:

Cách dễ nhất để chia sẻ và quản lý kho Git, Mercurial và Subversion của bạn qua http.

  • Cài đặt rất dễ dàng
  • Không cần hack các tệp cấu hình, SCM-Manager hoàn toàn có thể định cấu hình từ Giao diện web của nó
  • Không có Apache và không cần cài đặt cơ sở dữ liệu
  • Người dùng trung tâm, nhóm và quản lý cấp phép
  • Hỗ trợ vượt trội cho Git, Mercurial và Subversion
  • API dịch vụ web RESTFul đầy đủ (JSON và XML)
  • Giao diện người dùng phong phú
  • API plugin đơn giản
  • Các plugin hữu ích có sẵn (fe Ldap-, ActiveDirectory-, PAM-xác thực)

0

RhodeCode là một công cụ quản lý / trình duyệt kho lưu trữ nguồn mở với máy chủ đẩy / kéo tích hợp, LDAP / AD, hệ thống cấp phép và tìm kiếm toàn văn.

Bạn có thể thấy nó trực tiếp tại đây: http://demo.rhodecode.org/

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.