A while ago, the Psi development team switched from Darcs to Subversion for version control, because the Darcs pros (distributed, extremely simple and elegant) did not compensate for the cons any longer (slowness, non-scalability, ‘infinite’ merges, lack of community and tools, …). Our development was pretty central anyway at that time, so we decided that Subversion was good enough. However, we started to miss local commits more than we thought we would, and some of us are working on their own forks, which makes Subversion a suboptimal choice. We are therefore currently trying out Git as a replacement, which should bring us all the good stuff from Darcs, combined with the speed and portability of Subversion. Note that during the experiment, we will not be updating our Subversion branch any more (which will soon cause breakage, since Subversion automatically updates changes to the external Iris repository).
If you’re interested in following our latest developments from our experimental Git tree, simply clone our official repository through the following steps:
git clone git://git.psi-im.org/psi.git cd psi git submodule init git submodule update
To get the latest changes after an initial clone, execute the following commands
git pull git submodule update
Note that you need Git 1.5 or later in order to be able to do these commands.
If you’re interested in knowing more about using Git, check out Scott Chacon’s excellent Git talk (and accompanying book).
For fans of social networking, we also have a mirror of the official Psi repository on GitHub. And while we’re on the topic of web interfaces: while waiting for an official web interface to our Git repository, you can check out an experimental one here.
Tags: Darcs, Git, Jabber, Psi, Subversion, Version Control Systems, XMPP
\o/
(1) I’m unmerging GHC and darcs as we speak
.
(2) If you have/use GitHub, do you even need any other gitweb interface?
GitHub does a damn good job of a lot of things, especially now that they offer downloads without a git binary.
GitHub is an excellent web interface, but most of the times, it’s extremely slow as well. It’s for those times (and for the times that GitHub is down) that a fast (cgit) web-interface comes in handy.
I must not go to GitHub enough any more. I know they’ve been through a bumpy road, but lately it’s worked pretty nicely for me.
Ah well. Having a secondary is not a bad idea, I was just generally curious.
How to make the transition between the SVN and Git dev ?
Should a make distclean be run in the SVN …/psi folder first and then git clone run on the parent folder ?
@kael I’m not sure I understand what you mean. There is no way to transition from SVN to Git. You should remove your SVN working copy, and clone a Git repository, and start from scratch. If you had pending changes, you should ’svn diff’ before removing the working copy, and apply the patch to your Git clone.
@Remko
Actually, I’m not yet able to patch Psi.
I was referring to running SVN versions, though. I’ll remove completely the SVN version and compile a new Git one. Thanks.
Remko, are you going to sync SVN repository with Git? I just want to mention that our GSoC projects are forks of mblsha/psi, which is in turn mirror of SVN. It is impossible to create a fork of psi-im/psi without removing existing repo.
@AlekSi: Unfortunately, no, we’re not going to sync svn. The reason is that it is very hard to do an automatic sync of an svn with a real Git repo. I know it’s annoying for you GSoC students, but you can ask mblsha how he converted his Git repo to the official one. In the worst case, you can do a git diff && git apply, at the cost of change history. Sorry for that.
Remko, actually to sync master branch with svn trunk and make svn read-only is easy.
My new repo is fork of psi-im/master now. Thanks for git.
@Aleksi: Actually, I couldn’t find an easy way to do it. Keep in mind that several people are committing to Git, and that the authors need to be maintained in subversion. The git-svn approach only works for one committer in the Git repo AFAIK.
Where I can look the live changelog for git repo like the svn one at url http://dev.psi-im.org/websvn/log.php?repname=Psi ?
@Murz: In my post, there are links to both GitHub and a temporary web-interface. The ‘commits’ sections of both contain a live changelog. The temporary web-interface will move to dev.psi-im.org as well, but we haven’t had time to do that yet.