2010-01-30 16 views
13

Tôi vừa mới biết về tính năng tự động phiên bản SVN cho WebDAV. Mặc dù tôi hiểu điều này không thay thế cho phiên bản thích hợp, với các thông báo ghi lại các bộ thay đổi, nó đánh tôi như một sự thay thế vững chắc và an toàn đối với Dropbox (trừ các giao diện đồ họa và trang web đẹp). Tuy nhiên, vì cam kết trong tự động phiên bản thường xuyên, tôi cho rằng Git hoặc Hg sẽ phù hợp hơn cho điều này, chỉ vì cơ sở dữ liệu nhỏ gọn hơn (mặc dù tôi tự hỏi liệu bản chất phân phối của mọi thứ có thể làm cho tự động hóa xấu xí để giải quyết hay không xung đột).Tự động phiên bản WebDAV trong Git hoặc Hg hoặc bất kỳ VCS hiện đại nào

Đây có phải là tính năng đã được triển khai bằng Git hoặc Hg, theo bất kỳ ai biết không?

Trả lời

3

Dường như chưa có ai viết tự động hóa cho các VCS khác ngoài SVN. Khi hỗ trợ WebDAV/DeltaV được thực hiện trong máy chủ SVN, không thể chỉ chuyển VCS sang SVN khác.

Có thể truy cập WebDAV thuần túy với tất cả DVCS'es, nhưng chúng chỉ cho phép truy cập kho lưu trữ cho máy khách WebDAV và đẩy hoạt động cho máy khách riêng của DVCS, nhưng không tự động.

Một số liên kết để đọc thêm về:

9

Có một lựa chọn trên thị trường cho vấn đề này:

WsgiDAV là một máy chủ python WebDAV rs một loạt các backends including the DVCS mercurial, cộng với một số cửa hàng thời trang khác (couchdb, mongodb, MySQL, App Engine). Lưu ý rằng phiên bản hiện tại tuyên bố "Đây không phải là mã sản xuất".

Có vẻ như phiên bản khác với WebDAV của SVN, tự động chuyển đổi, cho phép bạn thực hiện nhiều thay đổi bao gồm nhiều bản cập nhật cùng một lúc (bằng cách kéo từ thư mục "chỉnh sửa" sang "đã phát hành"). cam kết, tạo phiên bản cho mỗi thay đổi. Vì vậy, nó không hoàn toàn tự động phiên bản, nhưng nó không yêu cầu truy cập dòng lệnh và IMO là một mô hình ưu việt. t đề nghị tự động cam kết WebDAV + SVN điều tất cả Như bạn nói, "cam kết trong tự động versioning là thường xuyên" .Nhưng họ là như vậy rất thường xuyên, và thường là vô nghĩa. s để chạy một kho lưu trữ git hoặc mercurial trên máy chủ của tôi, và sử dụng một cron-job để thay đổi phiên bản cho nó trong khoảng thời gian đều đặn. Ugly, nhưng chức năng, và không yêu cầu thiết lập máy chủ đặc biệt/không có mô-đun apache đặc biệt/etc. Tốt hơn hết, tôi có thể truy cập kho lưu trữ trên WebDAV, hoặc SFTP hoặc một tệp windows/apple hoặc gương DVCS cục bộ, tùy thuộc vào nhu cầu của tôi và tất cả đều hoạt động liền mạch. Ví dụ:

Git có khả năng phát hiện chuyển tập tin khá tốt, vì vậy điều này làm giảm nhu cầu truy cập WebDAV. Trong khi nếu một trong những di chuyển một thư mục trong một thanh toán SVN mà không đi qua một lớp truy cập mà dịch này đến một lệnh svn mv, sau đó tham nhũng khủng khiếp có thể dẫn đến. AFAICT, lợi ích chính của WebDAV + SVN là nó ngăn cản bạn phá vỡ thanh toán của riêng bạn theo cách này.

Mặt khác, "cơ sở dữ liệu nhỏ gọn" của git hoặc mercurial không phải là một lý do thực sự để thích chúng hơn SVN trong trường hợp này.Tuy nhiên, nếu bạn đang xem xét phải đối phó với các xung đột đồng bộ hóa thực sự, tôi sẽ đề nghị một trong số họ vượt quá mức độ lật đổ để giải quyết xung đột cấp trên của họ và mức độ phức tạp thấp hơn của tính phức tạp/linh hoạt.

1

Nếu bạn chỉ muốn cam kết mọi thay đổi mà bạn đã thực hiện, bạn có thể sử dụng cũng là giải pháp dưới đây, xem các thư mục được sử dụng, sử dụng inotifywait:

Making git auto-comit

Cái này dường như làm việc với bất kỳ phiên bản nào bạn có thể sử dụng.