monotone-devel
[Top][All Lists]
Advanced

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

Re: [Monotone-devel] Re: deleting branches, keys, etc.


From: Derek Scherger
Subject: Re: [Monotone-devel] Re: deleting branches, keys, etc.
Date: Sun, 03 Oct 2004 12:03:37 -0600
User-agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.7) Gecko/20040813

Peter Simons wrote:
Henrik Holmboe writes:

 > I tend to think that is what filesystem backup/restore is
 > for.

The purpose of these commands would be to fix local screw ups *before* they get distributed out to the reset of the world. Since, once they have been distributed it takes a coordinated effort to remove them.

I am greatly in favor of adding these commands, and I'll use
them more frequently than I would like to. :-)

I agree with njs that these are not main-stream commands and should not appear as such. At the moment I'm thinking about something like

        $ monotone db remove pubkey foo
        $ monotone db remove privkey foo
        $ monotone db remove branch NAME ID

and the branch removal will fail if this is the last branch cert on the manifest since there is a fundamental assumption that every manifest belongs to at least one branch.

I wonder if

        $ monotone db drop ...

might be better, since "drop" in the same sentence as "db" might rightly conjure up more fear on the part of the user.

Renaming a branch would require adding the new branch cert to every manifest in the branch and then removing all of the old branch certs, which would still be rather painful. If the ID was optional the removal could be easier, but adding the new branch certs would currently still require a series of commands.

There has been some talk of adding a "branch" command to make adding branch certs easier and perhaps this could optionally take a branch name as an argument rather than a manifest (soon to be revision) id. Then renaming a branch might be as easy as

        $ monotone branch new.branch.name old.branch.name
        $ monotone db remove branch old.branch.name

One other small point to note is that I think the netsync code might include *all* certs on some manifest when it is transmitted. This means that if you sync new.branch.name and have not removed the old.branch.name certs they will also be transmitted. This should probably get fixed if a branch command does get added.

--
Cheers,
Derek




reply via email to

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