2009-03-24 26 views
6

Hiện tại sau khi tạo chi nhánh phát hành, nhưng khi chúng tôi có thời gian trước khi phát hành, đôi khi tôi mở toàn bộ chi nhánh để chỉnh sửa và sau đó khóa tất cả tệp để ngăn bất kỳ ai sửa đổi bất kỳ điều gì trong thời gian "đóng băng" phát hành chi nhánh.Khóa chi nhánh trong lực lượng?

Có cách nào tốt hơn không? Làm theo cách hiện tại của tôi có vẻ giống như việc sử dụng tính năng khóa không chính xác, có cách nào tốt hơn để giữ cho ai đó kiểm tra mã mà không cần sử dụng các nhánh hay không. Tôi mặc dù P4 bảo vệ nhưng tôi không phải là quản trị viên trên trường hợp perforce này, và cũng đối phó với các tập tin bảo vệ tại tiềm năng 100 dòng sẽ nhận được rườm rà là tốt.

Bất kỳ ý tưởng nào?

Trả lời

0

Bảo vệ P4 có lẽ là câu trả lời đúng cho hầu hết mọi người như được giải thích trong các câu trả lời khác. Tuy nhiên, trong tổ chức của tôi, tôi không thể là quản trị viên để thực hiện việc này là có một tập lệnh kích hoạt trong lực lượng đọc một tệp văn bản mà người quản trị không có quyền ghi và kiểm tra xem nhánh có xuất hiện trong danh sách hay không. Cách này truy cập quản trị như p4 bảo vệ sẽ cần là không cần thiết.

12

Tôi luôn làm việc này với tư cách kỹ sư xây dựng. Tôi sử dụng 'p4 bảo vệ' để hạn chế truy cập của mọi người để cây để read-only: (. Giả định rằng nhóm 'tất cả mọi người' là đúng quy định)

super group everyone * -//depot/project/branch/... 
read group everyone * //depot/project/branch/... 
super user me * //depot/project/branch/... 

Dòng đầu tiên đóng cửa tất cả các quyền cho tất cả người dùng đến chi nhánh

Dòng thứ hai thiết lập lại quyền đọc cho mọi người.

Dòng cuối cùng thiết lập lại tất cả các quyền đối với tôi.

+0

Bạn có cần phải là quản trị viên thực sự để thực hiện việc này không? Ngoài ra, chỉ có một tập tin bảo vệ cho toàn bộ kho, phải không? Một lỗi chính tả và toàn bộ kho hàng sẽ không hoạt động đúng không? Đây là những lý do tôi đã cố gắng tìm một giải pháp thay thế để bảo vệ, nhưng vẫn, nếu đó là cách duy nhất tôi sẽ thực hiện với điều đó –

+1

Bạn phải là quản trị viên để thay đổi các biện pháp bảo vệ (đó là định nghĩa của quản trị viên trong lực lượng.) Trước khi thay đổi của bạn được chấp nhận, tệp được kiểm tra lỗi. Tôi có một vài trăm mục trong sự bảo vệ của tôi, nhưng nó theo dõi tốt với yêu cầu kinh doanh của tôi, vì vậy nó cảm thấy sạch sẽ và hiển nhiên. – Sniggerfardimungus

2

p4 bảo vệ chắc chắn là cách tốt hơn để đi - đó là những gì nó có cho. Tôi thực sự khuyên bạn nên đưa tất cả người dùng của bạn vào các nhóm và chỉ sử dụng các nhóm trong bảng bảo vệ của bạn - dễ quản lý hơn nhiều.

Bạn có thể bảo vệ ở bất kỳ cấp độ chi tiết nào bạn thích, vì vậy không khó sử dụng. Cũng lưu ý rằng bản phát hành máy chủ 2008.1 có một tính năng bảo vệ mới cho phép bạn chỉ định những gì bạn có thể làm theo một cách hơi khác. Thay đổi lưu ý:

#152278 ** 
    'p4 protect' now allows specification of permission 'rights'. 
    Previously, 'p4 protect' only allowed using permission levels 
    which include the specified access (ie 'read') and also all 
    of its lesser permissions (ie 'read' = 'read' + 'list'). 
    Permission rights make it possible to deny individual rights 
    without having to re-grant lesser rights. The new 
    permission rights are '=read', '=branch', '=open', 
    and '=write'. This functionality was previously undocumented, 
    and is now fully supported for 2008.1 

Nếu bạn thực sự có một vấn đề với việc phải có một admin để khóa & unlock này, thì bạn nên có một cái nhìn tại "chủ sở hữu nhóm" tính năng được giới thiệu trong 2007,3. Điều này sẽ cho phép người dùng không phải là siêu có thể thêm & xóa mọi người khỏi nhóm. Vì vậy, kết hợp với bảng bảo vệ. I E. yêu cầu quản trị viên trang web thiết lập bảng bảo vệ và hạn chế quyền đối với nhóm có tên "Rel 1.0 Authorized" và đặt bạn làm chủ sở hữu nhóm. Sau đó, bạn có thể thêm và xóa người dùng (hoặc nhóm con) khỏi nhóm đó để kiểm soát quyền truy cập.

Tùy chọn kích hoạt là một khả năng, nhưng bạn vẫn cần phải là quản trị viên để thiết lập trình kích hoạt ngay từ đầu. Bạn cũng có thể ảnh hưởng đến hiệu suất của tất cả các bài gửi, đó là một cái gì đó để tìm cho ra. Nhưng vấn đề chính với trình kích hoạt là bạn sẽ sử dụng chúng để mô phỏng tính năng tích hợp được thiết kế cho mục đích đó - tức là bảng bảo vệ. Và, nếu bạn muốn an toàn, bạn vẫn sẽ cần phải tìm cách ngăn chặn bất kỳ ai khác sửa đổi tệp tham chiếu. Nó chỉ có vẻ như rất nhiều công việc để mô phỏng một tính năng hiện có.

2

Là một bổ sung nhỏ cho một trong các câu trả lời khác. Trước tiên, hãy thiết lập nhóm "mọi người" có tất cả người dùng trong đó.Sau đó, thêm điều này vào p4 bảo vệ

write group everyone * -//depot/project/1.0/... 
read group everyone * //depot/project/1.0/... 
write group 1.0 * //depot/project/1.0/... 

Điều này sẽ cho phép bạn tạo nhóm "1.0" mà bạn có thể thêm bất kỳ người dùng nào được phép ghi quyền truy cập.

Nếu bạn đang sử dụng máy chủ 2008.1, bạn có thể thực hiện việc này.

=write group everyone * -//depot/project/1.0/... 
write group 1.0 * //depot/project/1.0/... 

Dòng đầu tiên chỉ xóa quyền truy cập ghi (không đọc và liệt kê) khỏi nhóm mọi người.

2

Cách thực hiện điều này trong Perforce hiện đại là sử dụng các nhánh có tên cập nhật tại chỗ trên hệ thống cục bộ của bạn và có thể có quyền được áp dụng để khuyến khích bạn làm điều đúng khi hợp nhất và sao chép giữa các luồng.

Bạn có thể tùy chọn hạn chế luồng để chỉ chủ sở hữu luồng mới có thể đăng ký (và bạn có thể khóa luồng để không ai nhưng chủ sở hữu có thể chỉnh sửa thuộc tính). Xem http://www.perforce.com/perforce/doc.current/manuals/p4guide/chapter.codelines.html#codelines.streams