New Year

If you used the <email-address>--<year> naming convention for your archive as described in ArchRepository/CreatingAnArchive, then at the beginning of each year you will need to create a new archive. The advantages of doing this are that you can effectively out-date branches and categories by not adding them to your new archive.

Making the Archive

First follow all of the instructions in ArchRepository/CreatingAnArchive again, making sure you use the new year instead of the year you created the previous archive. Using the same examples, you'd do something like:

$ tla make-archive --signed jbloggs@debian.org--2005 ~/arch/jbloggs@debian.org--2005
$ tla make-archive --signed --listing \
        --mirror jbloggs@debian.org--2005 \
        sftp://people.debian.org/home/jbloggs/public_html/arch/jbloggs@debian.org--2005

$ tla archives
jbloggs@debian.org--2004
    /home/jbloggs/arch/jbloggs@debian.org--2004
jbloggs@debian.org--2004-MIRROR
    sftp://people.debian.org/home/jbloggs/public_html/arch/jbloggs@debian.org--2004-MIRROR
jbloggs@debian.org--2005
    /home/jbloggs/arch/jbloggs@debian.org--2005
jbloggs@debian.org--2005-MIRROR
    sftp://people.debian.org/home/jbloggs/public_html/arch/jbloggs@debian.org--2005-MIRROR

$ tla my-default-archive jbloggs@debian.org--2005
$ echo "jbloggs@debian.org--2005" \
        > ~/.arch-params/signing/jbloggs@debian.org--2005-MIRROR
$ tla archive-mirror

Populating the Archive

At this point your new archive will be empty, whenever you work on a particular project you should tag that project into your new archive. It is highly recommended that you do this at the point you work on it, rather than tagging everything across that you think you might work on. That way each archive really does reflect what you worked on in a given year.

This process is the same as that of creating ArchRepository/YourOwnBranch, using the tla tag command. The difference is that you make the branch a branch of your previous one, rather than the dpkg branch.

$ tla tag -S jbloggs@debian.org--2004/dpkg--devel--1.13 \
        dpkg--devel--1.13

The archive name in the first argument is your previous year's archive, and in the second argument we omit the archive name and it'll default to your new one.

Existing Working Copies

The chances are that if you work on a particular source tree regularly, you will already have working copies checked out. These will be on the wrong year's branch, so you'll need to update them to the new branch.

First you need to ensure your working copy is up to date and includes any changes made on either branch. This can be done using the tla apply-delta command within the working copy, and does not discard any uncommitted changes you may have made.

$ tla apply-delta $(tla logs -rf | head -1) \
                  $(tla revisions -rf jbloggs@debian.org--2005/dpkg--devel--1.13 | head -1)

The first argument is given by finding the current version of the working copy, the second argument is given by finding the latest version in the new archive. This will create a changeset between the two and apply it to your working copy. This changeset will include the patch logs, so Arch will see this as a merge.

Finally you need to inform Arch that you want new commits to go to your new branch, this can be done within the updated working copy using the tla set-tree-version command.

$ tla set-tree-version jbloggs@debian.org--2005/dpkg--devel--1.13

Your working copy is now up to date with the branch, and any changes you make will be committed to the new branch.

Merging from Other Branches

Because both your archive and the Dpkg archive are changed every year, when you perform a star-merge Arch will not immediately notice that the trees are related. You will see something like this:

$ tla star-merge scott@netsplit.com--2005/dpkg--devel--1.13
star-merge: unable to merge unrelated trees.

This is very easy to solve. First make sure you are up to date with the previous year's updates.

$ tla star-merge scott@netsplit.com--2004/dpkg--devel--1.13

Then use the tla join-branch command to make your working copy related to the new year's branch.

$ tla join-branch scott@netsplit.com--2005/dpkg--devel--1.13

And merge in the changes from that.

$ tla star-merge scott@netsplit.com--2005/dpkg--devel--1.13

You can now commit the merge as one changeset, bringing you completely up to date.

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