What's github
Github is a social networking site for developers, using git.
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