I'd like to fix issue 201. I've added a simple test for it; pull_branch_vs_db_check.
The problem arrises when we propagate 'testbranch' to 'otherbranch', and then pull with a branch pattern of 'otherbranch'; revisions that had only 'testbranch' branch certs in the source database now have no branch cert in the local database. db check reports this as a serious error: mtn: revision 114f6aa58c7707bf83516d4080ca6268c36640ad missing branch cert mtn: warning: 1 missing certs mtn: check complete: 2 files; 2 rosters; 2 revisions; 1 keys; 7 certs; 3 heights; 1 branches mtn: total problems detected: 1 (1 serious) mtn: error: serious problems detected The user manual 'db check' section says about missing certs: * revisions with missing certs that exist in the database lacking at least one author, branch, changelog or date cert. All revisions are expected to have at least one of each of these certs. In itself, this is not necessarily a problem, but it is peculiar, and some operations such as netsync may behave strangely. Anyone have a use case for the 'strange netsync behavior' caused by this? Attempting to pull from the local db with a branch pattern of 'testbranch' will pull nothing. But I don't think that's 'strange'; it's a consequence of the maintenance policy on the database. One fix is very simple; in database_check.cc, take missing_certs out of the 'serious' sum. Then 'db check' reports: mtn: revision 114f6aa58c7707bf83516d4080ca6268c36640ad missing branch cert mtn: warning: 1 missing certs mtn: check complete: 2 files; 2 rosters; 2 revisions; 1 keys; 7 certs; 3 heights; 1 branches mtn: total problems detected: 1 (0 serious) mtn: minor problems detected On the other hand, perhaps some certs are more important than others? We could count branch certs separately from author and date, and then just leave missing_branch_certs out of the 'serious' sum. -- -- Stephe _______________________________________________ Monotone-devel mailing list Monotone-devel@nongnu.org https://lists.nongnu.org/mailman/listinfo/monotone-devel