2009-08-17 39 views
8

Có an toàn cho nhiều máy tính để đồng thời truy cập vào kho lưu trữ svn được lưu trữ trên hệ thống tệp được chia sẻ không?kho svn trên chia sẻ mạng Windows

Tôi đang tạo ứng dụng trong đó mỗi máy khách Windows có bộ tệp làm việc cục bộ và có thể đồng bộ hóa định kỳ với phần còn lại của nhóm. Từ quan điểm của máy chủ, tôi muốn dựa vào không có gì ngoại trừ một điểm gắn kết chia sẻ Windows. Giao thức URL của svn file: // có hỗ trợ các hệ thống tập tin được chia sẻ không, hay nó giả định rằng hệ thống tập tin là cục bộ?

Subversion docs đề cập đến các vấn đề với BDB và FSFS trong môi trường Win9x, nhưng không rõ ràng liệu các kho lưu trữ có được truy cập đồng thời thông qua tệp: // URL được an toàn trong các phiên bản Windows mới hơn hay không. vấn đề).

Sửa Ứng dụng tôi đang xây dựng sẽ sử dụng svn trực tiếp, vì vậy tôi sẵn sàng xây dựng một môi trường tương đối bó buộc nếu nó sẽ cho phép một môi trường hợp tác chia sẻ đồng thời an toàn.

+0

Vấn đề bạn đang thực sự cố gắng giải quyết/những khó khăn mà bạn phải làm việc xung quanh là gì? –

+0

Câu hỏi hay. Tôi đang xây dựng ứng dụng Windows dành cho máy tính để bàn với các tính năng cộng tác. Ứng dụng cần chạy trong một môi trường trong đó phương tiện truyền thông được chia sẻ được bảo đảm duy nhất là một gắn kết Windows (CIFS). Ngay bây giờ, tôi đã có một giải pháp hoạt động, nhưng tôi muốn sử dụng một trừu tượng như SVN hơn là đối phó với việc duy trì tất cả các khóa và các vấn đề xử lý tập tin bản thân mình, vì một số lý do. Về cơ bản, mô hình kiên trì của tôi là danh sách các bản ghi nhật ký giao dịch mà tôi phát lại khi ứng dụng bắt đầu. Vì vậy, "tất cả" tôi cần là một cách để cộng tác duy trì một danh sách theo thứ tự, và những xung đột không thể tránh khỏi. –

Trả lời

2

Tắt đầu của tôi (và tôi không thể tìm thấy bất kỳ thông tin trực tuyến nào), tôi nghĩ rằng nếu bạn đang sử dụng máy khách SVN hỗ trợ tệp: // protocol (TortoiseSVN, ví dụ), nên hoạt động chính xác.

Tuy nhiên, và rất tiếc là tôi không thể tìm thấy tài liệu, tôi nhớ có một số vấn đề với tệp: // protocol và SVN. Nếu có thể, tôi khuyên bạn nên thiết lập máy chủ SVN (VisualSVN hoạt động rất độc đáo và dễ cài đặt) thay vì dựa vào chia sẻ Windows.

Chỉnh sửa: Tôi tìm thấy this discussion trên Stackoverflow. Dường như không có vấn đề gì khi sử dụng giao thức tập tin.

Chỉnh sửa 2: Liên kết của Neil là liên kết tôi đã đọc một lúc và không khuyến khích giao thức tệp. Tuy nhiên, nếu sử dụng giao thức tệp: // có nghĩa là sự khác biệt giữa việc sử dụng và không sử dụng điều khiển nguồn, tôi khuyên bạn nên sử dụng ít nhất điều đó. Một số kiểm soát nguồn là tốt hơn không có gì.

+0

Tôi đồng ý với việc sử dụng VisualSVN trên một phần. – Nick

+8

Tôi không đồng ý mạnh mẽ với bản chỉnh sửa thứ hai của bạn - kiểm soát nguồn không đáng tin cậy kém hơn bất kỳ điều gì. –

11

Tài liệu Tortoise SVN thực sự mạnh mẽ ngăn cản nó - xem this link. .

Để tóm tắt:

file: // truy cập dành cho địa phương, single-user truy cập duy nhất, đặc biệt là kiểm tra và gỡ lỗi.

+1

Đó là các tài liệu TortoiseSVN, không phải tài liệu svn. Tôi tự hỏi cho dù đó là một giới hạn/ý kiến ​​của các guys TortoiseSVN, hoặc một vấn đề với svn chính nó. Ngoài ra, tôi sẵn sàng thực hiện nhiều nhượng bộ xung quanh các hạn chế về môi trường; nếu tôi có thể tìm thấy một tập hợp các yêu cầu hẹp mà * làm * làm việc, tôi sẽ vui vẻ hạn chế bản thân mình với họ (giả sử rằng một trong các yêu cầu không phải là "chạy một tiến trình máy chủ"). –

+1

Tôi bằng cách nào đó nghi ngờ rằng các nhà phát triển Tortoise biết thêm một chút về Subveersion hơn bạn hoặc tôi làm. Rùa được xây dựng trên mã Subversion, vì vậy tôi đoán đó là giới hạn Subversion cơ bản. –

+0

Họ chắc chắn biết nhiều hơn tôi, nhưng tôi sẽ không ngạc nhiên nếu đề xuất của họ là cho mục đích sử dụng khá chung. Tôi sẵn sàng thực hiện rất nhiều nhượng bộ để tránh viết mã chia sẻ tệp được phân phối của riêng tôi, vì vậy, tôi quan tâm nhiều hơn đến những gì có thể làm một cách an toàn, thay vì những gì được khuyến nghị. –

2

Tôi nghĩ bạn đang đặt mình vào các vấn đề với cách tiếp cận này. Windows CIFS (giao thức chia sẻ tệp windows) có rất nhiều vấn đề đã biết với việc mở khóa và sửa đổi đồng thời, do đó, hoặc là con chó chậm, không an toàn hoặc cả hai.

Nhiều, nhiều, giải pháp tốt hơn là thiết lập máy chủ SVN thực thay vì sử dụng URL: // URL.

+0

Tôi hoàn toàn hài lòng với "con chó chậm", khi nó quay ra. Ngay cả "mèo chậm" cũng sẽ ổn. Chỉ cần không "không an toàn". Tôi hiểu rằng việc thiết lập máy chủ là một cách tiếp cận tốt hơn, nhưng nó không phải là một lựa chọn cho sản phẩm này, thật đáng buồn. –

0

Cách chúng tôi đã thực hiện trên Windows là sử dụng Apache để phục vụ các tệp của chúng tôi. Here Chúng tôi rất hài lòng với thiết lập này.

+0

Hoặc bạn có thể có một công cụ làm điều đó cho bạn: máy chủ VisualSVN. – reinierpost

2

Đúng vậy ...

Tôi đã ở đó. Tôi cũng sử dụng hệ thống tập tin để chia sẻ "máy chủ svn" giữa một vài máy ... Điều duy nhất tôi nhận được là các tập tin bị hỏng và nhức đầu lớn ...

Cài đặt máy chủ svn (CollabNetSubversion Server), và bây giờ tất cả mọi thứ đang chạy trơn tru ... Ngoại trừ những lần tôi tự vặn nó ... nhưng đây là một câu chuyện khác ....

Chúc mừng.

Aldo

+0

Bạn đã gặp phải các vấn đề tham nhũng nào? Bạn có đang sử dụng BDB hay FSFS không? Bạn đang sử dụng loại hệ thống tệp nào? –

10

câu hỏi khác là tương tự, nhưng được yêu cầu tái: hiệu suất: Subversion protocol performance

Các SVN Sách khuyên bạn nên không sử dụng file: // giao thức cho nhiều người dùng

Choosing a Server Configuration:

Đừng bị quyến rũ bởi ý tưởng đơn giản về ha ving tất cả người dùng của bạn truy cập vào kho lưu trữ trực tiếp thông qua tệp: // URL. Ngay cả khi kho lưu trữ có sẵn cho tất cả mọi người thông qua một mạng chia sẻ, đây là một ý tưởng tồi. Nó loại bỏ bất kỳ lớp bảo vệ nào giữa người dùng và kho lưu trữ: người dùng có thể vô tình (hoặc cố tình) làm hỏng cơ sở dữ liệu kho lưu trữ, trở nên khó khăn để lấy kho lưu trữ ngoại tuyến để kiểm tra hoặc nâng cấp và nó có thể dẫn đến một sự cố cho phép tệp (xem phần “Hỗ trợ nhiều phương thức truy cập kho lưu trữ”). Lưu ý rằng đây cũng là một trong những lý do chúng tôi cảnh báo việc truy cập kho qua URL svn + ssh: // — từ quan điểm bảo mật, nó có hiệu quả giống như người dùng cục bộ truy cập thông qua tệp: // và nó có thể dẫn đến tất cả các vấn đề tương tự nếu người quản trị là không cẩn thận

+0

Thú vị ... cảm ơn vì liên kết! Tôi tự hỏi những vấn đề tham nhũng kho lưu trữ mà họ đang quan tâm. –

+2

IIRC, SVN sử dụng các tệp để khóa, không phải các khóa cấp hệ thống tệp thực (vì chúng không được hỗ trợ thống nhất trên các hệ thống tệp và hệ điều hành). Có thể cho một điều kiện chủng tộc tồn tại trên một mạng chia sẻ bởi vì các hoạt động hệ thống tập tin được giả định là nguyên tử (tức là di chuyển) không được đảm bảo là nguyên tử khi được truy cập qua mạng. Điều này đã được giải thích cho tôi một cách sâu sắc tại một điểm bởi các nhà phát triển SVN, nhưng tôi có thể đã quên một số chi tiết, nhưng tôi nghĩ đó là ý chính của nó. – rmeador

4

Từ quan điểm kỹ thuật của xem nó là hoàn toàn có thể sử dụng các file: // giao thức với nhiều người dùng:

các tham nhũng sẽ kHÔNG xảy ra vào cách sử dụng svn tiêu chuẩn , như subversion sử dụng cơ chế khóa riêng của nó trên FSFS. Nếu không, các SVN cuốn sách sẽ nhà nước rõ ràng để tránh một thiết lập như nó đã đề cập vấn đề này trong BDB phụ trợ.

Tuy nhiên, sự cố thực sự là cách giới hạn quyền truy cập vào cơ sở dữ liệu kho để không truy cập dữ liệu kho lưu trữ với bất kỳ công cụ tùy ý nào khác?

Nếu bạn sử dụng tệp: // mọi người có thể mở từng tệp trong kho lưu trữ SVN của bạn và thay đổi nội dung của nó sẽ dẫn đến việc lưu trữ tham nhũng.

Heck, mọi người dùng đều có thể xóa toàn bộ kho lưu trữ!

Bạn không thể giới hạn quyền truy cập vào các công cụ svn và do đó bạn không được sử dụng giao thức tệp: //.

+0

UM, tôi nghĩ có sự khác biệt giữa FSFS và giao thức 'file:', không? – sbi

+1

Bạn có bất kỳ hỗ trợ cho lý do tại sao tham nhũng sẽ không xảy ra, hoặc là dựa trên (có lẽ legit) giả định rằng các SVN guys sẽ tránh tập tin tham nhũng trong bất kỳ môi trường? –

+0

Như đồng cỏ đã nói: "Có thể điều kiện chủng tộc tồn tại trên mạng chia sẻ vì các hoạt động hệ thống tệp được giả định là nguyên tử (tức là di chuyển) không được đảm bảo là nguyên tử khi được truy cập qua mạng". không có bất kỳ thông tin chi tiết nào về vấn đề này. –

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