2010-02-26 26 views
22

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?

+0

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

+0

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

+0

@twk: nếu hg chậm hơn svn thì đó là lỗi. – tonfa

Trả lời

14

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.

+3

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. –

17

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.

6

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 đổ.

+1

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

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