View Single Post
  #10   Spotlight this post!  
Unread 11-01-2012, 20:55
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 mikets View Post
Just curious, our team uses Mercurial. Some people told me it is very similar to git. Does anybody have experience in both and care to share their opinions on the differences, good or bad?
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)
__________________
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