WormBase Source Code
THIS DOCUMENT IS DEPRECATED! PLEASE DO NOT EDIT IT HERE.
The WormBase source code is maintained using the distributed SCM system Mercurial. We use BitBucket.org as a convenient place to host the code and track issues:
- 1 Available Repositories
- 2 Get Mercurial
- 3 Set up your environment
- 4 Checking out the code
- 5 Working With Mercurial
- 6 Reference: Migrating to Mercurial
- 7 Reference: Migrating to git
http://bitbucket.org/tharris/wormbase - The WormBase web application (public)
http://bitbucket.org/tharris/wormbase-admin - Administration code (private)
Set up your environment
Minimally, create a file at ~/.hgrc containing:
[ui] username=First Last <email@example.com>
Checking out the code
The following examples all use Mercurial over http. You can also use mercurial over ssh.
cd ~/projects $ hg clone http://bitbucket.org/tharris/wormbase/
Or via https:
If checked out through http/https, you will be required to provide username/password when you do 'hg push'
Working With Mercurial
Be sure to see the excellent Mercurial reference text.
Joel Spolsky has written an excellent tutorial at hginit.com.
Here's a great tutorial on managing complex commits and merges using a triple-repository strategy. What follows is a distillation of this strategy.
Pulling in Changes and Updating in one step
$ hg pull -u
Pushing Changes to the Repository
$ hg push
Suggested Work Strategy
As derived from:
Create two parallel repositories
remember to register ssh key in your bitbucket account first in order to use hg clone ssh. website-main and website-sync
% hg clone ssh://firstname.lastname@example.org/tharris/wormbase/ website-main % hg clone ssh://email@example.com/tharris/wormbase/ website-sync
# (If you cloned your local repository, make sure that # website-sync points back to master) % cp website-main/.hg/hgrc website-sync/.hg/hgrc
1. Work in website-main. Edit files at will, and check in logical changesets as needed(hg commit ...) 2. When you want to push a changeset, go to your sync clone, and pull your new changesets from your working clone: % cd ../website-sync % hg pull ../website-main && hg update 3. At this point, it's best to try a build/test as well, to make sure changeset is complete. If you're working on many things in parallel, it's possible that your changeset is depending on a change in a file you haven't checked in yet. 4. Now pull in the new changes from the master, and merge these: % hg fetch If don't have the fetch extension installed, do it manually % hg pull && hg merge && hg ci -m "Merge" 5. If something went wrong with the merge - no problem. You can just go and nuke the entire sync clone and try again! Your modified files, and your new changesets, are still sitting completely unaffected in the main clone. Just clone main again and try more carefully :) 6. Now you can push your merged changesets to the master repository: % hg push 7. ...and now you can pull these changes back into your main repository: % hg pull ../sync && hg update
Reference: Migrating to MercurialAfter creating the repository on BitBucket, I cloned it and populated with a exported version of source from SVN. $ hg clone http://bitbucket.org/harris/wormbase $ mv ~/wormbase.svn/* wormbase/. # Add and commit the files $ hg add $ hg commit -m 'Initial import of my old svn repository' # Push the changes back to BitBucket $ hg push
Reference: Migrating to gitGlobal setup: Download and install Git: http://git-scm.com/download git config --global user.name "Your Name" git config --global user.email firstname.lastname@example.org Next steps: mkdir wormbase-app cd wormbase-app git init touch README git add README git commit -m 'first commit' git remote add origin email@example.com:tharris/wormbase-app.git git push origin master Existing Git Repo? cd existing_git_repo git remote add origin firstname.lastname@example.org:tharris/wormbase-app.git git push origin master Importing a SVN Repo? Click here When you're done: Continue