is open for business (mostly)

Brian J. Tarricone bjt23 at
Mon Apr 21 07:54:51 CEST 2008

{Could someone fwd this to goodies-dev?  I'm too lazy to subscribe.}

Hey all,

For starters: no, Xfce is not migrating to git.  We're sticking with
svn, at least for now.

On the other hand, I've been messing around with git for a while, and I
really like it, so I decided to set up git hosting (using gitosis, if
you're curious) on our project server (, and write a
simple web frontend for people to manage their own git repositories.

First, a bit of a policy note:  This is not intended as a
general-purpose git hosting solution.  Let's keep all projects hosted
here Xfce-related, or at the very least, desktop-neutral (and
gtk-based, for neutral GUI apps).  If you just want free git hosting
for any old project, go to github or gitorious or wherever.

If you have a https account on (basically anyone with svn
commit access), then you automatically have an account on
Right now the admin panel is here:

It should hopefully be pretty self-explanatory.  Basically, the only
access we offer will be ssh-based, and all auth is done using ssh
public keys (no passwords).

So first, you'll use the admin panel to add your ssh public keys to
your account.  You can add as many keys as you want.  If you later want
to delete one, you can do that too.

Next create a new git repository (the repos link).  Hopefully that
should be pretty self-explanatory.  For security/sanity reasons, repo
names are a bit restricted -- only alphanumeric (US English alphabet),
and dash, underscore, plus, and dot are allowed.  Don't put a '.git'
extension on the end of the repo name.  Your username will get
prepended to the name automatically.

repo deletion or editing the repo metadata yet.  So be careful for the
time being, because you can't yet correct typos.

After you've created a repo on the server, you can create a repo
normally on your end and make commits.  When you want to push to the
repo on the server for the first time, you can do:

git-remote add origin git at$username/$reponame
git-push origin master:refs/heads/master

(Obviously, replace $username with your https username, and $reponame
with the name of the repo you created.)

To make your local 'master' branch automatically track the remote when
you do git-pull, do this (not sure if this is needed, but it works for

git-config branch.master.remote origin
git-config branch.master.merge refs/heads/master

I have cgit running at  If you checked the
appropriate box when creating the repo, you can view it on the web
there.  If you checked the 'anonymous access' box, read-only users can
fetch your tree by doing:

git-clone git://$username/$repo

TODO list for the admin interface:

* allow editing repo metadata
* allow deleting repos
* allow granting other users write (push) access to one of your repos
* allow uploading a ssh pubkey file (instead of pasting the contents
  into a text box)
* map user names to real names for the 'owner' display on cgit

Anyhow, that should be about it.  Give it a try, and let me know if you
have any problems.


More information about the Xfce4-dev mailing list