gnu-arch-users
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Gnu-arch-users] Usage tips


From: Miles Bader
Subject: Re: [Gnu-arch-users] Usage tips
Date: Thu, 12 Feb 2004 04:33:24 -0500
User-agent: Mutt/1.3.28i

On Thu, Feb 12, 2004 at 08:48:13AM -0000, Russ Brown wrote:
> Obviously, I want these changes to make their way back into my archive at 
> home.
> 
> I think I need to mirror (copy?) my archive onto a removable storage 
> device (I was going to use a Compact flash card, but the details aren't 
> important). At the customer's site I install the software by checking it 
> out from the archive on the storage device. I make the changes I need, and 
> then commit those changes to the archive on the storage device. When I get 
> home I put the changes back into my main archive.

The thing to remember is that mirrors are _read-only_ (for good reason:
committing to a mirror could result in namespace conflicts with archive it
was mirrored from).

I think the `arch way' to do what you want is (say your original archive is
called address@hidden'):

  (1) Mirror your archive on to the flash-card (or whatever).

  (2) Create a _new_ archive on the flash-card which you'll use for changes
      made at the customer's site; of course if you make multiple trips, you
      can keep on using the same flash-card archive.  Call this
      address@hidden'.

  (3) For each project you'll be wanting to modify, make a tag in the
      identically named branch of the customer's archive
      (address@hidden) which points to the latest version in your
      main archive; e.g., if you're going to work on
      `secret-project--devo--0', do:

        $  tla tag address@hidden/secret-project--devo--0--patch-89 \
                   address@hidden/secret-project--devo--0

  (4) When you do a checkout at the customer's site:

       A. Use `tla register-archive' to point address@hidden' at the mirror
          on the flash-card, and address@hidden' at the real
          archive on the flash-card.

       B. Checkout the project:

            site$  tla get address@hidden/secret-project--devo--0 xxx

       C. Do your mods

       D. Commit

       E. etc

  (5) When you get back, all your mods will be in the customer's archive
      on the flash-card.

  (6) In your comfy office, star-merge the customer's changes into main
      archive; e.g.:

         comfy$  cd /usr/local/src/secret
         comfy$  tla tree-version               # just for the info
         address@hidden/secret-project--devo--0
         comfy$  tla star-merge address@hidden/secret-project--devo--0
         ... lots of output ...
         comfy$  tla commit -s'Merge customer changes'

  (7) When you want to repeat the process, you can use the same
      customer-archive, and omit steps (1) - (3); you'll also have to make
      sure to:

       A. update the mirror of your main archive on to the flash card

       B. merge in any changes that where made to your main version into
          the customer's branch before working on it there (also using
          star-merge), maybe after (B) in step (4) above:

          site$  cd /usr/local/src
          site$  tla get address@hidden/secret-project--devo--0 xxx
          site$  cd xxx
          site$  tla tree-version               # just for the info
          address@hidden/secret-project--devo--0
          site$  tla star-merge address@hidden/secret-project--devo--0
          ... lots of output ...
          site$  tla commit -s'Merge project changes into customer branch'

...etc...

I think all of this is covered pretty decently in the tutorial BTW.

It maybe look sort of complicated, but much of it is one-time overhead, and
is pretty easy when you get used to this (I do this daily to share between
work/home, and there's no direct channel between them, so I have to use a
3rd site to do the synchronization).

-Miles
-- 
I'm beginning to think that life is just one long Yoko Ono album; no rhyme
or reason, just a lot of incoherent shrieks and then it's over.  --Ian Wolff




reply via email to

[Prev in Thread] Current Thread [Next in Thread]