HOW-TO check out PKP applications from git

From PKP Wiki
Revision as of 19:58, 14 October 2009 by (Talk | contribs) (Inserted PKP git HOW-TO)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search


Once you've completed our Git sub-module tutorial you are ready to start developing for PKP.

This is the official process to check out OMP with the PKP library as a sub-module.

Create user

Go to and create a user account. Log in to your user account.

Delete existing personal forks

First you have to delete existing personal forks of omp/pkp-lib if you have cloned these repositories before. You obviously shouldn't do this when there are still changes in there you don't have in other locations!

  • Go to your personal github dashboard.
  • In "Your Repositories" select the forks you want to delete.
  • Go to Admin tab.
  • Down on the page click on "Delete This Repository".
  • Repeat these steps for both omp and pkp-lib

Fork the official omp/pkp-lib repositories

Clone your personal omp locally

Please replace "your-pkp-workspace" and "your-user" with the appropriate values.

cd ~/your-pkp-workspace
git clone omp

Set up pkp submodule in your local omp clone

cd omp/
git submodule init

edit .git/config with your favourite editor and find

[submodule "lib/pkp"]
        url =

Change the url to

        url =


git submodule update
cd lib/pkp/
git checkout master
cd ../..

Create development branches

Create development branches in the main project and the sub-module. I'll use the branch "modal" here but this is arbitrary. The branch name should represent the development topic you intend to work on.

git branch modal
git checkout modal
cd lib/pkp/
git branch modal
git checkout modal
cd ../..

Never develop directly on the master branch. We use the master branch to track our central CVS repository. Only "official" changes from the CVS should be pulled into master.

Start pulling changes

Now you can start pulling in changes from other people's repositories. The following is just an example. See for yourself what others are working on and pull in what you need to get started.

cd lib/pkp
git remote add juan \
git pull juan modal

cd ../..
git remote add juan \
git pull juan modal

You may get merge conflicts, if the repository you pull from did not merge in all changes from CVS already. See man git-merge for more info on how to solve merge conflicts.

Make your own changes

Make your own changes, publish them to your own repository for others to pull from

touch my-new-file.tmp
git add my-new-file.tmp
git commit -a -m "added a useless file"
git push origin modal

That's all. Enjoy developing PKP applications on git!