Why does monotone read all revisions and certs in the database on a sync? At least 90% of the time, a comparison between the heads of branches to sync(A) vs the heads of branches to sync against(B) will result in either A is before B or B is before A and occasionally neither A or B is known to the respective opposite side, but then perhaps a revision C could be stored per branch in the repository that A is in that is the last point(s) [it may be multiple heads] that was known to sync... then C will be before B in this third case.
probably less than 1% of synchronizations are new pulls, which would require reading all revisions in the branches of interest. (in which case revision C will be blank or null). I would think it would be a SIGNIFICANT reduction in sync time (which isn't really that long for 30,000 revisions in assorted branches which takes about 10 seconds to read on a netbook) to do a quick check and just pull from the last known revision to the tip on both sides to sync, instead of reading the entire revision structure. Jim _______________________________________________ Monotone-devel mailing list Monotone-devel@nongnu.org http://lists.nongnu.org/mailman/listinfo/monotone-devel