[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Monotone-devel] Packets or Packet I/O no longer works?
From: |
Will Robertson |
Subject: |
Re: [Monotone-devel] Packets or Packet I/O no longer works? |
Date: |
Thu, 12 May 2005 14:58:00 +0000 |
On Tue, 2005-05-10 at 20:19 +0200, address@hidden wrote:
>
[...]
> You're welcome,
>
> first let me beg pardon for answering you so late, but I was very
> busy!
No problem, better late than never ;-)
But very, very helpful.
[...]
> Today as Monotone does not support to import single revisions only if
> the parent revision does not exists in importing database, the absence
> of the -delta switch makes no sense anymore. In the past when Monotone
> had no revisions but only manifests, you could import every single
> manifest you like. To be sure you could import a full dump of a
> manifest and it would be available in the target database regardless
> if the ancestor manifest exists or not. But as mentioned, this is
> impossible today! So do not use the full dump mechanism, it is
> senseless.
That's interesting: I had stopped using Monotone for a while, and
hadn't realised they'd intorduced such requirements -- I s'pose
somewhere around when the NetSync protocol was developed, with it's
smarter sync methods.
[...]
> Yeah! But with the scripts you get some of the features back. But do
> not forget what revision you dumped last to be imported. If you forgot
> one of the ancestors and import you packets, they will not be
> available to you until the revision chain is complete.
>
> That means: suppose you have that revision chain in your source
> repository:
>
> A -> B -> C -> D -> E -> F
>
> and an empty target database. Then you dumped that chain in three
> packets containing:
>
> 1. A -> B -> C
> 2. D
> 3. D -> E -> F
>
> You could /not/ first importing 2, then 1. But you could import
>
> a) 1 + 2 + 3
> b) 1 + 3
So, does that mean if you try to import the same revision(s) more than
once -- i.e if part of an exported packet -- the duplicated revisions
will be ignored/skipped, and only the new revisions in that
revision-chain will be imported?
I mean: when importing, will it fail and stop importing if it hits a
revision which is already in the repository, thereby not importing
revisions that come after that duplicated one, or will it attempt to
apply all the revisions in a packet?
The reason why I ask is that there may be times when I have forgotten
exactly which revisions I've applied to which repository, and it would
be easier to guess and simply create a packet that will have more
revisions than I need (on purpose) in order to be sure that I've not
missed any.
[...]
> Exactly. I hope they will reintroduce that feature again. If not, I am
> currently planning to implement some further Tcl scripts, that will
> use more logic to produce those packets and remembering what ones
> already produces for what targets to avoid unnecessary revisions.
>
> (...)
>
>
> Best regards,
> Clemens.
> --
> Clemens Hintze mailto: c.hintze (at) gmx.net
Thanks again, Clemens.
Do you mind if I bounce/forward your email and scripts back into the
mailing-list so others can see them?
Maybe even persuade some C++ developer to reintroduce something
similar ;-)
--
Will