|
From: | William Uther |
Subject: | Re: [Monotone-devel] cvssync freeze |
Date: | Fri, 23 Mar 2007 08:16:26 +1100 |
On 20/03/2007, at 1:20 PM, Christof Petig wrote:
i) Either mtn_automate::get_sync_info() should be falling back to fileattributes when the cert doesn't contain the info it needs, orWhatever writes the sync info into the cert needs to add sync infofor all files in the revision. (I suspect the first option here is better - it is backwards compatible with people who have already hit this problem, and it is more space efficient.)I did not hit this problem, yet. Of course I prefer translucent or deltachanges.
Yeah - but attrs are deta. It's just using mtn's internal structure to get that delta rather than rolling another mechanism.
and, ii) Failing an invariant should cause a clean windup, not a freeze where the child and parent process are each waiting on the other.Of course. I just did not get around to investigate why invariance failure is not handled correctly. The error is most likely in mtn_automate.cc (client failure) or mtn_cvs.cc (program failure).
In the .attrs branch I have cleaned up some of the exception handling. I removed a bunch of try..catch blocks that stopped things that should have failed from failing. I also added some code to delete the repository object when it goes out of scope. I'm hoping that will cause it to clean things up, but I haven't had an invariant failure recently. I should force one that I know used to freeze to test it.
Be well, Will :-}
[Prev in Thread] | Current Thread | [Next in Thread] |