Tôi đang trong quá trình hiểu biết về hệ thống phiên bản Mercurial tốt hơn và tôi đang xem xét chuyển đổi từ SVN.
Bất kỳ ai đã chuyển đổi? Đó có phải là khó khăn cho bạn và nhóm của bạn để chuyển đổi? Bạn có thể đưa ra lời khuyên nào để ở lại với SVN hoặc đi Mercurial không?Bạn đã chuyển đổi từ subversion sang mercurial chưa? Có đáng để nỗ lực không?
Trả lời
Tôi không có kinh nghiệm với mercurial (sử dụng git thay vào đó) nhưng sự khác biệt trong kinh nghiệm giữa DVCS tốt như mercurial hoặc git vs. svn là điều bạn thực sự không thể quay trở lại khi bạn đã vượt qua đường cong học tập.
- Cam kết cục bộ giải phóng luồng công việc của bạn, cách tiếp cận tính năng mã hóa xác định khi bạn cam kết thay vì cam kết ảnh hưởng đến cách bạn làm việc.
- Số phiên bản tuyến tính của Svn là -bad-. Các cam kết (đặc biệt là với các nhánh) chỉ đơn giản là không tương ứng tốt với một ánh xạ gia tăng đơn giản.
- Các chi nhánh địa phương giúp các tính năng chia nhỏ dễ dàng hơn và tốt hơn, việc tạo mẫu trở nên đơn giản hơn nhiều.
- (chỉ liên quan một chút, nhưng) Làm việc ngoại tuyến có xu hướng cho phép bạn thực hiện thay đổi nhanh hơn đối thủ cạnh tranh của mình.
Gần đây tôi có một công việc liên quan đến việc sử dụng kho lưu trữ svn tập trung sau khi sử dụng git trong một hoặc hai năm. Tôi tiếp cận nó bằng cách sử dụng cây cầu git-svn, và thấy rằng tôi đã kiểm soát tốt hơn các cam kết so với svn, và có thể làm cho các cam kết và các chi nhánh ngồi, cuộn qua, và chơi chết theo cách mà đã cho tôi một lợi thế hữu ích hơn của tôi svn sử dụng đồng nghiệp, ngoài khối lượng lớn các cam kết mà tôi đã thực hiện bằng cách so sánh vì bản chất chi tiết và thường xuyên của việc thực hiện các cam kết cục bộ. Đó là một lợi ích to lớn.
Tôi thực sự khuyên bạn nên dành thời gian cho DVCS.
Cam kết cục bộ không phải là duy nhất cho DVCS. Chúng chưa được triển khai trên các hệ thống khác. Hỗ trợ cho chúng được lên kế hoạch trong + - Subversion 1.8. –
Khi bạn bắt đầu, bạn sẽ không bao giờ muốn quay lại. Những lợi thế là rất lớn.
Tôi cố ý tránh phân nhánh theo SVN, vì mọi lần hợp nhất đều yêu cầu giờ chỉnh sửa. Bây giờ, tôi mong được phân nhánh vì nó hoạt động rất tốt. Nó đã làm cho việc phát triển các tính năng mới dễ dàng hơn rất nhiều.
Hơn nữa, khả năng làm việc ngoại tuyến thật tuyệt vời.
Điều này SO article bao gồm quá trình chuyển đổi chi tiết (khá đơn giản). Bạn sẽ có thể bảo tồn lịch sử của mình, nhưng được hưởng lợi từ DVCS.
Điều này SO Question giải quyết các lợi ích cụ thể của DVCS, vì vậy tôi sẽ đề cập đến lợi thế cụ thể của Mercurial. Nếu bạn sử dụng GUI như TortoiseSvn, bạn sẽ ngạc nhiên bởi TortoiseHg. Ứng dụng này được cải tiến liên tục và giúp bạn dễ dàng xem các thay đổi đang chờ xử lý và thay đổi lịch sử của mình. Phải mất một thời gian để đạt được mức chất lượng này, nhưng bây giờ, tôi ghét sử dụng TortoiseSvn, bởi vì nó chỉ tồi tệ hơn khi nói đến việc xem xét các thay đổi đang chờ xử lý và quyết định những gì bạn muốn cam kết.
Tôi đã chuyển đổi. Lúc đầu nó chỉ là để thử nó ra nhưng tôi đã trở thành một fan hâm mộ lớn. Tôi đã không thực sự chuyển đổi kho lưu trữ cá nhân của tôi, tôi chỉ xuất khẩu mới nhất và thêm các tập tin vào một kho Mercurial mới.
Một số lệnh hg cơ bản tương tự với các lệnh trong svn để giúp bạn bắt đầu cảm thấy thoải mái. Here là giải thích về sự khác biệt của Joel.
Quan trọng, hãy cởi mở để sử dụng quy trình mới với hg. Nó cho phép phân nhánh nhiều hơn và cam kết nhanh chóng, bạn sẽ nhận được nhiều nhất của hg nếu bạn sử dụng thoát ra khỏi tư duy lật đổ.
Tôi thích bài báo, nó giải quyết vấn đề lớn ngay lập tức: phân nhánh svn rất khó, vì vậy nó không khuyến khích thực hiện các công việc đang tiến hành, phân nhánh hg dễ dàng, vì vậy nó khuyến khích cam kết/lưu tất cả công việc của bạn. Điều đó kết thúc là một điều thực sự lớn. – Kzqai
- 1. Chuyển đổi từ Mercurial sang Subversion
- 2. Di chuyển từ Windows Forms sang WPF ... có đáng không?
- 3. Việc sử dụng Proguard với Android có đáng để nỗ lực không?
- 4. Di chuyển từ ClearCase sang SVN/Mercurial
- 5. Chuyển từ Mercurial để lật đổ
- 6. Mercurial sẽ tự động chuyển đổi $ Id $ thành Subversion nào?
- 7. Di chuyển từ Visual Sourcesafe sang Mercurial
- 8. Có đáng để chuyển đổi từ Visual Studio 2005 sang Visual Studio 2008?
- 9. Dự án ASP.Net nguồn mở nào đáng xem xét cho nỗ lực học tập?
- 10. Chiến lược di chuyển từ StarTeam 5 sang Subversion?
- 11. Đối với nhà phát triển C++, có đáng để chuyển từ VS2005 sang VS2008 không?
- 12. Thêm thay đổi từ một kho lưu trữ Mercurial sang một kho lưu trữ Mercurial khác
- 13. 18.000 nỗ lực tiêm MySQL mỗi ngày: Ngừng các nỗ lực
- 14. Nỗ lực xuất khẩu và clocksum từ chế độ org?
- 15. Cách di chuyển từ Subversion sang Mercurial khi cấu trúc trunk/branch/tag là một mớ hỗn độn?
- 16. Tại sao có hoặc không bạn chuyển sang ASP.NET MVC chưa?
- 17. WCF trên Linux - là nó có giá trị nỗ lực
- 18. Tăng Jam là gì và Jam có đáng để di chuyển sang không?
- 19. org.postgresql.util.PSQLException: Nỗ lực kết nối thất bại
- 20. Có (đã có) bất kỳ nỗ lực nào để tạo một ngôn ngữ lược đồ cho các định dạng nhị phân tùy ý không?
- 21. Chuyển đổi kho lưu trữ từ git thành subversion
- 22. Tôi có nên chuyển đổi từ MooTools sang jQuery không?
- 23. nỗ lực không hợp lệ để đọc khi không có dữ liệu hiện diện
- 24. Subversion có được "hỗ trợ" bằng các công cụ tích hợp liên tục hơn Mercurial không?
- 25. có cách nào để chuyển đổi từ Double sang BigInteger?
- 26. Loại giá trị .NET nguyên thủy chống kiểu thông qua các cấu trúc tùy chỉnh: Có đáng để nỗ lực không?
- 27. Chuyển từ SVN sang GIT để phát triển C#?
- 28. Nguồn lực cho người dùng Subversion?
- 29. Chuyển đổi từ nguyên mẫu sang jQuery
- 30. Lua: chuyển đổi từ phao sang int
Ai đó có thể xác nhận Mercurial thực sự chậm hơn SVN? Chắc chắn, các cam kết địa phương là nhanh chóng, có thể chỉ là các kho lưu trữ mạng hg khá chậm? – twk
Và lưu trữ truy cập thông qua https thì sao? Tôi sẽ đặt nó trên máy chủ Win2K3. – twk
@twk: nếu hg chậm hơn svn thì đó là lỗi. – tonfa