Project

General

Profile

Actions

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:

  1. most of the Lindat project collaboration is already being done on this platform
  2. searching across Lindat projects is useful
  3. no need to learn another collaboration platform
  4. 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 :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 over 7 years ago · 1 revisions