monotone-devel
[Top][All Lists]
Advanced

[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





reply via email to

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