Github or Google Code? Local backup or mirror?

I am using a private SVN repository to keep track of projects and things in general. I've used these tools long before Github or Google Code were in the picture. I have used Sourceforge with limited success a long time ago. I'd really prefer to keep my new projects and maybe even some old projects in a more accessible place.

I see a lot of Open Source Arduino related projects use Github or Google Code. Is any significant reason to use one over the other? One of the key requirements is that the ability to keep a local mirror of the repository for backup purposes.

Personally I use git and publish selected projects on my webserver (running gitweb) and github as well.

You can have as many offline copies using git as you desire.

Here are two places worthy reading to get going with git:

I don't know which OS you run. For linux there are nice graphical front-ends available (qgit, gitk).

Like @madworm, I prefer Git.

If you prefer using SVN, Google Code is a good choice. I like Google Code's issue tracker.

If you'd like to learn Git, Github is a good choice. I prefer Github when browsing through source code through a web browser. TortoiseGIT makes using Git a breeze.

I have no idea if either of them supports private repositories.

I use a variety of operating systems. My workstation is a MacBook running OSX. I also have a Windows 7 PC that I use with remote desktop. Both of these are used for development work. I am used to TortoiseSVN for Windows and some finder plugin on the Mac. I am glad to hear there is a TortoiseGit, on the Mac I am good using command line if necessary. That takes care of working copies.

When it comes to backup or mirror, this will have to be done on a Linux based server. Pretty much use Debian for all server tasks. I have no problem scripting something if necessary to mirror the repository. But I would very much prefer a proven method, some recipe to follow that just works.

Essentially I'd like to keep the learning curve to a minimum. But at the same time I'd like the stuff I cook up be available and not hidden in a "virtual closet"....

I like the google code wiki and i got used to hg (supported by google code). It seems that git is a little bit more restrictive, at least i spent more time to setup git.

I do not care much about the version manager, but i would miss the google wiki (and the google tracker if there is nothing similar on github).

But here is my follow up question: What does the Arduino Team think?
Any news about this thread:
http://arduino.cc/forum/index.php/topic,73531.0.html
Shell we all migrate to github with our libraries?

Oliver

olikraus:
Any news about this thread:
http://arduino.cc/forum/index.php/topic,73531.0.html
Shell we all migrate to github with our libraries?

An interesting read. It certainly makes sense to have one place to house all the available libraries. My projects include hardware, though. I don't think it would fit under the library repository. I have an account on GitHub and an account on Google Code. Incidentally, when I tried to play with it both sites were down for maintenance.

Does GitHub support a wiki or any king of mechanism to provide information outside of then repository? I have visited quite a few projects hosted on Google Code. So I know the wiki available there.

I have played with Github for a bit. I do like it a lot. I understand that with git the entire repository is available as a local copy, unlike SVN where only the specific checked out version is locally available. If I have it right, every git repository on my computer is a complete copy of all the files, all the versions on my local computer.

But how can I make sure that git pulls all repositories and all branches from Github? I'd like a daily script to run on my server that ensures I have a copy of everything at Github backed up on my local server. Basically my last ditch insurance.

Google code initially supported hg, which offers the same idea of a local repository. "hg" has the "pull" and "push" command to sync the repository with the server. The same is true for git ("git pull" and "git push").
Meanwhile, one can also use git with google code. So, there is no difference between google code and github regarding the version management.

Oliver

I think I ave a lot to learn about git. I think using "git clone --mirror" will allow me to setup a complete backup of each repository on my local server. Now I just need to know if there is an easy way to pull a lst of repositories from github.

Git on Github is pretty much the pinnacle of free shared coding these days. Pull requests, forking, viewer comments on commits, online editing, issue tracker, wiki, easy to create project website, etc etc. Github rocks.

I am using git hub now. Learning to use git command line wasn't all that bad. Looks good.