Updating And Merging

If you have multiple working copies of dpkg, you will need to update them to include changes you've made in your archive in one of the others. To see whether any changes need to be applied use tla missing and to apply them use tla update.

$ tla missing
patch-3
patch-4
$ tla update

This brings your working copy up to date with your archive.

Merging

Because your archive is a branch, it won't automatically receive changes made to my own main line development branch. You need to merge those changes in and ensure they don't conflict with anything you've been working on (usually ChangeLog and debian/changelog need a manual fix).

A good time to do this is usually when new releases are made, or when you know of changes in my archive you need to have in yours.

You can use tla missing to find out whether there are missing changes in other archives as well.

$ tla missing scott@netsplit.com--2005/dpkg--devel--1.13
patch-50

There's a couple of useful parameters you can supply to get more details, I generally use all of -Dscf.

$ tla missing -Dscf scott@netsplit.com--2005/dpkg--devel--1.13
scott@netsplit.com--2005/dpkg--devel--1.13--patch-1
    2005-01-01 12:00:00 GMT
    Scott James Remnant <scott@netsplit.com>
    frobnicate the foo bar

If you decide you want those changes, you'll need to merge them into your archive. First you should use tla changes to check that you haven't got any outstanding changes in your working copy. If you have, either commit them or use tla undo to move them out of the way. You're now ready to use tla star-merge to bring in my changes.

$ tla undo
$ tla star-merge scott@netsplit.com--2005/dpkg--devel--1.13
  :
C  ChangeLog
M  lib/foo.c
M  lib/foo.h
  :

If you see lines beginning with C it means there's a conflict. There will be a ChangeLog.rej file containing the patch that didn't apply. You'll need to resolve these manually, or ignore them if they're bogus.

Finally you'll need to commit the merge to your archive, and if you moved your changes out of the way use tla redo to put them back.

$ tla-make-changelog
$ tla commit
$ tla redo

dpkg: ArchRepository/UpdatingAndMerging (last edited 2005-01-02 13:27:23 by ScottJamesRemnant)