Tuesday 26 October 2010 7:51:30 am
By : Ole Marius Smestad
We have an exciting piece of news in store for you. Actually some of you might have noticed it already, that ezpublish is no longer the only repository under the ezsystems umbrella on Github:
Now, you will also find the repositories for all of the extensions we ship with eZ Publish, right there next to it. After migrating eZ Publish itself over to github earlier this year, this is something our development team is pretty thrilled about.
EDIT : a full-blown tutorial on how to participate to eZ Publish development using git/github will help you get your hands on the extensions as well :
How to contribute to eZ Publish using Git
Why are we doing this, you might wonder. The truth is that we have several reasons for doing this, let’s have a look at them in no particular order.
First of all, after having moved eZ Publish itself to git and github, we started to feel that it would be beneficial to be able to use the same tools when working on our extensions too. And since we moved eZ Publish to github, in the first place, moving extensions later on, was in the cards and follows as a natural progression of this first step.
We originally moved the eZ Publish repository over to github, because we didn’t see the need anymore to be hosting and maintaining our own SVN servers, when we could use a service such as github, which provided more features. Furthermore, we were driven by a wish to use git as our SCM tool. The majority of our engineers preferred the flexibility and the sizeable toolbox that came with git, and so the journey towards github started. Today this journey has continued.
Our migration to github, isn’t all about our own egotistical reasons. We are strong believers that this change will benefit you, as a community members and contributors, even more. It’s our feeling that github will make our code easier to browse, easier to follow and keep up with. And most important of all, we think it will be easier for you, if you want, and we hope you do; to contribute back to all of our projects. We sincerely want to encourage this, and aim to create a better environment to nurture this, with this move.
Patches, tweaks and improvements can be organized in forks of our projects, and be channeled back via pull requests, we think this will be a vastly superior experience.
So what has changed? At the moment we have transferred our extensions that are built and bundled together with our eZ Publish releases to github. That means that some extensions from http://svn.ez.no/extensions/ and http://svn.projects.ez.no/ have been moved over. All available repositores are visible on http://github.com/ezsystems/. At this time these extensions were moved over:
If you are used to the subversion-way of handling checkouts, a few things are a little bit different with git. For instance, unlike subversion, branches and tags are now accessed and changed via different mechanics, they aren’t just a different path on the svn server anymore. Please have a look at the git svn crash course for more information on this.
If you have existing checkouts of any of the extensions listed above. You first have have to retrieve a copy of the same extension on github e.g. the online editor extension, ezoe:
git clone git://github.com/ezsystems/ezoe.git
After cloning the so called ‘master’ branch will be checkout out, into your working directory. ‘Master’ is just a naming convention, and is the git equivalent of ‘trunk’ in the subversion universe. In order to have a look at what other branches are available we can look at the remote branches with `git branch -r`, and tags with `git tag`.
When the files are checked out, you can start adding your changes to the cloned repository.
We have tried to be systematic when migrating our repositories over from SVN, so that our old stable branches such as:
http://svn.projects.ez.no/ezoe/stable/5.2/ezoe/
are now accessible in git as:
stable-5.2
In addition we have pruned the paths somewhat, where we can. This means that extension files are now placed directly at the root of the repository, rather than in subfolders such <extensionname> or extension/<extensionname>.
For specific information on how to checkout remote branches, and how to work with them and/or tags if you choose, please see the links to the git references, or ask in our forums.
Finally, I would like you to stay tuned for an upcoming tutorial we are doing, covering the topic of contributing to our projects via git. I think you will like it.
The Internet has a host of git tutorials, from material for the complete beginner, to the most arcane things imaginable. However as a start, if you are coming into this new to git, I would recommend github’s reference at http://gitref.org/. This reference links further to an online book on the topic, Pro Git, and the git documentation pages. Also, if you are coming to git form subversion the following guide might be of some assistance to you, the git svn crash course http://git.or.cz/course/svn.html.