Tôi hiện đang duy trì dịch vụ kiểm soát phiên bản cho một tổ chức nghiên cứu của Hoa Kỳ. Chúng tôi không chỉ hỗ trợ SVN ngoài Git và Mercurial, mà còn hỗ trợ CVS.
"Tính năng sát thủ" của SVN trong số người dùng của chúng tôi là các bản sao thu hẹp. Bạn có thể thực hiện thanh toán chỉ một thư mục con sâu trong chế độ thừa kế, chỉ tải xuống các tệp có liên quan đến thư mục đó và vẫn có thể thực hiện các cam kết. Git gần đây đã đưa ra một biến thể tương tự nhưng không hoàn toàn hữu ích về tính năng này được gọi là các lần kiểm tra thưa thớt (xem thêm Sparse checkout in Git 1.7.0?). Điều này cho phép bạn lọc cây làm việc của mình, nhưng vẫn buộc bạn tải xuống toàn bộ lịch sử của toàn bộ dự án, điều này có thể bị cấm ngay cả khi các tệp nhị phân lớn không phải là có liên quan. Tâm trí bạn, đĩa là rẻ, và nếu bạn hấp thụ cú đánh của bản sao ban đầu trong các lần kéo tiếp theo là đủ nhanh, nhưng điều này không giúp mọi người đi trên chuyến đi trước khi họ nhận ra họ cần sao chép, và trong mọi trường hợp thậm chí Kiểm tra thưa thớt của Git sẽ không cho phép bạn bắt đầu cây làm việc của bạn năm cấp độ xuống, do đó, nó trông hơi xấu xí. Ngoài ra, người dùng tìm thấy authz
tệp dễ viết hơn Git commit hooks, thoải mái hơn với cú pháp SVN và phương pháp hơn bất kỳ DVCS nào, và có lẽ quan trọng nhất là tất cả, đã có hàng nghìn giá trị commit trong lịch sử SVN. Các thí nghiệm trong việc di chuyển các kho lưu trữ Subversion lớn sang Git hoặc Mercurial đã cung cấp kết quả hỗn hợp, và đây là những nhà khoa học đang cố gắng hoàn thành công việc của mình, không dành thời gian để phát triển DVCS.
CVS vẫn có lý do tương tự. Hãy tưởng tượng, với tư cách là người dùng Git, có kiểm tra thưa thớt cũng cho phép bạn tùy ý remap nơi tệp trong nhánh hiển thị trong cây đang hoạt động của bạn, sử dụng định dạng được phiên bản cùng với kho lưu trữ và được phân phối với mọi lần kéo thông thường, cho phép bạn để viết các định nghĩa có thể có các nhóm có thể bao gồm các nhóm khác và chỉ kéo các tệp cần thiết để sắp xếp hệ thống tệp trên bản sao. Đó là đơn giản trong các mô-đun CVS, và không thể trong mọi DVCS. Đối với tất cả các tội lỗi của CVS (và tin tôi, chúng tôi khá ý thức về chúng, và đi theo cách của chúng tôi để ngăn cản các dự án CVS mới trừ khi họ hoàn toàn không thể sống mà không có mô-đun), không thể thuyết phục một nhóm sử dụng tính năng đó để di chuyển sang hệ thống kiểm soát phiên bản khác.
Phần mềm DVCS đã mang lại một số cải tiến tuyệt vời, nhưng chúng cũng thiếu những thứ mà một số nhà phát triển đã cho phép. Hãy chắc chắn rằng bạn biết trước những yêu cầu của bạn là gì trước khi chọn một.
Đó * "GIT chỉ đơn giản là tốt nhất" * không giống như một kết luận rõ ràng nào cả. Nó giống như một ý kiến thiên vị nặng nề hơn. Và bạn mâu thuẫn với chính mình rồi nói * "Bản thân tôi không có ý kiến riêng về những gì v.c.s. nói chung là tốt nhất" *. WTF là bạn đang cố gắng nói không? – Juliano
Kiểm tra [Tại sao GIT tốt hơn Subversion?] (Http://stackoverflow.com/questions/871/why-is-git-better-than-subversion). Nó có gần 200 phiếu. – DOK
@Juliano: Đi dễ dàng, anh bạn. Tôi nghĩ những gì anh ta nói, là dựa trên những gì anh ta đọc trong văn học, có vẻ như Git là một dunk slam, nhưng anh ta không có kinh nghiệm thực tế để xây dựng ý kiến riêng của mình. –