Skip to content

BuildingFromSourceRoadmap13

oms-ratt edited this page Feb 14, 2014 · 5 revisions

Transition Notes For MeqTrees 1.3

As of Feb 2014, we've moved the MeqTrees repositories to github, and made some changes to the build system. These notes are meant to summarize the major differences for those used to the old way of doing things. See BuildFromSource for full details.

Git vs. Subversion

We're now using git as the version control mechanism rather than svn. There are many good reasons to make the transition. This page is a crash course in git for svn users: http://git.or.cz/course/svn.html

In a nutshell, these are the changes to the most common operations:

  • git clone URL instead of svn co URL to download a remote repository to your local disk

  • git pull instead of svn up to update to the latest revision

  • git commit -a followed by git push instead of svn commit to commit changes.

  • git add FILENAME adds new files to the repository, just like svn add

  • git status instead of svn stat, to check the status of any local modifications, etc.

Updated repository structure

The repository URLs are of course completely different, and we have split out some packages into separate repositories. See BuildFromSource for a complete list of the new repositories.

In particular, some pathnames have changed, for example:

  • Timba -> meqtrees-timba
  • Cattery -> meqtrees-cattery/Cattery

etc.

Repository branches

In the old svn repositories, we had a "trunk" on which all development took place, and every now and then a release was made, with a corresponding release branch created (there were also some experimental branches maintained by Oleg). If you lived on the bleeding edge, you probably tracked updates to the trunk with svn up.

Git makes maintaining branches very easy, so we're incorporating this feature heavily into our development. For now, we plan having two branches by default: master and devel. Master is meant to be stable(-ish), while devel is where all the latest fixes and features are checked-in. Every now and then we'll sync the devel changes into the master branch (after they have -- presumably -- been somewhat tested).

The upshot is that if you assiduously followed the svn trunk in the old days, you probably want to follow the devel branch now. Changing between branches is very easy:

  • When you git clone a repository initially, you're following the master branch

  • To start tracking the devel branch for e.g. Timba (assuming you haven't made any changes of your own), do

$ cd meqtrees-timba
$ git checkout devel

Do this for any other repositories where you want to follow devel (meqtrees-cattery and pyxis are likely candidates). And any time you want to switch back to the master, just do git checkout master.

If you want to commit a fix to the code, but are afraid of "breaking the system" for others, then you definitely want to follow the devel branch. Commit your fixes to this branch, and you can be at least sure the master version is not broken if you overlooked something.

Clone this wiki locally