Repository

Differences between revisions 1 and 2
Revision 1 as of 2008-08-31 13:05:02
Size: 9498
Editor: 79-72-87-179
Comment: dumping from DocumentationTeam/Repository
Revision 2 as of 2008-08-31 14:29:15
Size: 5984
Editor: 79-72-87-179
Comment: removing sections only relevant to docteam members
Deletions are marked like this. Additions are marked like this.
Line 51: Line 51:
Line 59: Line 58:

== Making a patch ==

First, double check your work. Here is a good procedure to follow:

 1. Change to the scripts directory in the branch you are working on.
 1. Validate the file you changed.{{{
./validate.sh address/to/file.xml}}}
 1. Open the file in yelp and visually double check your work.{{{
yelp address/to/file.xml}}}

It seems like a lot of extra work, but it's worth it. You will save yourself the embarrassment when you catch your own mistakes before someone else does.

'''Note:''' It is generally a better idea to make several small changes and send them individually than it is to make one big change.

Preparing a patch is easy. You can make a patch for a single file or a group of files that have been modified.

 1. Change the present working directory to the root of your working copy.
 2. Issue the {{{bzr update}}} command. This updates your working copy with changes from the repository. Check for conflicts and resolve them.
 3. Issue the {{{bzr status}}} command. This shows the status of files. Ensure that all conflicts are resolved.
 4. Issue the command {{{bzr diff > diffname.txt}}}
 (!) If you wish to include your own name and a narrative for your change, you should create a ''bundle'' rather than a patch. To do this, issue these commands instead of the command at step 4 above:{{{
$ bzr commit -m "your narrative here"
$ bzr bundle > diffname.txt}}}

This creates the file {{{diffname.txt}}}, which contains the differences between the working copy and repository revisions of the modified files.

You should send the patch/bundle to the team [[DocumentationTeam/Contact|mailing list]] or attach it to a relevant bug report. If you have a mentor, copy them into the email and ask them to review it.

For more information about working with bzr, see the [[http://bazaar-vcs.org|bzr website]].

After you get used to DocBook, bzr and the DocumentationTeam, you are very likely to be offered an account so that you can write to the repository as well.

== Applying a patch ==

At times you may need to apply a patch to your copy of the docs that someone else has created but that has not been committed yet. This allows people to review changes and make suggestions before a patch is committed.

 1. Save the patch file in a suitable location, like {{{ubuntu-doc/patches/}}} for example.
 2. Change to the relevant branch on your computer:{{{
cd ubuntu-doc/ubuntu-hardy }}}
 3. Apply the patch file{{{
patch -p0 < patches/patch.diff }}}

That's it! However, depending on how the patch was created, you made need to cd into the directory where the actual file to be patched resides. Simply cd into that directory, (e.g. {{{ubuntu-hardy/ubuntu/internet/C}}}) before applying the patch.

Bzr bundles are even easier to apply using the command{{{
$ bzr merge address/to/bundle}}}
Line 119: Line 71:
== Publishing changes ==

Members of the ubuntu-core-doc team can publish their changes directly to the branches. To do this, run{{{
bzr push bzr+ssh://username@bazaar.launchpad.net/~ubuntu-core-doc/ubuntu-doc/name_of_branch}}}

We recommend that members use the concept of ''Bound Branches'' so that the {{{bzr commit}}} command sends your changes directly to the appropriate branch on Launchpad. You can bind a branch by running{{{
bzr bind bzr+ssh://me@bazaar.launchpad.net/~ubuntu-core-doc/ubuntu-doc/name_of_branch}}}

For more information about using bound branches, see [[http://bazaar-vcs.org/BzrUsingBoundBranches|the bzr website]].

About The Repository

The documentation sources for the project reside in Bazaar, a revision management system created by Canonical, the company behind Ubuntu. The repository is the hub of the core document development effort. Revision control helps us to work on the same files simultaneously without “clobbering” each others work. Any author wanting to contribute to the documentation effort can checkout their own branch or working copy of the documentation sources and make changes to this copy.

If you have never worked with a version control system, don't be nervous - you cannot break anything in the repository, only your local, working copy. This is because you will be working as an anonymous user and therefore do not have the permissions to change anything in the repository. Only people with commit access can make changes to the repository. People are given access once they have consistently provided contributions and demonstrated commitment.

A list of Doc Team Bazaar branches is available on Launchpad.

Installing Bazaar

In order to use Bazaar, install the bzr package.

Once installed, type bzr whoami 'Your Name <you@example.com>' in a Terminal to identify yourself to bzr. You might also need to change the bazaar plugin that manages launchpad login to match your launchpad username. bzr launchpad-login <launchpad user name> should change this.

Generating SSH keys

If you are using bazaar over ssh, you might also need to generate ssh keys and add it to launchpad, and add a ~/.ssh/config to allow you to connect to launchpad with a different user name than your Ubuntu Linux account.

  1. Type ssh-keygen -t rsa to generate a ssh key. If you already have generated ssh keys, feel free to ignore this step.

  2. Visit https://launchpad.net/~<your launchpad username>/+editsshkeys and update your ssh keys.

  3. Add/Edit ~/.ssh/config to contain the following

Host *launchpad.net
User <your launchpad username>

Checking-out the docs

To make changes to documentation held in a Bazaar branch, you first need to download a copy onto your computer. These instructions cover downloading the ubuntu-changes branch of the gnome-user-docs.

  1. Open a Terminal by pressing Applications -> Accessories -> Terminal.

  2. Type mkdir ubuntu_bzr and press enter. This will create a new directory called ubuntu_bzr in your Home directory. Of course, you can create a directory with a different name and in a different location.

  3. Type cd ubuntu_bzr to change to the new directory.

  4. Type bzr branch http://address/to/branch name_of_branch into the Terminal (choose the branch which you want to download from the list on Launchpad). This will download the whole of the branch, which you will then be able to modify using a text editor. This process may take quite a while, as it downloads the whole of the revision history in the branch. See Advanced below for ways to speed up this process.

Advanced

There are several ways to improve the speed of downloading branches.

  1. If you wish to check out more than one branch, it is more efficient to store the revision history for the branches in a shared repository, because the revision history for all of the branches shares a lot of data. To set up a shared repository, create a folder (e.g. "ubuntu-bzr") which you wish to use to store all the branches in as follows:

    $ bzr init-repo --trees --format=dirstate-with-subtree ubuntu-bzr
    You can then create branches within this subfolder using the process described in the previous section and they will share their revision history in the shared repository you have created.
  2. Lightweight checkouts. You can avoid downloading the full revision history for a branch using a lightweight checkout:

    $ bzr checkout --lightweight http://address/to/branch name_of_branch

    For more information see the [http://bazaar-vcs.org/CheckoutTutorial bzr website].

  3. Downloading a tarball of the revision history. To improve download speed, you can download a compressed tarball which you can use to create a shared repository with the revision history for all the branches. The tarball can be downloaded here and is currently 420MB (a saving of 200MB or so on the full shared repository). After downloading the tarball, extract the contents into the folder you wish to use for a shared repository. You will then have full revision history for all the branches. To get a updated working tree for any branch, simply run:

    $ cd name_of_branch
    $ bzr checkout .
    $ bzr update

Updating a check-out

You will probably want to keep up-to-date with changes made to the documentation. To download the latest updates to ubuntu-changes:

  1. Open a Terminal.
  2. Change to the directory which contains your original checkout (e.g. ubuntu_bzr/name_of_branch, as above).
  3. Type bzr merge and any updates will be downloaded.

See a list of changed files

To see a list of all of the files which you have changed in the current directory, type the following:

bzr diff | grep ===

Command summary

To see a simple one line reminder for each of the commands outlined here, type the following in Terminal:

bzr help

Additional information

See the Bazaar Documentation website for comprehensive documentation. There is also a useful quick-start guide.


CategoryDocteam

DocumentationTeam/SystemDocumentation/Repository (last edited 2014-07-02 21:05:36 by belkinsa)