2009-08-28 27 views
6

Chúng tôi đã sử dụng CVS (với giao diện TortoiseCVS) trong nhiều năm cho cả điều khiển nguồn và kiểm soát tài liệu rộng (bao gồm các tệp nhị phân như Word, Excel, Framemaker, dữ liệu thử nghiệm, kết quả mô phỏng, v.v.). Không giống như các hệ thống kiểm soát phiên bản thông thường, 99% thời gian chúng tôi muốn ngăn chỉnh sửa đồng thời - khi người dùng bắt đầu chỉnh sửa tệp, phiên bản chỉnh sửa trước của tệp sẽ chỉ được đọc cho tất cả những người khác. Nhiều người trong số những người sẽ sử dụng này không phải là lập trình viên hoặc thậm chí là hiểu biết về máy tính, vì vậy chúng tôi cũng đang tìm kiếm một hệ thống để mọi người chỉ cần thêm tài liệu vào kho lưu trữ, kiểm tra và chỉnh sửa tài liệu (trừ khi có ai đó). khác hiện đang chỉnh sửa nó), và kiểm tra nó trở lại với tối thiểu là phiền phức.Hệ thống kiểm soát phiên bản nào được thiết kế tốt nhất để * ngăn chặn * chỉnh sửa đồng thời?

Chúng tôi đã làm việc này hợp lý với CVS + TortoiseCVS, nhưng hiện tại chúng tôi đang xem xét Subversion và Mercurial (và mở cho người khác nếu họ phù hợp hơn) để theo dõi phiên bản tốt hơn, vì vậy tôi đã tự hỏi cái nào đã hỗ trợ khóa tệp một cách minh bạch nhất. Ví dụ: chúng tôi muốn kích hoạt khóa độc quyền làm mặc định và chúng tôi muốn làm cho người khác vô tình gặp khó khăn khi bắt đầu chỉnh sửa tệp mà người khác đã kiểm tra. Ví dụ: khi ai đó kiểm tra tệp để chỉnh sửa, nó sẽ kiểm tra với cơ sở dữ liệu chính trước tiên ngay cả khi gần đây họ không cập nhật sandbox của mình. Có lẽ nó thậm chí sẽ không cho phép một người dùng kiểm tra một tài liệu nếu nó ra khỏi mạng và không thể kiểm tra với các bà mẹ.

+0

Wikipedia là một bài viết tuyệt vời so sánh các sản phẩm: [http://en.wikipedia.org/wiki/Comparison_of_revision_control_software](http://en.wikipedia.org/wiki/Comparison_of_revision_control_software) –

Trả lời

10

Subversion cung cấp khóa bắt buộc. Khi Propoerty svn:needs-lock được đặt, tệp được kiểm tra chỉ đọc và người dùng cần khóa tệp để nhận bản sao làm việc có thể ghi. Không người dùng nào khác có thể lấy cùng một tệp bị khóa từ đó.

+0

Nhưng bạn vẫn phải thực thi rằng tất cả các tệp đều có thuộc tính svn: needs-lock; không chỉ những cái hiện có mà cả những cái mới được thêm vào nữa. svn autoprops có thể làm điều đó nhưng sau đó bạn phải chắc chắn rằng mỗi máy khách có cấu hình autoprops chính xác. tsvn: autoprops là một tùy chọn khác nếu bạn chỉ sử dụng tortoiseSVN, nhưng nó sẽ không hoạt động nếu người dùng kiểm tra một thư mục con của dự án :-( –

+0

Điều này có thể thực hiện trong tệp cấu hình cho mọi máy khách (miscellany: enable-auto- props = yes, auto-props: * = svn: needs-lock) Kiểm tra thiết lập máy khách bằng một móc trước khi commit trên máy chủ từ chối checkins không bị khóa –

5

Tôi biết nó không có trong danh sách của bạn, nhưng chúng tôi đã hài lòng với Perforce. Bạn có thể ngăn nhiều Thanh toán với

quản trị Perforce bạn có thể sử dụng lệnh p4 typemap để đảm bảo rằng tất cả các file của một loại cụ thể (ví dụ , //depot/.../*.gif cho tất cả các tệp .gif) chỉ có thể được mở bởi một người dùng cùng một lúc. Xem Tham chiếu lệnh Perforce để biết chi tiết.

+0

So với P4, việc thực thi tính năng này của Subversion là "thiếu sót" Nó cao trong danh sách lý do tại sao một công ty sẽ chọn P4 trên SVN, và thấp trong danh sách các địa điểm của tôi trong SVN mà tôi mong đợi sẽ được cải thiện đáng kể trong tương lai gần. O o –

+0

Khi p4 thực hiện điều này với tôi, tôi chỉ " chmod u + w file "và đó là kết thúc của * rằng * vấn đề. p4 là công cụ kiểm soát phiên bản tồi tệ nhất từng được thiết kế. – jrockway

+0

Có thể lực lượng chặn người dùng sử dụng" công việc ngoại tuyến hòa giải "không? –

4

Âm thanh như Subversion với TortoiseSVN sẽ phù hợp với những hóa đơn. Như Arne Burmeister đã đề cập, bạn có thể đặt mặc định nó thành chế độ cần khóa, trong đó mọi tệp được kiểm xuất sẽ chỉ đọc cho đến khi bạn nhận được khóa trên đó. Thông qua việc sử dụng các móc, bạn có thể thông báo cho người dùng khác biết khi tệp bị khóa hoặc mở khóa.

TortoiseSVN tích hợp với trình thám hiểm Windows vì vậy đòi hỏi ít hiểu biết về máy tính.

Lưu ý rằng Subversion có tính năng "lấy cắp khóa", nhưng bạn có thể tắt tính năng này nếu bạn muốn sử dụng móc khóa PreLock.

+0

Miễn là các thành viên trong nhóm là hợp lý (có thể làm hiệu quả commu nication), không cần phải tắt tính năng "ăn cắp khóa". –

+0

Câu hỏi nêu rõ, "chúng tôi muốn làm cho người khác vô tình gặp khó khăn khi bắt đầu chỉnh sửa tệp mà người khác đã xem" – RedFilter

1

Tôi biết IBM ClearCase ngăn chặn điều đó. Chúng tôi sử dụng nó vì lý do đó trong công ty của chúng tôi.

+0

Mặc dù KHÔNG được thiết kế để ngăn việc chỉnh sửa đồng thời !!! – pablo

2

Bạn đề cập đến Mercurial và mặc dù là nhà phát triển Mercurial, tôi phải đồng ý với các đề xuất sử dụng Subversion. Mercurial là tất cả về cho phép mọi người phát triển trong một thời trang phân phối. Điều này bao gồm việc thực hiện các cam kết riêng tư chỉ được chia sẻ với những người khác sau này. Nói cách khác - Mercurial không cố gắng khóa các tập tin trên một máy chủ trung tâm (thậm chí không có khái niệm về một máy chủ trung tâm).

Đi với Subversion, hệ thống kiểm soát sửa đổi tập trung là tốt (tôi chỉ thử hệ thống nguồn mở, tôi không biết gì về hệ thống nguồn đóng). Nếu bạn muốn, bạn vẫn có thể thử nghiệm với hgsubversion "ở bên cạnh".

0

RCS gốc. Khi kiểm tra một tập tin, bạn khóa nó: "co -l filename". Sau đó, cho đến khi bạn kiểm tra lại nó ("ci filename"), không ai có thể thay đổi tệp.

0

Tôi không nghĩ rằng bất kỳ kiểm soát phiên bản được phân phối nào, như thủy ngân hoặc git, sẽ hoạt động cho bạn tại đây. SVN chỉ có các tính năng cơ bản nhất để khóa - và tệp được đặt chỉ đọc, giống như một số công cụ văn phòng, có nghĩa là bạn có thể chỉnh sửa, sau đó tìm thấy bạn không thể lưu nó cho đến khi bạn kiểm tra, sau đó kiểm tra chỉ để thấy rằng phiên bản máy chủ là khác nhau và bạn có thể mất phiên bản máy chủ hoặc phiên bản cục bộ của mình.

Tôi không thể tin là mình đang nói, nhưng nếu bạn muốn làm việc theo cách đó, thì nguồn hình ảnh an toàn là hệ thống duy nhất tôi biết được thiết kế như thế. Nếu bạn muốn có một phiên bản hiện đại/đáng tin cậy hơn, hãy xem Vault của sourcegear - mặc dù họ đã nỗ lực rất nhiều để tạo ra một thứ trông giống như vss nhưng hoạt động tốt trong môi trường giống như svn.

Nhưng có lẽ giải pháp quản lý tài liệu chuyên dụng sẽ tốt hơn - hoặc thậm chí có thể giống như máy chủ cổng thông tin.

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