# # # patch "mtn_cvs/CVS_prot" # from [c26ba326a591a2f12361a2a5ddecf77363295662] # to [a745011b7664461098bd50f1b37103e793944c15] # ============================================================ --- mtn_cvs/CVS_prot c26ba326a591a2f12361a2a5ddecf77363295662 +++ mtn_cvs/CVS_prot a745011b7664461098bd50f1b37103e793944c15 @@ -167,13 +167,15 @@ we can use log -r NAME to get the radix -N -S? -------------------- TODO ------------------------------ + +migrate .cvsignore and attributes + correct < when calculating manifests faster initial db-access (multimap? without timestamp access?) tests: md5sum failure merge+commit without changes -enhancement: erase_ancestors will drastically reduce memory footprint use interner for cvs_revisions, author and changelog tests: time jump import @@ -187,97 +189,13 @@ binary files, execution permission binary files, execution permission -------------------------- refactor --------------------------------- -[fdelta 597049a62d0a2e6af7df0b19f4945ec7d6458727 - 229c7f621b65f7e4970ae5aaec993812b9daa1d4] -H4sIAAAAAAAA/0WOy0oEMRBF9/mKS2/c9LQg4t5lw+BGf6BIKtNhkpSkKop/b9II7m49OOfu -eHp5dnvEj/SHL0aQ75qFAgcQGmcm5RXKjP3t/eP1ekWUhlTVKGeyJNXNoXU/s27AP8sf7O8D -ZEdSSLd1JMaNKzeysY8ps4Iao4oNjM99eFdQDbMOSldDV8ZC3aSxlxpxufzJF5jANx6oyS2b -c0uhO+OwkpezZhCvK0bf8TVrMLZUo5zi0/I4j4UqPunGA+B+AfHvKEIPAQAA -[end] -[fdelta ]\n\n[end] -[fdata ]\n\n[end] -[rdata ]\n\n[end] -[rcert \n \n \n ]\n\n[end] -AFAIK cvssync needs the following features: -- register a file's data (optionally as a delta) [preparing for a future -commit] -put_file [base_ID.hint] contents -put_file_delta base_ID xdiff.gz - consume_file_delta() - consume_file_data() - -- check in a new revision by specifying a parent and a changeset -[preferrably without a workspace] -put_revision ID contents - consume_revision_data() - -- issue a certificate [already there] -cert ID CERTNAME CERTVAL - -read - (packet::extract_packets) - packet::read_packets() - -db_set DOMAIN NAME VALUE -db_get DOMAIN NAME - -- find the last synchronized revision [for cvssync this means: find the -latest (either time or (preferred) ancestry) revision which either -changes the synchronization information file ".mt-cvs_revisions" or has -a (after commit attached) delta certificate ("cvs_revisions") *] -find_newest_sync DOMAIN -- request file contents [already there?] -- request change sets [already there?] -- request manifests (a list of files and contents) - perhaps? -- automatically and transparently handle the file/certificate mechanism -to attach synchronization (cvs manifest=map) -information to monotone revisions -[sync_attach ID DOMAIN VALUE] - find a root for a side branch (find the revision which matches a specified cvs manifest, git id, svn revision number) [find_sync DOMAIN VALUE] -The first two functionalities would also enable advanced scripting -functionalities within monotone (already requested IIRC). - -PS: this all dawned to me while I noticed that only a small subset of -cvssync had to be changed to support rosters (done). - Christof - -*) cvssync can not change files in an already commited monotone revision -when it pushes it into the cvs repository, so it has to certify a change -in the synchronization information (basically a file/revision map) - ============================== -old revision cert: -cvs.manuproc.berlios.de:/cvsroot/manuproc c++ -+80a800ce1719688467120ad2e366852c99b103ad -1.38/-ko Artikel/Artikelpreis.cc -1.13 Artikel/Prozess_sql.pgcc - -repository \t module [\t branch] -[+base_id] -revision [/ keyexpansion] ' ' relative_path - -old module var: -cvs-server-path: cvs.gnome.org:/cvs/gnome glade-- - /cvs/gnome/glade--/ -intl/ /cvs/gnome/gnome-common/intl/ -macros/ /cvs/gnome/gnome-common/macros/ - -DOMAIN="cvs-server-path", NAME={repository \t module [\t branch]\n} -VALUE={[localpath \t serverpath \n] ...} - -========== new Format ============== -repository \t module [\t branch] -#modules -/serverpath \t localpath -#files -revision [ / keyexpansion ] ' ' localpath - revision kann später "(1.2)" sein (= lokal geändert) =========== attributes ==============