[Top][All Lists]

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

Re: [Monotone-devel] missing public keys

From: Peter Stirling
Subject: Re: [Monotone-devel] missing public keys
Date: Sun, 7 Oct 2007 04:31:01 +0100

I believe I have something that can help you.

I wrote a lua program that:
Looks for revisions with 'bad' certificates (as reported by "mtn au certs <rev>") which have private keys available to monotone
                (ie "mtn au keys" has a "private_location"), and
        Uses the "mtn db execute" command to delete the bad certs
(all certs for that revision by that key because figuring out the hash of the bad certs was beyond me, however it does track all the good certs as well as bad for reinsertion), and finally,
        Uses "mtn au cert <rev>" to add the certs back to the database.

(I managed to lose the password to my key so I had to delete the key, and generate a new one, causing monotone to complain
 loud and long for every invocation)

I've used it on my own database and it seems to do the job without wrecking anything but I would (and did) make backups before trying it out.

Assuming that no one reading this sees holes in its logic (or points out some mtn invocation that I missed that magically does this for you)
I can mail you a copy. :)

On 6 Oct 2007, at 8:45 am, Benoît Dejean wrote:

Le vendredi 05 octobre 2007 à 14:08 -0700, Nathaniel Smith a écrit :
On Fri, Oct 05, 2007 at 10:07:49AM +0200, Benot Dejean wrote:
Let me explain better.

I'm missing two public keys:
- an old key of mine that i used to commit on this project.
- a key from a another developer.

I though the keys were stored in the database. My old key was surely in my ~/.monotone/keys but i think i deleted it because i no longer needed it. Maybe that was a mistake. But the developer key, i never touched it: i got this developer's revisions only by sync'ing. I don't understand.
These branches are 1 year old.

I don't understand either; for every cert in a db, we're supposed to
also have the corresponding public key in the db.

Is there a way to fix the db then ? Like re-signing the certs ?
Is it possible that a schema migration once missed some keys ?

What does ls keys say?

It doesn't show the missing key. They are not in the db, neither in the

Does the server (that you and the other developer presumably sync
with) have the keys?

No server. The project is dead and i haven't managed the developer.
In order to be able to checkout, i've patched
bogus_cert_p to ignore unknown cert.

Thank you very much.
Benoît Dejean

This email has been verified as Virus free
Virus Protection and more av=
ailable at

Monotone-devel mailing list

reply via email to

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