Git or SVN in WRWB

Hi Folks,

I wanted to put eGit in WRWB so our team could do revision control, but WRWB is lacking the install software menu in standard Eclipse. Does anyone know how to make this work?

I see it has CVS, but this is so 1990, I shudder to use it. I’m also a big fan of github.

I guess I could just have the kids go command line, but that sort of scares me a little even though it’s what I do.

Thanks,

Mitch, Team 256

P.S. SVN would be ok too.

Team 191 the Xcats has been a long time user of svn. And since we use java the integration is easy to boot.

Why not just use cli? It’s very very good and super fast.

Git is essentially the industry standard these days for version control, at least in my business. It is built right in to Xcode, it’s easy to integrate in Eclipse (though SVN is too) and in GitHub there is an awesome, free way to back up data off site.

I’m surprised WindRiver locked down the ability to add in Eclipse plug-ins. I don’t know if this is in their standard product, but if it is, I would be screaming :mad: :mad: .

That’s annoying. Just git commit from a terminal, I suppose. Better yet, nix the IDE all together. :slight_smile:

<disclaimer>Before I start, I would like to say that this is my personal opinion and whatever floats your boat is fine with me. </disclaimer>

I would pick GIT over SVN because I enjoy using git more. And yes while having to teach the kids to use git through the command line is more work, I think it would benefit them. It means that they can sit down at a new machine and get going with the concepts and stuff they’ve learned. Plugins are nice but not necessary.

I have to say… svn is an abomination.

svn is built in, and if you want plugins, it is eclipsed based, and as such you can either manually install plugins, or “install into eclipse” (under menu twards right), which will then give you complete plugin flexibility, allowing you to use git, mercurial, svn, or whatever you want

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?

A python Git clone … slower than Git… personally I think Git is better

It is, and its not. I’ve used both, and prefer mercurial for a number of reasons (see my githubvs bitbucketprofile 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.

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

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

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!

How did you even checked in a 40 MB without noticing. There is at least 2 safe guards… (Git status and Git commit)

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).

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 :slight_smile:

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 :wink: At least do git add *.h *.cpp if you’re lazy.

I love Git’s commandline interface