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

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

Re: [Gnu-arch-users] Temporary off-line archive


From: John Arbash Meinel
Subject: Re: [Gnu-arch-users] Temporary off-line archive
Date: Tue, 08 Feb 2005 12:40:05 -0600
User-agent: Mozilla Thunderbird 1.0 (Macintosh/20041206)

Kevin Geiss wrote:

do you have a mirror of the desktop archive on your laptop? or
somewhere? if you don't already have a mirror of the archive, I think
you may have a problem. (at least I don't know what to tell you to do,
other than keep working on the laptop, and create-changeset whenever
you would normally commit)

if you do have a mirror of the archive, everything is easy. just
create a new archive on your laptop, then in the new archive, create a
tag from the mirror of anything you want to work on. then you can
commit in the new archive whenever you want. when the desktop comes
back, you can star-merge from the laptop archive back into the desktop
archive.

On Feb 7, 2005, at 8:54 PM, Jeffrey L. Taylor wrote:

I have been doing development on my laptop with the archive on my
desktop.  The desktop MB died.  It will be several days until I can
get a replacement.  In the meantime, I would like to continue
develoment on the laptop, checking new code in, etc.  When the desktop
is functional again, I would like to transfer all revisions from the
laptop archive to the desktop archive.  Anything I should know about
creating the archive on the laptop to make this easy?

TIA,
  Jeffrey


Actually, if you have a *complete* mirror of the original archive (at
least complete enough that you are happy) you can promote the mirror
into being the new master.

If the mirror is fully complete, simply removing the =meta-info/mirror
file and re-register the mirror with the original archive name, and to
your system, it is the master. The *GIANT* caveat here is that you can
never have 2 patches with the same fully qualified name.
(address@hidden/prog--dev--0.1--patch-3). So if your mirror was not
complete (say it was missing patch-4), if you did a fresh checkout and
commit, it would create a new patch-4. This patch conflicts with the
other patch, and potentially invalidates the universe. (Think Back to
the Future, past selves and present selves can never meet :)

When the desktop comes back online, you can add the =meta-info/mirror
file, and register the desktop archive as a mirror. Then "tla
archive-mirror" will fill the desktop archive. After this, you can
switch them back.

It is generally okay to jump back and forth. As long as there is only 1
master archive where everything is committed, and it is fully sync'ed
before switching, nothing will break.

For a single user archive, this can be pretty helpful. The problem is
that in a multi-user archive, it is really hard to enforce the "only 1
archive is master at any one time, and all archives are kept in sync" rule.

Arch has 1 really strong rule, and that is a fully qualified revision
name is unique within the universe. (It only needs to be unique in the
universe that you interact with, but if you interact with it, and
someone else does, and someone else... Pretty soon it starts to go
everywhere.) That's why an email address is used as part of the archive.
Because if you use your domain name, ICANN does a pretty good job of
making that unique in the world. And your username is usually unique
within your domain, otherwise who would they send email to.  It's a neat
trick for getting global uniqueness by piggy-backing on something else
that is rather unique.

Sorry for the somewhat long rant, but if you understand the philosophy,
it might show you what you can do.

John
=:->

PS> If you don't have a mirror of the archive, things get a bit
trickier. If you have a fully populated revision library, you could
recreate an archive from that, but I'm pretty sure "tla tag" requires
access to the original archive. It seems like it is theoretically
possible to do if you have a pristine tree to do a tag + cacherev. Maybe
we should add this for the disaster recovery cases.

Attachment: signature.asc
Description: OpenPGP digital signature


reply via email to

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