Richard Lowe <richlowe at richlowe.net> writes: Just a reminder that the below still needs review.
-- Rich > Hey all, > > Please review: > 6742650 cdm restore error could be more useful for insufficiently > updated destination > > Webrev: > http://cr.opensolaris.org/~richlowe/onnv_6742650 > > This expands upon the error you receive when attempting to restore > from cdm backups into a workspace which is insufficiently up-to-date, > or is not related to the workspace from which the backup was taken. > (these cases are indistinguishable, to us). This has been a source of > questions for us (from two or three people, but that's still a > reasonable percentage of the questions I've seen on IRC). > > Prior to these changes (such as with the present tools), you get an > error like so: > > adding changesets > transaction abort! > rollback completed > abort: 00changelog.i at 4bc1ca7b6767: unknown parent! > > With these changes, you get some extra text indicating the likely > cause of this issue: > > adding changesets > transaction abort! > rollback completed > abort: Error restoring workspace: > couldn't restore committed changes: > 00changelog.i at 4bc1ca7b6767: unknown parent > Your workspace is either not sufficiently up to date, > or is unrelated to the workspace from which the backup was taken > Workspace may be partially restored > > We can't provide more information about the node we were missing (as > we don't have it to look at...), only indicate likely reasons that it > is missing. > > It is possible that we catch too much in the way of error here, in > concept you may fail a node lookup in something other than the > changelog (indicating a far larger problem). > > The only we could differentiate in this case would be to parse the > '00changelog...' message, which is a string including verbatim in the > exception raised by Mercurial. That seems rather brittle to me, so I > chose not to do so. I will do so if advised. (I would add that, to > the best of my knowledge, if you receive this error about something > other than the changelog, the chances are that your workspace is > corrupt, and nothing we can say would help you.) > > Testing: > > Attempted to restore backup into an unrelated workspace (this > workspace into an scmtest workspace). > > Attempted to restore into an artificially down-rev workspace. > > Both cases worked as I expected, and gave me the new message as > above. > > pbchk: > pbchk -q is silent. > > Thanks, > > -- Rich