Development¶
Collaboration platform for Lindat¶
Redmine (https://redmine.ms.mff.cuni.cz/) will be used as a collaboration platform for this project for the following reasons:
- most of the Lindat project collaboration is already being done on this platform
- searching across Lindat projects is useful
- no need to learn another collaboration platform
- full control over the system
Source code repository¶
Source code repository of KonText is unfortunately Mercurial. As redmine currently supports only git and as git is used for most work on Lindat project,
Lindat KonText repository will be also a git repository.
Fork of ÚČNK KonText repository (the Lindat KonText) was created at https://bitbucket.org/ufal/lindat-kontext and this will be used as the base for local development.
The fork will remain as is and will be updated as needed.
Conversion to git repository gitolite@redmine.ms.mff.cuni.cz:lindat/lindat-services/lindat-services-kontext.git was done (see below) and this will be used for local
ÚFAL development. The development will be done in separate branches with lindat-
prefix as not to mix them with ÚČNK branches.
Development will follow the guidelines described here http://nvie.com/posts/a-successful-git-branching-model/.
These are are the newly created branches:- lindat-master - stable branch for local installation
- lindat-develop - development branch for local installation that will be merged into lindat-master
- lindat-<bug|feature|task>_<redmine issue number> - feature branches that will be merged into lindat-develop branch
These branches will be pushed to BitBucket as needed or possibly on regular basis.
Branches need to be pushed to BitBucket under the namespace branches like this:
git checkout lindat-master git push bitbucket branches/lindat-master
ÚČNK will be granted read-only access to our repository on BitBucket and incorporate our changes if interested.
NOTE! As the default main branch of ÚČNK KonText is not stable, the development of LINDAT KonText is currently based on the release-0.5.x branch. Thus the branches for development are as follows:
- lindat-release-0.5.x - stable branch for local installation
- lindat-release-0.5.x-develop - development branch for local installation that will be merged into lindat-release-0.5.x
- lindat-release-0.5.x-<bug|feature|task>_<redmine issue number> - feature branches that will be merged into lindat-lindat-release-0.5.x-develop branch
Conversion of Mercurial repository to git¶
To convert the repository from Mercurial to git you need to install the following packages:
aptitude install mercurial
Install git-remote-hg:
git clone https://github.com/felipec/git-remote-hg
and add the git-remote-hg
to your PATH
environmental variable or symlink it to $HOME/bin
.
And finally convert the repository:
git clone hg::ssh://hg@bitbucket.org/ufal/lindat-kontext cd lindat-kontext git remote set-url origin gitolite@redmine.ms.mff.cuni.cz:lindat/lindat-services/lindat-services-kontext.git git remote add bitbucket hg::ssh://hg@bitbucket.org/ufal/lindat-kontext git remote update git gc --aggressive git push --force git checkout -b lindat-master git push origin lindat-master git checkout -b lindat-develop git push origin lindat-develop
Incorporating changes from ÚČNK¶
To incorporate changes from ÚČNK, we first need to merge then into our develop branch (or special integration testing branch based on develop)
as only the develop branch is then merged into our stable branch. There will be conflits (at least in the lib/version.oy file)
git fetch bitbucket git checkout lindat-release-0.5.x-develop git merge bitbucket/branches/release-0.5.x git commit
To later incorporate changes into feature branches, just rebase on develop
git fetch bitbucket git checkout lindat-release-0.5.x-feature_327 git rebase lindat-release-0.5.x-develop git commit
Syncing BitBucket repository with ÚČNK¶
There are two options for syncing repositories on BitBucket
Syncing from GUI¶
Go to https://bitbucket.org/ufal/lindat-kontext. As the repository is a fork of https://bitbucket.org/ucnk/kontext then if the LINDAT fork is behind the parent repository, small information dialog appears in the top right corner of the page with the option to sync the repositories. Note that this dialog is not displayed otherwise.
Manual syncing from command line¶
Clone the original Lindat-Kontext mercurial repository from Bitbucket.
hg clone ssh://hg@bitbucket.org/ufal/lindat-kontext
Edit lindat-kontext/.hg/hgrc
and add ucnk entry to this file:
[paths] default = ssh://hg@bitbucket.org/ufal/lindat-kontext ucnk = ssh://hg@bitbucket.org/ucnk/kontext
Perform synchronization:
cd lindat-kontext hg pull -u ucnk && hg push
Git submodule¶
LINDAT KonText uses git submodule for dependency on LINDAT Common Theme. Thus it is necessary to perform
git submodule update
if the LINDAT Common Theme changes.
Updated by Redmine Admin almost 8 years ago · 1 revisions