2010-06-29 28 views
13

Chúng tôi đang xem xét chuyển VCS thành git hoặc lật đổ. Tôi muốn chuyển sang git, nhưng subversion có một tính năng tốt đẹp mà tôi không thấy trong git: mỗi kiểm soát truy cập thư mục.Quyền đối với mỗi thư mục trên git

Hiện tại chúng tôi có kho dự án1, project2 trong cv, với các quyền khác nhau. Chúng tôi muốn có một kho lưu trữ duy nhất, với hai thư mục project1 & project2 với các quyền khác nhau. Nó có thể thực hiện được với git như với svn không?

Tôi biết các mô-đun con, có thể đạt được điều đó, nhưng mục đích của chúng tôi là có thể thực hiện một cam kết đơn lẻ với các thay đổi trong project1 & project2.

Chúng tôi chủ yếu có vấn đề về IP và muốn chắc chắn rằng một số người không thể đọc (không chỉ đẩy) một số thư mục. Vì vậy, là git lên cho những thách thức hoặc tôi sẽ phải sử dụng git-svn?

Cảm ơn

Trả lời

5

Đó là doable với một repo trung ương với truy cập (push/pull) bởi gitolite quản lý.
Xem its features.

Nếu bạn kết hợp với mô-đun con (mà bạn biết), bạn sẽ chỉ quản lý quyền truy cập cho mỗi repo hoặc mỗi nhánh và vẫn cam kết cả project1 và project2 (với hai lần commit trong trường hợp của một subrepo: xem this question)

Nếu bạn nhấn mạnh vào làm việc với một repo (mặc dù bạn phải tập hợp các dữ liệu có thể phát triển với vòng đời của riêng mình, mà phải làm cho họ ứng cử viên tốt cho module), sau đó các tính năng gitolite làm bao gồm:

tệp/dir Các hạn chế dựa trên NAME

Ngoài chi nhánh-tên hạn chế dựa, gitolite cũng cho phép bạn giới hạn những tập tin hoặc thư mục có thể được tham gia vào những thay đổi bị đẩy

dpk đề cập trong các ý kiến ​​rằng tính năng cuối cùng này (file/tên dir hạn chế) được nêu chi tiết trong tệp conf/example.conf của Gitolite.

+0

Vâng, thấy điều đó, nhưng có vẻ như với tôi rằng các điều khoản ở đây là về việc chặn push, không đọc trên nhân bản. Tôi hầu như không thấy những thứ nhân bản sẽ đi cùng với loại từ chối đọc này. – Wam

+0

@Wam: để đọc, bạn * có * để sử dụng cách tiếp cận submodule: gitolite sẽ ngăn chặn bất kỳ nhân bản và kéo từ một repo với các ACL đúng (và một submodule là một repo Git của riêng mình). Nói cách khác, nó sẽ chặn pull ở cấp repo hoặc branch. – VonC

+0

có, nhưng sau đó tôi mất "một cam kết đơn/đẩy/kéo đơn" chức năng – Wam

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