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: Russ Brown
Subject: Re: [Gnu-arch-users] Usage tips
Date: Thu, 12 Feb 2004 10:08:03 -0000
User-agent: Opera7.23/Linux M2 build 518

Thanks very much for your quick and informative reply. As I say I tend to be fine with most things once I've had an initial helping hand. I know that most of this is in the tutorials but I was struggling a bit to relate it to my specific situation, especially since I'd rather not allow for any mistakes. It probably doesn't help that I keep trying to think of things from a CVS point of view!

Once again, thanks. :-)

On Thu, 12 Feb 2004 04:33:24 -0500, Miles Bader <address@hidden> wrote:

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



--
Using M2, Opera's revolutionary e-mail client: http://www.opera.com/m2/




reply via email to

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