Go to Post There is nothing wrong with being great and being proud of it. - TubaMorg [more]
Home
Go Back   Chief Delphi > Technical > Programming > C/C++
CD-Media   CD-Spy  
portal register members calendar search Today's Posts Mark Forums Read FAQ rules

 
Reply
 
Thread Tools Rate Thread Display Modes
  #1   Spotlight this post!  
Unread 11-01-2012, 23:48
shuhao shuhao is offline
Registered User
FRC #4069 (Lo-Ellen Robotics)
Team Role: Mentor
 
Join Date: Nov 2011
Rookie Year: 2012
Location: Sudbury
Posts: 138
shuhao is an unknown quantity at this point
Quote:
Originally Posted by byteit101 View Post
It is, and its not. I've used both, and prefer mercurial for a number of reasons (see my github vs bitbucket profile if you don't believe me)
  1. TortoiseHG
  2. works on windows
  3. same on any platform
  4. branches
  5. newbie friendly &easier to learn
  6. undoing stuff


By far my favorite reason is TortoiseHG. Its light years ahead of tortoise git, and works on all platforms (almost) equally well. I like being able to visualize history, and imho, for merging and fancy stuff, a good gui is essential. If there was a VERY good terminal program, I might reconsider, but until then, gui's are way more intuitive and friendly than most terminal programs. Git gui feels like a kludge sometimes

Windriver is for windows. Git was originally for linux. Mercurial is written in python, which is very cross platform, making the whole experience seamless. Git on windows is more of an afterthought, requiring its own special POSIX enviroment. Go native! (git runs like a sloth on my windows machine, even git help takes ~5 seconds(!))

Again, TortoiseHG and the py code are exactly the same on win, mac, linux. tortoise git is windows only, and git works slightly differently on each platform.

Branches are interesting: in mercurial, each branch is a specific line, and you can account for it in history. Mercurial also has bookmarks, that point to specific commits, but don't have history, so if you want to see what bookmark a certain revision used to have, you are out of luck. Git's branches are essentially hg's bookmarks. There is simply a mess of named locations on the current history, and 20 branches can point to the exact same commit. Git also likes to make branches. a branch in a repo is different from the same branch in the local machine. Also, git likes to merge. way too much. (especially github)

imho, hg (and especially tortoisehg) is much easier to learn. Even just using the command line, hg has excellent, short, consice help files, while git has monsters of help pages with many things you sometimes don't want to know (though it has gotten better). Some commands/operations in git seem very odd and produce strange warnings, like checking out a previous commit. And as I will show below, reverting is funny. git tries to do too many things sometimes also. I easily found how to edit history in tortoisehg, but tortoisegit and git gui took a bit more work

you are working on something, and oops! I don't want to delete that file!
hg revert your-file-you-want-back
git checkout -- your-file-you-want-back
want to restore all your changes?
hg revert
git reset --hard



For a nice (relatively unbiased) overview, look at http://mercurial.selenic.com/wiki/GitConcepts
and of the three things git is "better" at than hg on http://whygitisbetterthanx.com/, I'd only agree GitHub (though Bitbucket is better in some areas, as it supports both git and hgm)
why? hg has cheap local branching, in both normal branches, and bookmarks, and the staging area in git is matched with tortoisehg (though they dropped hunks with 2.0, but it should be coming back soon), and/or mq (Mercurial Queues)
You forgot to mention how slow it is compared to git of you're already on Linux. Even mercurial on Linux is faster than windows.

Last edited by shuhao : 11-01-2012 at 23:50.
Reply With Quote
  #2   Spotlight this post!  
Unread 12-01-2012, 14:53
byteit101's Avatar
byteit101 byteit101 is offline
WPILib maintainer (WPI)
AKA: Patrick Plenefisch
no team (The Cat Attack (Formerly))
Team Role: Programmer
 
Join Date: Jan 2009
Rookie Year: 2009
Location: Worcester
Posts: 699
byteit101 is a glorious beacon of lightbyteit101 is a glorious beacon of lightbyteit101 is a glorious beacon of lightbyteit101 is a glorious beacon of lightbyteit101 is a glorious beacon of lightbyteit101 is a glorious beacon of light
Re: Git or SVN in WRWB

Quote:
Originally Posted by shuhao View Post
You forgot to mention how slow it is compared to git of you're already on Linux. Even mercurial on Linux is faster than windows.
If you are working on the giant mess that is the gits's history, I agree. If it is your standard robot code, then it it like comparing driving 40mph and 39.9mph (not noticeable)

For any robot purpose, hg is just as fast as git on linux. I think its also more of a percieved speed: git is c, which is fast, while hg is python, which is slower. However, its not very noticeable today (it may have been a few years ago though), due to some C code, and optimizations
__________________
Bubble Wrap: programmers rewards
Watchdog.Kill();
printf("Watchdog is Dead, Celebrate!");
How to make a self aware robot: while (∞) cout<<(sqrt(-∞)/-0);
Previously FRC 451 (The Cat Attack)
Now part of the class of 2016 at WPI & helping on WPILib
Reply With Quote
  #3   Spotlight this post!  
Unread 12-01-2012, 23:29
kccowan kccowan is offline
Registered User
AKA: Ken Cowan
FRC #1073
Team Role: Mentor
 
Join Date: Feb 2011
Rookie Year: 2010
Location: Hollis, NH
Posts: 17
kccowan is an unknown quantity at this point
Re: Git or SVN in WRWB

Our team used Mecurial / TortoiseHG last year. Having version control was great, but I'll say that we had huge issues due to the flexibility -- ended up with multiple heads by accident. And it was hard to merge changes in the right direction, so that you only had to review your own changes.

Hoping this year will be smoother.

KC
Reply With Quote
  #4   Spotlight this post!  
Unread 17-01-2012, 13:18
makahn64 makahn64 is offline
Registered User
FRC #0256
 
Join Date: Nov 2011
Location: United States
Posts: 27
makahn64 is infamous around these partsmakahn64 is infamous around these partsmakahn64 is infamous around these partsmakahn64 is infamous around these partsmakahn64 is infamous around these partsmakahn64 is infamous around these parts
Re: Git or SVN in WRWB

I'll have to check out Mercurial. I agree Git is way nasty when you need roll something back (like that 40Mbyte movie you checked in by accident).

For now, I have Git on the command line while I research Mercurial...Thanks!
Reply With Quote
  #5   Spotlight this post!  
Unread 12-02-2012, 22:20
codes02 codes02 is offline
Randolph aka Roxbury aka R_______
AKA: Cody Schafer
no team (Formerly: Team 11, MORT)
 
Join Date: Oct 2007
Rookie Year: 2008
Location: MA, USA
Posts: 57
codes02 is on a distinguished road
Re: Git or SVN in WRWB

Git would allow you to roll that back even when pushed to a remote.
Mercurial would not, you would be left to the remote host providing some method of removing commits (which bitbucket does, but only via a webinterface).
Reply With Quote
  #6   Spotlight this post!  
Unread 15-02-2012, 15:14
DjScribbles DjScribbles is offline
Programming Mentor
AKA: Joe S
FRC #2474 (Team Excel)
Team Role: Mentor
 
Join Date: Oct 2011
Rookie Year: 2012
Location: Niles MI
Posts: 284
DjScribbles is a splendid one to beholdDjScribbles is a splendid one to beholdDjScribbles is a splendid one to beholdDjScribbles is a splendid one to beholdDjScribbles is a splendid one to beholdDjScribbles is a splendid one to beholdDjScribbles is a splendid one to beholdDjScribbles is a splendid one to behold
Re: Git or SVN in WRWB

I've been using SmartGit for my windows machines, as I'm not a very experienced with Git or command line repository stuff in general (my workplace uses MKS, which is all GUI), it seems to work fairly well and is pretty intuitive UI (though, as I said, I'm a beginner with git and it may not provide more advanced functionality). It's also got github integration which is nice
Reply With Quote
  #7   Spotlight this post!  
Unread 16-02-2012, 09:34
rbmj rbmj is offline
Registered User
FRC #0612 (Chantilly Robotics)
Team Role: Alumni
 
Join Date: Apr 2011
Rookie Year: 2011
Location: DC Area/Fairfax County
Posts: 192
rbmj is a jewel in the roughrbmj is a jewel in the roughrbmj is a jewel in the rough
Re: Git or SVN in WRWB

We use git + ucpp on linux. I'm working on getting a nicer makefile generator that handles dependencies better and a native (not through wine) compiler for next year. So far, git has worked extremely well. Github is also awesome - probably the biggest plus for git.

I haven't use hg though, so I can't comment on which is better.

Why would you be checking in a big movie? You have to git add it explicitly before it will be tracked, even if you always just git commit -a. Unless you're doing git add * - but in that case, maybe you deserve the extra work At least do git add *.h *.cpp if you're lazy.
Reply With Quote
Reply


Thread Tools
Display Modes Rate This Thread
Rate This Thread:

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump


All times are GMT -5. The time now is 03:44.

The Chief Delphi Forums are sponsored by Innovation First International, Inc.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Copyright © Chief Delphi