Version Control Basics

1) Bazaar (bzr)

All of the components for Mythbuntu are stored in bzr, a version control system. bzr will be required  for reviewing code and making branch modifications. 

You can install bzr from apt://bzr

Once you've installed bzr, you'll want to set up your user account using the whoami command.   

For example:    

bzr whoami "Mario Limonciello <superm1@ubuntu.com>" 

If you will be creating patches or changing things, you'll want to configure pushing via SSH.  There are two prerequisites:  

  1. You need to add an SSH key to your Launchpad account. You can visit https://help.launchpad.net/YourAccount/CreatingAnSSHKeyPair for more information on how to do this.
  2. You need to log into launchpad using launchpad-login:  
bzr launchpad-login USER

Checking out a branch is done like this:    

bzr get BRANCH_URL
  • BRANCH_URL is the URL described individually below   

Add new files that weren't previously in version control:

bzr add FILE
  • FILE is the file to add (with the full path)
Before committing changes, use the following commands to see what you are about to commit:
bzr status
bzr diff

To actually commit your changes:

 

bzr commit

 

If you are in the Mythbuntu Team (http://launchpad.net/~mythbuntu), you should bind to the branch and then will push when you make a commit automatically. 

bzr bind BRANCH_URL

If you are not in the Mythbuntu group, you will be able to push to a private branch and then request  a merge from a Mythbuntu developer.    

bzr push lp:~USER/mythbuntu/BRANCH_NAME
  • USER is your launchpad account name
  • BRANCH_NAME is the name of the branch that will be merged

 

2) Subversion (svn)

Components for MythTV, Mythplugins, and Myththemes are stored via  svn, a version control system. svn will be required  for producing patches to submit upstream.

You can install svn from apt://subversion

Here is the syntax for checking out from a svn branch:

svn checkout BRANCH_URL

If you have an existing checkout and just want to update to the latest version, here's how to do it:

svn update BRANCH_URL