2009-05-05 9 views
21

Gần đây, similar question đã được hỏi, nhưng không giống nhau.sự liên kết giữa tính thương mại và lật đổ

Trang web Mercurial có một so sánh danh sách detailed page cho 4 tùy chọn khác nhau để nhận Mercurial và Subversion để tương thích.

Tôi tự hỏi nếu có ai đó đã thử một hoặc nhiều trong số này, và có thể liên quan đến bất kỳ kinh nghiệm thực sự tốt hay thực sự xấu. Các ghi chú trên hgsubversion download nói

hgsubversion là một phần mở rộng cho Mercurial đó cho phép sử dụng Mercurial như một khách hàng Subversion. Hiện tại, là không phải sẵn sàng để sử dụng sản xuất. Bạn chỉ nên sử dụng nếu bạn đang sẵn sàng để hack vào nó và đi lặn vào bên trong của Mercurial và/hoặc Phiên bản phụ.

đó là về việc mời các dấu hiệu cho biết "Bỏ rơi hy vọng, tất cả các bạn nhập vào đây" hoặc "Người đăng ký sẽ bị bắt". Vì vậy, tôi chỉ tự hỏi nếu điều này hoặc bất kỳ lựa chọn thay thế khác có giá trị cố gắng cho một người không có nhiều thời gian để hack xung quanh.

+4

+1 cho sự lười biếng. Với tất cả các cảnh báo, tôi không thể tự mình thử bất kỳ tùy chọn nào :-) –

+0

Tôi sẽ không gọi nó là "lười biếng", tôi gọi nó là "tiết kiệm". Thiết lập/quản lý một cấu hình điều khiển nguồn là (nghĩa vụ phải) chỉ là một phần nhỏ của công việc phần mềm mà đến lượt nó chỉ là một phần nhỏ trong công việc của tôi. Hoặc đó hoặc tôi phải đi pester nhóm IT của chúng tôi và họ sẽ không biết vì họ thường làm việc với phần mềm "Real" (Windows/IIS/SQLServer vv). Vì vậy, tôi phải sử dụng thời gian của tôi một cách khôn ngoan khi nói đến các nhiệm vụ "nhỏ" như thế này. Khi tôi lười biếng, tôi tự hào về điều đó. :) –

+0

"bây giờ nó chưa sẵn sàng để sử dụng sản xuất" - đây có phải là trường hợp không? – inger

Trả lời

1

Tôi đã sử dụng Subversion trong nhiều năm, nhưng tôi quan tâm đến việc thử ý tưởng VCS được phân phối này. (Tôi muốn sử dụng git, nhưng nó không phải là quá tốt trên Windows mà quy tắc nó ra để sử dụng tại công việc của tôi. Vì vậy, tôi tiếp theo muốn thử Mercurial.)

Tôi bước đầu muốn đẩy và kéo với máy chủ Subversion. Vì vậy, tôi đã thử tùy chọn 1, hgsubversion. Tôi đang trên Ubuntu 9,04 (Jaunty) với hg 1.1.2. Tôi đã làm theo các hướng dẫn được đưa ra trên trang web đó. Tất cả dường như cài đặt tốt. Nhưng khi tôi thử lệnh hg svnclone, tôi gặp lỗi "lệnh không xác định". Việc đào sâu hơn cho thấy rằng bây giờ bạn chỉ cần hg clone với URL SVN được đặt trước bởi svn +. ví dụ:

hg clone svn+https://server/svn/repo/

Nhưng sau đó, tôi nhận được một thông báo lỗi:

abort: could not import module encoding!

Đó có vẻ là một known bug, nhưng sau khi một số quan trọng xung quanh, Tôi không thể hiểu được tôi định làm gì để sửa nó.

Tóm tắt: tùy chọn 1 hiện không hoạt động đối với tôi. Các tùy chọn khác không phù hợp với luồng công việc mong muốn của tôi.

Cập nhật: Tôi đã thử lại với Mercurial 1.2.1 và nhận được kết quả tương tự. Có người nói với tôi rằng chi nhánh đang phát triển mercurial-crew sẽ hoạt động.

+1

bạn cần phiên bản mới nhất của mercurial và hgsubversion. Tuy nhiên - hãy cẩn thận với hgsubversion tại thời điểm này. Có vẻ như có rất nhiều việc tái cấu trúc đang diễn ra trên –

+0

Cảm ơn bạn. Tôi đã thêm bản cập nhật 1.2.1 và thủy thủ đoàn. –

+0

Vâng, bạn cần Mercurial 1.3 - mô-đun mã hóa được thêm vào sau khi 1.2.1 được phát hành. –

4

Tôi nghĩ tác giả hgsubversions là một chút hoang tưởng.Nếu bạn làm theo README - có nghĩa là sử dụng các phiên bản gần đây phù hợp của sự thương xót và lật đổ - không bất cứ điều gì xảy ra sẽ được cài đặt trên hoặc bởi bản phân phối của bạn - thì nó thực sự hoạt động khá tốt. Tương tự như vậy, tài liệu bao gồm được cập nhật; trong khi những gì bạn tìm thấy trên web có thể không. Tôi đã sử dụng nó trong một vài tuần với kết quả hợp lý - nhưng không hoàn hảo.

Đó là khi bạn đi vào các góc của hai hệ thống mà bạn gặp vấn đề: hgsubversion và các phần mở rộng khác (tôi có vấn đề với hgtasks) dường như không thích nhau; không rõ ràng cách xử lý các thuộc tính, v.v.

+0

Xin chào từ tương lai! Tôi đã sử dụng hgsubversion cho một vài tháng sử dụng hàng ngày tại nơi làm việc, và nó có vẻ chủ yếu là tốt. Nó có một số lúng túng so với Mercurial thuần túy (ví dụ như không thể cập nhật từ Svn khi tôi có những thay đổi không được cam kết), và nó đã thực sự xấu khi cố gắng rebase trên một sự kiện phân nhánh kỳ lạ trong Svn (vì vậy đừng làm điều đó) , nhưng khác hơn thế, không sao cả. –

2

Vâng, bạn phải sử dụng "phiên bản phi hành đoàn" gần đây của Mercurial, xem trang CrewRepository trên trang Mercurial wiki.

Khi Mercurial 1.3 được phát hành vào ngày 1 tháng 7, quá trình chuyển đổi sẽ bắt đầu duy trì một nhánh ổn định. Ít nhất đó là từ trên IRC (#hgsubversion trên irc.freenode.net).

+0

ooh ahh. Tôi nhìn vào ngày 1 tháng 7 rồi. –

+0

dohhwww, có vẻ như điều này không đúng đối với hgsubversion; phần mở rộng "chuyển đổi" là thứ dường như đã được thêm/phát hành –

+0

Tiện ích mở rộng chuyển đổi là phần mở rộng được giao với Mercurial (và đã được xuất xưởng trong một thời gian dài). Tôi xin lỗi rằng hgsubversion vẫn chưa phát hành một phiên bản ổn định, dường như họ đã vào một viết lại lớn hơn họ nghĩ tại thời điểm tôi trả lời câu hỏi này. –

3

Tôi vừa bắt đầu làm việc với tùy chọn 4, hgsvn. Mặc dù những gì trang Mercurial nói, hgsvn 0.1.7 hiện hỗ trợ đẩy trở lại repo svn.

Trường hợp sử dụng của tôi rất đơn giản: Tôi thực sự chỉ muốn có khả năng có các chi nhánh địa phương (ở giai đoạn này). Luồng công việc được liệt kê trên trang hgsvn là chính xác những gì tôi đã sử dụng và cho đến nay nó không bị hỏng bất cứ thứ gì.

3

Tôi muốn tùy chọn thứ hai hgsvn, nó khá chậm nếu bạn muốn phản chiếu một kho lưu trữ lớn, nhưng bạn có thể bắt đầu sửa đổi gần đầu (thường là những gì bạn muốn).

Tôi đã tìm thấy kho lưu trữ rất mạnh mẽ, được nhân đôi với hơn 5000 bản sửa đổi. Bạn có thể đẩy changesets trở lại nếu đó là những gì bạn muốn.

+0

Hãy để tôi thêm một mẹo: Tôi hiện đang sử dụng mercurial + hgsvn + http://arrenbrecht.ch/mercurial/pbranch/ để đóng góp cho các dự án (nguồn mở). Chỉ cần kéo repo svn vào mercurial quản lý các bản vá lỗi của bạn bằng cách sử dụng pbranch. Sau đó bạn giao tiếp các bản vá lỗi của mình qua email cho các nhà bảo trì dự án. – wires

0

Tôi đã sử dụng tính năng hgsubversion trong vài tháng. Bạn có thể thiếu một số tính năng nhưng nó đã sẵn sàng để sử dụng sản xuất.

OGRE và nhiều người khác đã quyết định sử dụng tính năng hgsubversion vì nó nhanh.