This page is READ-ONLY. It is generated from the old site.
All timestamps are relative to 2013 (when this page is generated).
If you are looking for TeX support, please go to VietTUG.org

git for hg users

hg cool. git cool 2
Added by almost 3 years ago  »  Votes: 4/4

I am using cvs, subversion, git, mercurial (hg). So many tools to manage source code. My most favorite tool is mercurial as it's really fast and it has a good philosophy. The bad one is that's Python-based. I'd like to see a tool which is Ruby-based ;)

Yesterday I've found a tool named hg-git which allows you to use hg to push to and pull from a Git server. This tool is very nice (though it is in beta stage) hence I'm writing this note to share with you all.

The Hg-Git plugin can convert commits/changesets losslessly from one system to another, so you can push via a Mercurial repository and another Mercurial client can pull it and their changeset node ids will be identical - Mercurial data does not get lost in translation.

It is intended that Hg users may wish to use this to collaborate even if no Git users are involved in the project, as it may provide some advantages if you're using Bookmarks (it will transfer bookmarks on push, which Mercurial doesn't do.

See more at http://hg-git.github.com/


Comments

Added by bronzeboyvn almost 3 years ago

mở mang thêm được một tí!

Added by almost 3 years ago

Cái hgsvn rất hay: svn đi theo mô hình tập trung, đôi khi rất bất tiện, trong khi hg có thể phân tán kho lưu trữ. Dùng hgsvn thì có thể làm việc offline với svn repository được ;)

Added by hoangtran over 2 years ago

giờ em lại còn phải học thằng perforce nữa này (học nhiều mệt quá :-( - learning curve) Nhiều lúc nghĩ sao tất cả bọn nó không lấy một thằng rồi dùng đi chứ cứ thấy tranh cãi suốt ngày, mỗi thằng làm một kiểu. Tư tưởng tự do cũng mệt nhỉ :-D

Added by bronzeboyvn over 2 years ago

Tuỳ công việc mà chọn một source control manager tool dùng chứ anh. Em thì mới dùng được 2 cái cvsmercurial, thì nhận thấy rằng:

  1. cvs có tính phân cấp. Lính lác sửa code, mỗi đứa một nơi, cuối cùng phải có 1 thằng "uy tín" merge lại vô một official branch. Lính lác luôn check out bản mới nhất của official branch về và tiếp tục làm việc.
  2. mercurial có tính ngang hàng, mỗi thằng có 1 branch riêng, thằng này dòm ngó branch của thằng kia thấy thay đổi gì "có lý" thì merge vào branch của mình ngay, không phải chờ đợi official branch.

Tóm lại, trong team có "siêu nhân", có "gà" thì dùng cvs, còn nếu anh em trong team trình độ khá, tương đương nhau thì dùng mercurial.

Added by over 2 years ago

Chuyện của mình:

  1. Mình bắt đầu với ... Visual Sourcesafe trên Windows,
  2. Sau đó đổi qua dùng CVS (khi làm dự án vntex).
  3. Sau đó đổi qua svnsvn có nhiều cái tiện hơn (tags, branches): cái chàng winefish cũng chuyển từ cvs qua svn.
  4. Cách đây khoảng 2 năm thì bắt đầu xài git do tính phân tán của nó (sử dụng để theo dõi thay đổi cấu hình hệ thống rất tiện.)
  5. Mới đây nữa thì nghe về Mecurial do nó vừa dùng phân tán, vừa tập trung. Nhưng mình không thích nó vì nó xài python mỗi lần cài kéo theo cả đống thứ linh tinh (cài git thì ... rất lẹ :P). Tuy nhiên, công nhận là hg cực nhanh hihi
  6. Giờ đây thì thứ gì mình cũng phải chơi: vì còn phải phụ thuộc vào môi truờng làm việc nữa :P
  7. Nếu xài github hay trang web tương tự, thì sẽ thấy sức mạnh của cái gọi là social coding hehe. Nhánh của mình ở đây http://github.com/icy :P

Added by hoangtran over 2 years ago

svn thì chắc chắn hơn cvs rồi.

Em thích git vì nó cực nhanh, ý tưởng tuyệt vời. Nay bác Kỳ bảo Mercurial cũng cực nhanh thì chắc em cũng phải thử qua. Cty em dùng perforce thấy chậm quá trời, chịu không nổi :-(

Added by over 2 years ago

Xem

  1. http://gitvsmercurial.com/
  2. http://www.wikivs.com/wiki/Git_vs_Mercurial

Mỗi người so sánh một kiểu nên kết quả có khác nhau. Bản thân tớ thích các tính năng của Hg hơn, và đang dùng chủ yếu cho các việc cá nhân

  1. Git viết bằng C, nhanh hơn thằng Mercurial (?); nếu cài trên server thì tùy môi trường có thể dùng git hoặc hg, nhưng git sẽ có ưu thế vì ít phụ thuộc vào các gói khác;
  2. Dùng hg để push/pull từ các git repository được;
  3. Thời gian làm quen với hg nhanh hơn so với git (cái này là kinh nghiệm cá nhân: mình hòa nhập với hg lẹ hơn là với git);

Có lẽ hoangtran nên thử cho biết :) Cũng chẳng mất nhiều thời gian.

Added by over 2 years ago

http://gitvsmercurial.com/ có cái câu này hay

Who the FUCK cares? Use what YOU like, not what someone on the internet tells you to.

haha ha :))

Added by hoangtran over 2 years ago

câu ấy cool haha

Nếu những người nào đã trót dính chàm với linux kernel, driver thì chắc phải Git rồi :-|

Added by over 2 years ago

Trang này quá hay, con số cụ thể: http://whygitisbetterthanx.com/

Thế mới gọi là so sánh chứ :) Git is the winner :)

Added by over 2 years ago

Có cái plugin nào đề checkout/pull/push HG repo trong Git không nhỉ?

Added by hoangtran over 2 years ago

git-svn, git-p4 thì em biết :-D chứ git-hg thì hình như cũng có đấy bác, nhưng em chưa thử

Added by over 2 years ago

Mình bỏ cả tối nghiên cứu thêm :D Kết cục thế này: Có hg-git, chứ không có git-hg. Có nhiều lý do, ví dụ: hg không hỗ trợ local branches như trong git. Thực ra thì khái niệm nhánh trong hggit hoàn toàn khác nhau; trong git, nhánh không đuợc record như ở hg. Hệ quả là khi dùng hg-git để nhân bản git repository thì các nhánh đã thiết lập trở thành tags trong hg (bó chíu), và phải dùng hg heads mới thấy sự phản ảnh về nhánh trong bản git repo ban đầu. Qua đây, thấy sự chặt chẽ về khái niệm nhánh trong hg so với git, mặc dù với git thì thoải mái hơn :))

Added by over 2 years ago

Một bài khác rất hay về Git vs. Mercurial: http://importantshock.wordpress.com/2008/08/07/git-vs-mercurial/