2010-01-24 8 views
17

Với Phil Haack và những người khác gần đây đã tweet khoảng CodePlex's move to support Mercurial làm DVCS, tôi nghĩ nó có thể đáng xem.Mercurial xếp chồng lên GIT và SVN như thế nào?

Là người hiện đang sử dụng SVN cho các dự án cá nhân và TFS tại Văn phòng, Mercurial so sánh như thế nào về tính khả dụng, tính năng và dịch vụ lưu trữ Mercurial nào tốt hơn?

+0

thẻ này phải có thẻ 'git'. –

+0

@Chad Okere - đủ công bằng. Làm xong. –

+0

Không có đủ thẻ để mô tả câu hỏi SO đầy đủ này! D: – Spoike

Trả lời

18

Theo như so với Git, Google gần đây đã công bố một so sánh thú vị của Git và Mercurial dựa trên đánh giá của họ: http://code.google.com/p/support/wiki/DVCSAnalysis

+0

Hoàn hảo. Đó là tất cả những gì tôi cần. Cảm ơn vì mẹo, @Dave Ward. –

+4

Lưu ý rằng phân tích này đã lỗi thời, ví dụ như Git đã có được cách đây không lâu để hỗ trợ cho việc vận chuyển HTTP "thông minh". –

+0

Một số công cụ khác đã lỗi thời: mercurial đã rebase bây giờ quá (không còn là một lợi thế git); git-gc bây giờ là phần tự động (không còn là một lợi thế hg có ý nghĩa), và cửa sổ hỗ trợ là ít khủng khiếp (không thực sự chắc chắn đây vẫn là một lợi thế hg). Và tất nhiên, microsoft đã tuyên bố ý định của họ để tích hợp hỗ trợ git vào dòng TFS của họ. –

1

Một điều không được đề cập trong sự so sánh Google là Git dường như là nhanh hơn nhiều. Mercurial dường như đủ nhanh (với các dự án nhỏ ít nhất) nhưng Git chỉ đơn giản là nhanh như chớp bất kể kích thước của dự án là gì.

+0

Tuy nhiên, hãy nhớ rằng bạn đang so sánh sét và máy bay phản lực siêu âm. Vấn đề duy nhất thực sự git là hỗ trợ công cụ trên các nền tảng khác so với Linux nhưng tôi cho rằng điều đó sẽ thay đổi cuối cùng. – Esko

+2

Trên thực tế, cả Git và Mercurial trở nên siêu chậm khi kích thước kiểm tra của dự án bắt đầu leo ​​về phía GB. Vì vậy, kích thước không quan trọng. – Spoike

+3

TortoiseGit là một công cụ GUI rất tốt cho Windows. Tôi đoán người dùng của các nền tảng khác chủ yếu là hài lòng với công cụ dòng lệnh, có lẽ kết hợp với phần mềm hình ảnh cây đồ họa như gitg. – Tronic

5

Giới thiệu về so sánh Mercurial với Git - xem câu hỏi SO này: Git and Mercurial - Compare and Contrast (và my long answer ở đó).

Về việc so sánh Mercurial với svn - xem câu hỏi SO này: For home projects, can Mercurial or Git (or other DVCS) provide more advantages over Subversion? (về mặt lý thuyết câu hỏi này bị giới hạn trong phạm vi, mặc dù; tôi đã viết về Git vs Subversion trong câu trả lời của tôi).

0

SVN có rất nhiều sự hỗ trợ của các công cụ của bên thứ 3 bao gồm các hệ thống theo dõi IDE và lỗi, v.v. bao gồm cả TortoiseSVN.

Hầu hết các nhà phát triển đã sử dụng SVN trong quá khứ, vì vậy việc phát triển các nhà phát triển mới để tăng tốc độ cho nhóm của bạn nhanh hơn với SVN.

Điều quan trọng đối với bạn như thế nào, chỉ bạn mới có thể quyết định.

6

So với SVN, lần gần đây tôi đã làm việc lại sau một thời gian, Mercurial thật tuyệt vời. Nó đã cho tôi một cảm giác "Tại sao mọi người lại sử dụng SVN nữa". SVN là khá tốt, nhưng Mercurial thực sự chỉ làm việc tốt hơn.

Đối với các dự án cá nhân, tôi sẽ chuyển đổi mà không nghi ngờ gì về DVCS. Nó làm mọi thứ SVN làm nhưng tốt hơn, và nhanh hơn nhiều. "Đường cong học tập" chỉ là hiểu một số thuật ngữ.

Trong thực tế, sự khác biệt giữa SVN và DVCS là mọi người đều có kho lưu trữ hoạt động đầy đủ trên hệ thống của họ. Nếu bạn quyết định có một "máy chủ tổng thể", nó chính xác giống như những gì bạn có, ngoại trừ nó được thiết lập để liên tục phục vụ qua mạng. Để đồng bộ hóa tất cả những gì bạn làm là gửi/nhận (đẩy/kéo) những thay đổi giữa các kho này.

1

Nó có lẽ chỉ là tôi, nhưng tôi đã sử dụng Mercurial trong sáu tháng, sau nhiều năm sử dụng SVN độc quyền, và vì lý do nào đó nó không phù hợp với mô hình tinh thần của tôi. Tôi biết chính xác những gì tôi đang làm trong SVN, và nếu có điều gì sai, tôi luôn biết cách khắc phục nó. Về mặt khái niệm, tôi không có vấn đề gì với Mercurial - tình yêu mà tôi có một bản sao cục bộ của kho lưu trữ, ví dụ - nhưng trong thực tế tôi luôn luôn mất đi mọi thứ. Tôi nghĩ rằng nó có thể là bởi vì một sự hợp nhất trong SVN là một vấn đề lớn, trong khi đó Hg đó là cách bình thường của mọi thứ. Tôi muốn kiểm soát nhiều hơn các hợp nhất của mình. Trong SVN nó luôn luôn rõ ràng mà changeset trước đó, nhưng Mercurial dường như thiếu này. Ngay cả TortoiseHg, mà là khá đẹp trực quan, dường như không cung cấp đủ cơ hội để xem chính xác những gì đang được sáp nhập.