BuildingFromSourceRoadmap13
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.
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 ofsvn co URL
to download a remote repository to your local disk -
git pull
instead ofsvn up
to update to the latest revision -
git commit -a
followed bygit push
instead ofsvn commit
to commit changes. -
git add FILENAME
adds new files to the repository, just likesvn add
-
git status
instead ofsvn stat
, to check the status of any local modifications, etc.
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.
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.