GitAndGithub

What's github

Github is a social networking site for developers, using git.

How to configure

We made a generic user account for github called foswiki: http://github.com/foswiki/foswiki/tree/master

To configure your git repository (created using HowToUseGit), copy the "Global Git Config" from https://github.com/account, and add your ssh public key using the same page. If you're not sure, follow this tutorial: http://github.com/guides/providing-your-ssh-key

Then, to ease the push, add github as a remote link:
git remote add github git@github.com:foswiki/foswiki.git

Finally, push the branch you want using:
git push github local_branch:remote_branch
where:

  • local_branch is your local branch, which normally follows a remote one, and that you rebase to follow subversion
  • remote_branch is the name that will appear on github
What I've done is the following:
Subversion branch github branch local git branch
trunk master master
Release01x00 release release
foswiki.org foswiki foswiki

If, like me, you keep your local git branch aligned with github, you may simply:
git push github
and this will push all local branches that are also present on the remote site.

So, if you want to update everything, do:
git checkout master
git svn rebase
git checkout release
git svn rebase
git checkout foswiki
git svn rebase
git push github

If you wish to download everything first, you could issue first a
git svn fetch

-- OlivierRaginel - 30 Apr 2009

Discussion

This is an abridged version of the commands I used to get changes that were pushed to a github fork of foswiki committed back to svn.foswiki.org via git svn. I was interested in what the process would be like to pull random changes that might occur on github, back into svn.foswiki.org.

git remote add csirac2-foswiki git@github.com:csirac2/foswiki.git # Add my github fork as a remote repo
git fetch csirac2-foswiki
git diff Item9007...csirac2-foswiki/master # Or you could just do 'git diff HEAD'
git pull -X theirs csirac2-foswiki master # Merging: accept remote repo's changes
git status # Confirm the merge only touched the files we expected
git svn dcommit --username PaulHarvey -e  # -e allows us to specify an appropriate commit msg

-- PaulHarvey - 22 May 2010

I hope github will not become any important or even critical service within the foswiki project. I may be paranoid, but I find their terms not acceptable for myself. YMMV, but please read github's "Terms of Service" and "Privacy Policy" carefully. For example:

The ToS read: "A4. Your login may only be used by one person - a single login shared by multiple people is not permitted." -- I would expect that "a generic user account for github called foswiki" violates this rule?

Then there is "D4. GitHub, in its sole discretion, has the right to suspend or terminate your account and refuse any and all current or future use of the Service, or any other GitHub service, for any reason at any time." -- I would not trust any precious data to such a servie. Speaking for myself, I would never use github for anything more than pure backup server for other, more reliably hosted repositories.

Even more interesting: "E2. Prices of all Services, including but not limited to monthly subscription plan fees to the Service, are subject to change upon 30 days notice from us. Such notice may be provided at any time by posting the changes to the GitHub Site (github.com) or the Service itself." I understand that github may run your project for free until you put enough effort in it that losign it would be painful, and then they could decide that the service is no loger free, but they charge you $$$ for it. All they have to do is "posting the changes to the GitHub Site (github.com) or the Service itself." That means chances are good that you don't even notice such change in time. They have your e-mail addresses - why don't they actively notify about such changes?

G11 might be another reason not to use github. Better not use them for a project which receives any better interest than average.

-- WolfgangDenk - 24 May 2010

I am aware of those terms. The sf.net terms aren't pretty either.

I am not (and I don't think anybody else is) advocating github as foswiki's primary code repository.

This is git we are talking about. Everybody that's pulled from github has all their work on their local disk. It's trivial to push to multiple repositories. There's no reason to care whether github is around or not in 12 months time.

It's just a convenient place to host a git project.

As far as I can tell, projects that have a github presence do get extra contributors. Even TinyMCE: the other day, I got a patch accepted into the next release in just 9 hours flat! This is after uselessly waiting since September 2009 on the sourceforge bugtracker for the exact same code posted as a diff in a comment.

In the space of 9 hours, I was able to create a github account, make a fork of TinyMCE, push my fix, then make a pull request to the moxiecode devs directly. All they had to do (from a different timezone) was click a button and my patch was accepted.

github, ohloh and others seem to be forming social coding communities - in a way that I believe could increase productivity.

-- PaulHarvey - 25 May 2010

especially with git, we really don't care about their terms&conditions, as everyone that does a clone has a functional copy/backup of the projects repository. And thus sites like github can write all sorts of stupid terms for the benefit of their lawyers and financiers, and we, the open source community can happily use their goodness, and leave risk free if the situation changes.

and thus MoveCodeRepositoryToGit.

-- SvenDowideit - 16 Jun 2010
Topic revision: r5 - 16 Jun 2010, SvenDowideit
The copyright of the content on this website is held by the contributing authors, except where stated elsewhere. See Copyright Statement. Creative Commons License    Legal Imprint    Privacy Policy