Main Site Documentation

Bitbucket or GitHub for source code storage, versioning and sharing?


#1

I currently keep all my source backed up on my NAS and MS OneDrive via a script that runs regularly, so code loss is somewhat mitigated. However, I am now considering the use of a dedicated code hosting service such as Bitbucket or GitHub and I don’t really know which way to jump.

GHI seem to favour Bitbucket at present but many people seem to use GitHub. Using one of these services also gives me the chance to share any code snippets, libraries, etc with others.

Do any of you use either service (or any other that I’ve not thus far considered) as a general code repository for personal and/or community use? Which is more suited to NETMF coding? How well do they integrate with VS2013?

Thanks.


#2

I use Stash from Atlassian (bitbucket but installed at work). It’s only 10$/year. It is integrated with vs2013 via Team Explorer and git.

For more complex operation, I’ve added tortoisegit.


#3

I’ve used both. If you’re looking to host private stuff (that you don’t want to share with the world), then BitBucket is free, and you’d need to pay for GitHub. GitHub is more popular, but I’ve found BitBucket to be a very solid and easy-to-use product.


#4

VS Comes with a GIT plugin, but personally I don’t like it too much (GIT and the plugin)
At work I set up a TFS, which I really like.
Form the usage side I like codeplex more than GIT, but as a downside, codeplex Performance is verry bad in recent years.
You can even experiance this when you Switch to the source code view in any codeplex Project.
I never used or looked at bitbucket


#5

Using TFS for years now (and I really love it) for enterprise projects. It’s the #1 choice for enterprises here in Europe. I use VS-Online for my startup projects in conjunction with the Agile template.

But I have to admit that GIT is my choice for personal projects. It’s uncomplicated, easy to use and fast. For my public things I use the free GitHub account and for private repositories the free option from BitBucket.(Atlasian) They allow you even to build small teams (up to 5 people) and you can have unlimited public and private repositories.

And like @ Reinhard, I don’t like the VS Git integration. Therefore I am using the shell. You can use Cygwin or you can install the Git-Shell, all based on your personal preferences.

About CodePlex: CodePlex is becoming a real mess and it is super slow like mentioned by @ Reinhard. Sometimes there are HG repos, sometimes GIT, sometimes TFS. And if you want just to take a quick look at some source, you have to wait forever. If you have ever tried to download a larger repo from CodePlex, you know what I am talking about. So a big NO from me for CodePlex.


#6

I was going to ask what the best option for private repositories and I see from the posting from AWSOMEDEVSIGNER that bitbucket might be a good solution. I don’t mind paying a reasonable fee for something though. Right now I just backup to a GoDaddy backup account but I would prefer to have a proper source backup where I can roll back to the previous day etc.

Would Bitbucket be the ideal solution for this?


#7

@ Dave McLaughlin -

All of the available solutions, BitBucket and GitHub are excellent options, as well as TFS (Visual Studio Online). VS Online offers you free repositories and up to 5 users as well (basic account).
VS tooling is available for all three options (VS Git integration and TFS, Git is the same on GitHub and BitBucket).

I think you should open an free account for all of them and see by yourself what suites you best.

It’s really comfortable to go back and forth in you source code management system, to create branches for example and to be able to restore changes at any given point of time (since the last check-in).


#8

The TFS Integration in VS is really great.
Also check out TF Sidekicks: http://www.attrice.info/cm/tfs/
It’s a great tool.
Also if you want to Setup your own Server: Setting up a TFS is really simple.
Not sure if there is a free Version, but I think there is.


#9

@ Reinhard Ostermeier -

There is a free version: TFS Express 2013 with update 4:

You can read about the limitations and more on that download page (well, not directly but through additional links).

And thanks about the hint on TF Sidekicks :slight_smile:


#10

Decisions, decisions.

I think I might need to test one or two.

Thanks for your thoughts so far.


#11

Probably the single best argument for Git is that it’s pretty much what everyone uses these days. Subversion is dying, CVS is long gone, Mercurial is much less popular than Git. When you work with code that’s not your own, almost certainly, these days, it’s going to be with Git. Even Microsoft has admitted that, as TFS (the project management system) now offers Git repositories along with TFS (the source control system) repositories.

TFS (the project management system) is VERY heavyweight, if you’re hosting it yourself. Each separate project is a whole Sharepoint site. You’re looking at multiple servers (database plus TFS, at least). It’s a solid commitment.

At work we use GitLab, which is a GitHub-alike with some nice features. It’s free, as well, and we’ve been very happy with it.


#12

@ godefroi -

Yeah, GitLab is great! It’s also perfect for self-hosting on Azure and offering repos for you/your company or your users (maybe an Idea for GHI?) and I agree on what you said about Mercurial, SVN and all the others. Git is very popular and every serious developer should know how to use it.


#13

Like several others have mentioned, I also use Bitbucket when I need private repos and I use GitHub for public (open source) projects. One of the big reasons I choose to put all of my open source work on GitHub is the fantastic work that GitHub has done with file viewers. Most of the stuff I work on these days contains some of each - source code, 3D printer files (STL), and some web page to pull it all together and advertise. For example, check out this project…

notice the awesome 3D preview when looking at .STL files…

Need a webpage to show off the project? Just add a branch to your project called “gh-pages” and GitHub automatically creates one for you.

http://ianlee74.github.io/LumineaterBot/ (in progress)
http://ianlee74.github.io/LumineaterBot/assembly.html

At our office we use GitHub for everything public & private. It has fantastic online code review features. So, in a nutshell I use Bitbucket for private repos because I’m cheap and they give it for free. If GitHub had free private repos, then I would use it for everything.

As far as Git vs. everything else… Don’t waste your time with anything else. No new serious projects are started on anything except Git. It’s worth investing your time to learn it.


#14

SharePoint is optional. You can decide if you want to add the SharePoint site when creating the Project. If you have no SP Server installed, projects are always created without. This reduces the Server load a lot. We run our TFS for 6 developers and 20+ Projects on a single Virtual machine, hosted on a Core i5. The SQL Server runs on the same machine. We use no build Server so far.
Even without SharePoint, you can use WorkItems, BugTracker, …


#15

@ ianlee74 - Excellent overview on what is possible on GitHub :slight_smile: Thanks.


#16

@ Reinhard Ostermeier - Agree. it works very well and if you take your time and configure the server for more performance (not installing unnecessary features, the right network configuration, etc.) it works even better. Important is also to think about backup-strategies, updates and so forth. Well, like for every other server-system :slight_smile:


#17

@ AWSOMEDEVSIGNER - Since TFS2012 a easy to configure backup utility is included.
It stops the service, creates a data base backup, and starts up everything.
Before 2012 you needed to create a script to do so.
If I remember right, I set up the TFS2012 (including backup strategy) and restoring the content from the old 2010 server in less than 2 hours.


#18

@ Reinhard Ostermeier - How cool is that? Everything ready, just use it.


#19

Thanks all. I’ve got GitHub installed and am now starting to learn it. Seems ok so far, but I feel that I’ve got a lot to learn. The support available from Git seems first rate too.

Now I just need to decide what I’m going to move to Git and what I’m going to keep local/NAS stored.

Does anyone know if I can maintain a project locally and then add it to Git only when I’m ready to host/share the source?


#20

Generally you’ll keep a local repository and push to a remote repository whenever you’d like. Even if you never plan to share your source code, you should still be working with a VCS, just in case.