------------------------------------------------------------------------------ CHANGES IN DCVS BETWEEN RELEASES ------------------------------------------------------------------------------ DCVS 1.0.2 --------------- DCVS (1) [fixes20051123head_at_manthe_gotdns_org] dcvsupd.sh -> make dcvsupd _really_ start with the new feature. That is, DCVSUPD_REVERSE variable was ignored until now, and so the bidirectionial-delta-exchange-over-a-single-tcp-connection-feature was not activated by default. *sync.sh -> if configuration can't be found, try another location The sync-scripts could not source their configuration after a "make install" Production (1) from [release_DCVS_1_0_1_2005-11-22_at_old_elego_d] to [devel_prod_d3_2_2_at_old_elego_de] removing cvs.5 and cvpasswd.1 from the list of MANPAGES, because they can conflict with existing installations of the original programs. corrected dependecies in Makefile Build NetBSD package correctly. Don't use absolute filenames in FreeBSD package. Now behaves _exactly_ like a package created from a port. Packages (1) [devel_packages_d0_0_1_at_old_elego_de] Don't fail if a dcvs user with a non-default home directory already exists. Added PkgTags, so the packages directory can finally be handled by pkgvm. Removed Fink/PkgTags added by mzoet because it is now redundant. Tests (1) [devel_test_d0_14_1_at_old_elego_de] Test suite 01 (and 03): Result-Diff Cleanup! Changed the comparison mechanism so that the log mangling of 03 does not happen on-the-fly but after the logs have been written. Like this, TESTS 01 can use the same mechanism as 03. Log mangling: replace local paths/user names/dates etc. with arbitrary strings like , etc, so that they do not appear in the result diffs. So, now the result diffs of tests 01 are completely clean alike 03. General: Introduced nicer log storage: there is now a log dir structure like this: dcvs/test/01 and dcvs/test/03/ logs/ now - logs just created (not in repository) mangled - above logs mangled (not in repository) expect - mangled expected result (in repository) So, first, run-test-0(1|3).sh generates logs in logs/now/ and calls result-diffs.sh. result-diffs.sh mangles the files found in logs/nowand puts the result into logs/mangled, after which it diffs logs/mangled against logs/expect/. diff.sh lost its third parameter (a file with replacement commands). (see also below) (Test 02 remains unchanged) Details: bin/diff.sh removed the third parameter (see also ignore-log-dcvs cvsup / cvsupd) bin/testdefs.sh now also contains "standardized" log-directory constants and some preparation for the log mechanism shared between 01 and 03 NEW: before this file is sourced, a variable TESTDIR_RELATIVE has to be defined, so that testdefs.sh can construct the proper log directory names in the current test's subdir (e.g. TESTDIR_RELATIVE="test/01"). migrated the cvsup(d) functions only used in run-test-01.sh to testdefs-01.sh (see also run-test-01a.sh). bin/testdefs-01.sh contains functions only used in tests 01 (see also run-test-01a.sh). bin/run-test-01.sh now uses the new logging/mangling style bin/run-test-01a.sh this file confuses me, since it is never called automatically. Also, it starts exactly like run-test-01.sh, but stops short halfway. Plus, it uses exactly the same log file output names as 01. So, I guess, this file is obsolete! Just in case, I made similar changes to this file, it still works (i hope). testdefs-01.sh only exists because of this file, so that 01.sh and 01a.sh can both source that. if 01a is removed, testdefs-01.sh should be put into run-test-01.sh completely. 01/result-diffs.sh 03/result-diffs.sh implement the mangling and comparison. they are quite similar, but each one has some own sed commands (replacement commands) and announces a different TESTDIR_RELATIVE. 01/update-expect.sh 03/update-expect.sh updated to use the new log locations 01/ignore-log-cvsup 01/ignore-log-cvsupd 03/ignore-log-dcvs no longer used. The reason why I moved away from putting sed commands in a file is because it is too unflexible. (cannot choose which options to pass to sed, not platform independent). 01/expect removed. new, mangled expect logs now in 01/logs/expect/ 03/expect all the expect logs migrated to 03/logs/expect/ (2) [devel_test_d0_14_2_at_old_elego_de] Tests 01: Caught one last "diff breaker" (user@localhost.de (bla) [U_2005_...]) many (all?) 01 expect logs affected. (3) [devel_test_d0_14_3_at_old_elego_de] Finally confirmed that tests are independent of the working copy dir name. ("dcvs" or "distributed-cvs" now really does not need to be the working copy name anymore for the tests to run successfully) The "new algorithm" to find the wc root (first implemented in dcvs/test/bin/testdefs.sh) had to be gently copied to all these files: 01/mkconfig.sh 03/dcvs-ash.sh 03/dcvs-old.sh 03/dcvs-server-ash.sh 03/dcvs-server-old.sh 03/mkconfig.sh DCVS 1.0.1 --------------- Packages (1) from [release_DCVS_1_0_2005-11-18_at_old_elego_d] to [release_DCVS_1_0_1_2005-11-22_at_old_elego_d] A NetBSD installation package provided DCVS 1.0 / BERT --------------- feature changesets/snapshots development DCVS (1) [postmerge_feature_csetsnap_dcvs_head_at_old_elego_de] merging separate development branch [feature_csetsnap_dcvs_head_...] into CVS 1.12.12 based main branch. Note: the situation after this merge was not too stable. Quite a few bugs were erased and command syntax changed from here until the first release of dcvs with csetsnap (Bert). However, in the merge, some files were added, some were changed. Here is a short breakdown: CHANGED FILES Makefile.am, Makefile.in - Added the new files as compilation sources. checkout.c - Added option `-S snapshot_name' to checkout files with revisions specified by a snapshot (analogous to checking out with a tag name using -r tag_name). commit.c - Added option `-g changeset_name' to create a changeset while committing. The changeset will contain the repository's revision numbers before and after the commit. (see also: rcs.c) cvs.h - Added declarations of functions called by main.c: lscs(), lssnap(), mkcset(), mksnap(). (note: lscs will become lscset later on) (two lines of dump comments were also imported :( ) - A global variable char *serverID was introduced, to recall the dcvs server id in csetsnap.c (this will be done differently later on). dcvs_cfg.h - The changes in this file were minor, mostly unintended blank space changes. sorry for that. diff.c - Added options `-S snapshot_name' and `-g changeset_name' to run a diff between revisions taken from snapshots/changesets (analogous to `-r tag_name'). ls.c - Minor change; isdead is now being initialized to false. main.c - Added commands lscs, lssnap, mkcset and mksnap conforming to the existing structures. Also, the command line is now being saved to be able to write it into changeset/snapshot headers. rcs.c - Added conditional code that writes an entry into a changeset upon a commit-with-changeset (`dcvs commit -g changeset_name', see commit.c above). recurse.c - Minor change; added if-not-null statement to a free() call. server.c - Added commands lscs, lssnap, mkcset and mksnap conforming to the existing structures. - Also, the command line is being read from the client in some places. For this purpose, the client/server communication was changed slighlty, and backwards compatibly: for commands that may create changesets or snapshots, the command line is sent to the server between the command name (e.g. "mksnap") and the terminating '\012' character; If a client omits this, i.e. uses the old method, the command line saved to a changeset or snapshot would simply be empty. tag.c - Added option `-S snapshot_name' to be able to create a snapshot while creating a tag. (Some trash code was also imported :( ) update.c - Added options `-S snapshot_name' to be able to update a working copy according to the revisions listed in a snapshot, analogous to `update -r tag_name'. - Also added `-c changeset_name' (going to become `-g changeset_name' later on) to merge branch changes, analogous to `update -j -j'. ADDED FILES csetsnap.h csetsnap.c These files contain the changeset and snapshot definitions, data structures and functions. There are a few global variables and functions, some of them not directly related to, but used by csetsnap: - changeset/snapshot repository directory constant - Snapshot_... and Changeset_... structs - Snapshot_... and Changeset_... functions to manipulate the structs (OOP approach). - save_/set_/recall_/free_global_commandline(argc, argv): called in main.c to remember the command line, for logging in changeset/snapshot headers. - cat_file(char*): dumps a text file to stdout - isnumberchar(char): convenience function - safe_basename(char*): portability wrapper - mk_dir(char*): recursive directory creation mkcset.c mksnap.c - Contain the code that main.c calls upon `dcvs mkcset'/`dcvs mksnap'. This code was initially copied from ls.c and changed to the purpose of creating a new snapshot. (2) [release 1.0 (Bert)] (Below are all changes made after above merge and before release Bert) After merging the initial feature_csetsnap into the main branch, a couple of API changes were made and some extensions added. Here is a short breakdown: API CHANGES - `lscs' became `lscset'. - `mkcset -N cset_name' became `mkcset cset_name'. - `mksnap -N snap_name' became `mksnap snap_name'. - the ability to create a snapshot from the working copy was added. Previously, a tag name would have to be supplied to create one. - `lscset -p pattern' became `lscset name_or_pattern', where shell- like patterns with wildcards can be issued. `lssnap -p' was changed analogously. - the characters allowed to appear in a snap/cset name is now limited (previously, names could have contained tabs and newline characters). - the client now exits with an error message when it is tried to create a snap/cset where the name starts with a slash. (a leading slash would usually mean that a specific host name is given) API EXTENSIONS - `catcset name_or_pattern' prints out changesets to stdout; shell-like patterns with wildcards can be issued. - `catsnap name_or_pattern' prints out snapshots to stdout; shell-like patterns with wildcards can be issued. Some source files were added, some were changed, and some were removed (i.e. renamed). Here is a short breakdown: CHANGED FILES Makefile.am, Makefile.in - Added the new files as compilation sources. buffer.c - Added an "(int)" explicit typecast to get rid of a compiler warning. checkout.c - Revised the way checkout calls update. Now checkout.c calls a specially added function to pass the snapshot name to the update.c scope. Previously, `checkout -S' simply lost its -S option. (do_update_from_checkout()) commit.c - Changed a typecast to get rid of a compiler warning, removed a "warning: " from an otherwise pretty informational message ("warning: using range `%s' for file `%s' on branch `%s'"). csetsnap.h csetsnap.c - Removed the locally implemented strndup() in favor of platform- independent #include "strndup.h". - Revisited the locally implemented safe_basename() portability wrapper. (A safe_dirname() was written, but is not used) - cvs_output bugs were removed, where a length longer or shorter than the actual string was passed; now 0 is passed, always. - Replaced global variable serverID with dcvs_cfg:dcvs_getMyServerId() calls. - Replaced on-the-fly output of changeset/snapshot entries during changeset/snapshot creation with one large file dump to stdout at the end of changeset/snapshot creation. - added convenience function cat_file() to dump a file to cvs_output. - Fully revisited any output made. - General bugfixes (small). - Removed the safe_basename(char*) portability wrapper (no longer used) - Rewrote the mk_dir() function, renamed to csetsnap_mkdir(). In the process, removed a "free: junk pointer" bug. - centralised writing of snap/cset headers - added handling of multi-line entries in snap/cset headers; multi- line descriptions caused corrupt files previously. - added restriction on the characters allowed in a snap/cset name. cvs.h - Added declarations of functions called by main.c: catcset(), catsnap(); Changed lscs() to lscset(). - two lines of dump comments were deleted :) - Removed serverID global variable (see dcvs_getMyServerId above). dcvs_cfg.h - removed setting global serverID variable and thus removed the csetsnap.h dependency. diff.c - removed stale debug output. history.c - added an explicit typecast to get rid of a compiler warning (l 980). login.c - added an explicit typecast to get rid of a compiler warning (l 120). main.c - Added commands catcset, catsnap and changed lscs to lscset, conforming to the existing structures. - Revisited help output. mkcset.c - Was basically rewritten from mksnap.c, to act as if two snapshots are being made after another. Previoulsy, there was a situation where a currently deleted file should still appear in the changeset, but did not. - The option -N was removed to become similar to the `tag' command. Now, the changeset name is being issued without an explicit option (usage text, arg parsing). mksnap.c - The option -N was removed to become similar to the `tag' command. Now, the changeset name is being issued without an explicit option (usage text, arg parsing). parseinfo.c - added an explicit typecast to get rid of a compiler warning (l 233, l 260). parseinfo.c - added an explicit typecast to get rid of a compiler warning (l 3946). release.c - added an explicit typecast to get rid of a compiler warning (l 90). root.c - added an explicit typecast to get rid of a compiler warning (l 582, l 700). run.c - added an explicit typecast to get rid of a compiler warning (l 93). server.c - Added commands catcset, catsnap and changed lscs to lscset, conforming to the existing structures. subr.c - added an explicit typecast to get rid of a compiler warning (l 261, l 1005, l 1011). update.c - Added do_update_from_checkout() as mentioned for checkout.c: - Revised the way checkout calls update. Now checkout.c calls a specially added function to pass the snapshot name to the update.c scope. Previously, `checkout -S' simply lost its -S option. (do_update_from_checkout()) - fixed option `-g changeset', which still was `-c' in usage information and the code. - added an xstrdup to get rid of a free error. update.h - Added do_update_from_checkout() as mentioned for update.c: - Revised the way checkout calls update. Now checkout.c calls a specially added function to pass the snapshot name to the update.c scope. Previously, `checkout -S' simply lost its -S option. (do_update_from_checkout()) ADDED FILES catcsetsnap.c - Contains the implementations of catcset() and catsnap() defined in cvs.h, and the search algorithm which both commands share. glob_compat.h - This file was added to get glob() to run on Mac OS X. It maps preprocessor definitions. lscsetsnap.c - This file replaces both lscs.c and lssnap.c. The implementations of lscset() and lssnap() are now both in this file, as well as the search algorithm which both commands share. REMOVED FILES lscs.c - The contents of this file moved to the new file lscsetsnap.c. lssnap.c - The contents of this file moved to the new file lscsetsnap.c. DCVS 0.1.9 development (later renamed to 1.0 / BERT) ---------------------------------------------------- (D)CVS (1) [devel_dcvs_d2_1_2] add patch to remove trailing slashes from DCVSROOT from Jon Ringle (2) [devel_dcvs_d3_0_0] add support for client configuration specification currently only syntax check and setting of server id and name have been done; I'm not sure if this is sufficient (3) [devel_dcvs_d3_0_1] Import of cvs 1.12.8 Apply security fix found at http://www.openbsd.org/errata.html 007: SECURITY FIX: May 20, 2004 A heap overflow in the cvs(1) server has been discovered that can be exploited by clients sending malformed requests, enabling these clients to run arbitrary code with the same privileges as the CVS server program. A source code patch exists which remedies this problem. (4) [devel_dcvs_d3_0_2] re-add missing prototype for searchlist modified: dcvs/src/hash.h (5) [devel_dcvs_d3_0_3] try to fix autoconf macros and generated configure (6) [devel_dcvs_d3_0_4] attempt 2 to fix autoconf macros and generated configure (7) [devel_dcvs_d3_0_5] fix three minor problems in the dcvs_config scanner/parser: o recognize one line comments without whitespace o don't swallow trailing newlines on client declarations o avoid multiple initialization (8) [devel_dcvs_d3_0_6_at_old_elego_de] fix: fileattr resides in DCVS, not CVS (9) [devel_dcvs_d3_0_7_at_old_elego_de] fix another occurrence of literal "CVSROOT" :-( Why don't CVS programmers simply use the constants they define? This actually fixes the broken autocheckout in DCVSROOT. (10) [devel_dcvs_d3_1_0_at_old_elego_de] add support for default collections (11) [devel_dcvs_d3_1_10_at_old_elego_de] compatiblity for Darwin. Their glob.h #defines are pre-historic (pre-POSIX even?). However, we use the glob.h macros as defined by *BSD, GNU and POSIX. From now on, please always include "glob_compat.h" instead of including directly, so Darwin won't have problems. Add snapshot/changeset source files to src/Makefile.am, They were only listed in src/Makefile.in, which is an automatically generated file. (12) [devel_dcvs_d3_1_16_at_old_elego_de] Make workspaces compatible with standard CVS clients. (D)CVSup (1) [devel_suptcp_d1_0_0] Add support for WIN32 by merging the CM3 TCP package and JDP's TCP extensions. This will eventually be re-integrated into CM3, so that this package becomes obsolete. It is also a first, though small, step towards making CVSup run on Windows systems. The package has been compiled on FreeBSD and NT386, but not tested yet. (2) [devel_tcp_d1_0_0] Import standard extended TCP package based on devel_suptcp_d1_0_0 (3) [devel_cvsup_d1_0_0] remove suptcp package, as it is now obsolete adapt all other packages to the changed interfaces (4) [devel_dcvs=getconfig_d1_0_3] recommit fix for problem reported by Jon Ringle: dcvs_getconfig aborts if /usr/local/etc/cvsup does not exists (copy and paste mistake) (5) [devel_contrib_d0_4_3] increase sleep time after ssh tunnel creation to 5 seconds (6) [devel_suplib_d4_6_3, devel_suplib_d4_6_4, devel_suplib_d4_6_5, devel_suplib_d4_6_6] Abstract access to the st_size member of the stat buf, which is represented as an int32 array with two elements on recents M3 implementations (see off_t changes by Anthony Hosking for PM3 and CM3). If you use these compilers, you need the latest m3core code and defined OFFT64 when compiling CVSup. (7) [devel_suplib_d5_0_0] add support for client configuration specification currently only syntax check and setting of server id and name have been done; I'm not sure if this is sufficient (8) [devel_client_d0_4_1] fix typo in message (9) [devel_quake_d0_1_2] add quake functions exists, findpath, findlib (10) [devel_suplib_d5_0_1] use findlib to find the correct path for libz (11) [devel_quake_d0_1_3] add error message to findpath function (12) [devel_elegolib_d2_0_0_at_old_elego_de] Add PROCEDURE SubDirs(path : Pathname.T; relative := FALSE) : TextSeq.T RAISES {E}; (* Return a list of all subdirectories. *) PROCEDURE SubFiles(path : Pathname.T; relative := FALSE) : TextSeq.T RAISES {E}; (* Return a list of all ordinary files in directory `path'. *) to FSUtils for the sake of cvsupadm. (13) [devel_suplib_d6_0_0_at_old_elego_de] Add support for default collections, which is used in cvsupd and cvsupadm. If default collections are encountered, all existing top-level modules of the specified DCVS repository are considered to be valid collections for distribution. (14) [devel_cvsupadm_d1_5_2_at_old_elego_de] fix treatment of -o - reformat usage help as manual page and add information about default collections, files, environment variables, and references (15) [devel_client_d0_4_2] use backoff timer for DCVS lock, too (16) [devel_server_d1_4_3] heed default collections in collection check (17) [devel_cvsup_d1_0_3_at_old_elego_de] Try to detect an existing {Client,Server}Base directory, instead of using one hardcoded default. Otherwise one has to specify the -b option all the time having installed DCVS from packages. (18) [commit-ids c2264333acbd7ea6 and a2614331bd537ea6] removed a bug with the Attic and Replication (19) [premerge_feature_csetsnap_dcvs_head_at_old_elego_de - devel_cvsup_d1_0_5_at_old_elego_de] Added env.* files in contrib. These files define platform-specific and installation-scenario-specific (eg. binary package vs. /usr/local/dcvs) values for environment variables used in the scripts in contrib. (20) [commitid b994354dbfa7ea6] Fixing a bug that prefered the default for the multisiteconfig over the explicitly given option at command-line. (Also fixes test/01) (21) [commitid 48044354f6957ea6] Added ability to reverve direction of delta-flow within an existing TCP-connection merge-tags: premerge_halfduplex3_at_old_elego_de postmerge_halfduplex3_at_old_elego_de developement-branches: dcvsup_halfduplex_bp_at__at_manthe_gotdns_org to dcvsup_halfduplex_head2_at__at_manthe_gotdns_org test_halfduplex_bp_at__at_manthe_gotdns_org to test_halfduplex_head_at__at_manthe_gotdns_org Production (1) [devel_prod_d3_0_0] changes: o remove suptcp from CVSup packages o add new targets for CVSup prerequisite packages: tcp, install-tcp, parseparams, install-parseparams o compute and define M3S as shipping command o add -DNOGUI to default M3FLAGS (2) [devel_prod_d3_0_1] update version to d0.1.9 (3) [devel_prod_d3_0_2] add -DOFFT64 to default M3FLAGS for latest CM3 compatibility (4) [???] add prod/DEBIAN/: changelog, control, copyright, rules directory for the creation of debian packages add prod/iScriptDefault.sh script for the creation of SUN and FreeBSD packages modified: prod/Makefile.inc packet creation routines and installation routines according to system version. Please modify prefixes accordingly. add prod/dcvs.spec: file for creation of rpm packages add prod/rpm_files: contains list of files containing rpm packages add prod/pkg-plist: contains packing list for creation of FreeBSD packages add prod/pkginfo: information about configuration of sun package [this commit has been temporarily reverted] (5) [devel_prod_d3_1_1_at_old_elego_de] change default remote shell to ssh (6) [devel_prod_d3_1_4_at_old_elego_de] Add missing semicolon in Makefile.inc, target install-doc. (7) [devel_prod_d3_1_5_at_old_elego_de] Revise pack-bin target, it is now more similar to the other pack-* targets. Set all ownerships explicitely during 'make install'. (8) [premerge_feature_csetsnap_dcvs_head_at_old_elego_de - devel_prod_d3_1_8_at_old_elego_de] Added pack- targets that create binary packages on the following platforms: FreeBSD, Fedora, Debian, Solaris, Darwin and NetBSD (9) [devel_prod_d3_1_11_at_old_elego_de] Added script to convert workspaces that are not compatible with cvs clients. (10) [devel_prod_d3_1_12_at_old_elego_de] Improved script to convert workspaces that are not compatible with cvs clients: - Print a diagnostic message when lethal signals occur. - Immediately abort on errors while converting the workspace. tkDCVS (1) [devel_tkdcvs_d0_2_0] Tkcvs modified, that it can be used as graphic user interface for dcvs, called tkdcvs. Tkdcvs can be installed on Debian Linux, RedHat Linux, FreeBSD and Sun Solaris. Packages which allow the use on window platforms will follow. (2) [devel_tkdcvs_d0_2_1_at_old_elego_de] make tkdiff work in DCVS workspaces, too Test (1) [devel_test_d0_11_3] extend tests to make them usable with standard CVS clients You will have to use a command line the following to execute the DCVS tests with a standard CVS server: yes | TESTS=03 DCVS_CLIENT=/usr/bin/cvs \ DCVS_CLIENT_OPTS="-d localhost:/home/wagner/work/distributed-cvs/tmp/dcvs" \ DCVS_RSH=/usr/bin/ssh TRACE=-w make -e run-tests The traces will be different from the stored examples, as a CVS client cannot pass the -p and -L options (DCVS extensions) to the server. (2) [devel_test_d0_12_0_at_old_elego_de] changes: o make tests run as part of DCCS, too (look for dcvs instead of distributed-dcvs dirctory) o add tests that use default collections (with new repositories repo1 and repos2) (test 03 steps 16-24) o update expected results for test 03 o fix some minor problems with test setup (3) [devel_test_d0_13_0_at_old_elego_de] add test 01a for replication with default collection entries Documentation (1) [devel_doc_d0_21_0] add recent changes and list of known issues (2) [devel_doc_d0_22_0] add information about tcp and parseparams installation to INSTALL (3) [devel_doc_d0_22_1] add two workarounds for simple problems (4) [devel_doc_d0_22_2] add latest changes (4) [devel_doc_d0_22_3] add recent changes (5) [devel_doc_d0_22_4] add some minimal information about client declarations add all recent changes (6) [devel_doc_d0_22_5] fix doc tags in CHANGES list (7) [devel_doc_d0_22_6] add recent changes (8) [devel_doc_d0_23_0] added: doc/Makefile added: doc/faq.faq added: doc/faq.head added: doc/faq.tail added: doc/faqgen.awk (9) [devel_doc_d0_24_0] changes and cleanup: o add a local index page o add DCVS CM rules o add local style definitions o add proper html document headers o correct footers and email addresses o fix some typos (10) [devel_doc_d0_24_1] add recent changes to dcvs_cm_rules (11) [devel_doc_d0_24_2 to devel_doc_d0_24_5] modified faq.faq (12) [devel_doc_d0_25_0] Added testdocument for dcvs: tkdcvs_status_sxw Added instructions for the creation and installation of dcvs and tkdcvs packages: Installationseinleitung. (13) [devel_doc_d0_27_4_at_old_elego_de] add example for default collection and update CHANGES DCVS 0.1.8 ---------- secure transport via ssh, import of CVS 1.12.1, import of current CVSup, improved build system (simultaneous build support for heterogenous platforms), test expect data, test diff automation, and bug fixes (D)CVS (1) [devel_dcvs_d2_0_0] globally revert the changes that substituted DCVS for CVS; this is only temporarily to facilitate the import of CVS 1.12.1 all functional changes (not those in the documentation) will be re-applied after the import hopefully this will make future import of new CVS releases easier (2) [devel_dcvs_d2_0_0_import_conflicts_resolved] import of CVS 1.12.1 on vendor branch, conflict resolution (3) [devel_dcvs_d2_0_1] fixes: o double free of version strucuture caused segmentation violations in commit.c o ignore list contained CVS instead of DCVS (4) [devel_dcvs_d2_0_2] changes: o fix: add a missing return value in a new case in tag_check_valid2 This fixes the problem of empty branch updates in STEP 10 of the regression test 03. o add several function TRACES in update, classify, and rcs (5) [devel_dcvs_d2_0_3] change configure and configure.in to read the dcvs version information from ../prod/DCVS_VERSION (does not work with autoconf :-() (6) [devel_dcvs_d2_1_0] o add dcvs_test to as target to the make framework o adapt dcvs_test.c to CVS 1.12.1 o move function time_stamp from vers_ts.c to subr.c to break up non-ending list of dependencies (7) [devel_dcvs_d2_1_1] o undo configure changes from devel_dcvs_d2_0_3 o add use of generated version.h header in version.c o add DCVS WWW link (D)CVSup (1) [devel_contrib_d0_4_0] add scripts for secure connections tunnelled through ssh add inline usage documentation (option -h or -help) fix some minor bugs (2) [devel_suplib_d4_6_2] fix bug in `create dcvsupfiles': use the collection id and not the collection path (3) [devel_contrib_d0_4_1] improve ssh port forwarding: use localhost in -L option instead of remote server name (4) [devel_contrib_d0_4_2] add missing parameter support to dcvsup_push.sh and sdcvsup_push.sh fix usage help of these scripts add proper start|stop|restart handling to daemon start script (5) [devel_dcvs=check_d1_3_1] add usage information and -p option for compatibility with dcvs_test; fix potential parameter not found problems (6) [jdp-2003-07-23, devel_cvsup_d0_2_0] import of John Polstra's CVSup as of 2003-07-23 and conflict resolution (7) [devel_parseparams_d1_0_0] add parseparams package for those using EZM3 Production (1) [devel_prod_d1_8_3] add new scripts sdcvsup.sh and sdcvsup_push.sh to installation target, upgrade version to 0.1.8d (2) [devel_prod_d1_9_0] break up install target into install-dirs, install-programs, install-scripts, install-doc fix owner/permissions for installed scripts (3) [devel_prod_d1_10_0] add script to generate dcvs version header (4) [devel_prod_d1_11_0] Do not use CVSup makefiles anymore; instead, use own code to support simultaenous builds of CVSup on heterogenous platforms. (5) [devel_prod_d2_0_0] configure and compile the DCVS CVS sources in a the target platform dependent directory dcvs/${M3TARGET} (6) [devel_prod_d2_0_1] change version to 0.1.8 release Test (1) [devel_test_d0_9_3] add regression test for somewhat bigger configurations, which should detect initialization problems in the parser (one of these recently fixed in devel_suplib_d4_6_1) (2) [devel_test_d0_9_4] test the M3 parser as well as the parser implemented in C (use programs dcvs_check and dcvs_test) (3) [devel_test_d0_9_5] echo dcvs init command (4) [devel_test_d0_9_6] o change port number to 44558 for tests (in case any cvsupd is already running on 44555) o automate detection of M3TARGET (5) [devel_test_d0_10_0] add a simple expect/diff mechanismus to test 01 which compares all cvsupd and cvsup logfiles generated by a test run with the files in the expect sub directory (6) [devel_test_d0_11_0] add expect/diff mechanism for test 03 and expected results for tests 02 and 03 Note: the expected results for test 03 are based on DCVS 0.1.7 / FreeBSD CVS 1.11.1p5 (7) [devel_test_d0_11_1] o read dcvs executable from the target platform dependent sub-sirectory (adapt to change devel_prod_d2_0_0) o improve the result-diff.sh scripts so that they can be run from other directories (8) [devel_test_d0_11_2] make the tests run with the Solaris Bourne shell, too Documentation (1) [devel_doc_d0_17_0] add info about secure replication scripts and installation (2) [devel_doc_d0_19_0] o add recent changes o add a comment about using EZM3 to build DCVS CVSup DCVS 0.1.7 -- more bug fixes ---------------------------- (D)CVSup (1) [devel_suplib_d4_6_1] fixed missing initialization of text search index that broke scanning of server/range pairs for longer lists than two :-( (2) [devel_dcvs=getconfig_d1_0_1] fix two possible aborts: o if no configuration file is found (dcvsCfgPath = NIL) o in servers command (use of wrong sequence) DCVS 0.1.6 -- bug fixes and glibc adaption ------------------------------------------ (D)CVS (1) [devel_dcvs_d1_1_7] add missing option handling in server for -L (D)CVSup (1) [devel_quake_d0_1_0] make all programs report DCVS versions read from prod/DCVS_VERSION (2) [devel_cvsup_d0_1_6] Imported fixes from John Polstra for glibc-2.3.2 and copyright updates. He writes: Implemented some fixes necessary to build and operate under glibc-2.3.2. You will most likely need to use the new version 1.1 of Ezm3 to build CVSup on platforms using glibc-2.3.2. cm3 5.2.5 will also do for the newest Linux platforms :-) (3) [devel_quake_d0_1_1] fix quoting bug only showing on Solaris Production (1) [devel_prod_d1_7_0] product version definitions now in DCVS_VERSION: this file is read by quake, BSD-Make and GNU-Make (2) [devel_prod_d1_8_0] - add short help target - auto-detect m3 compiler (cm3 or m3build) DCVS 0.1.5 -- bug fixes and minor extensions -------------------------------------------- Production (1) [devel_prod_d1_6_0] improve pack-bin target and add dcvs_config.sample to installed files (2) [devel_dcvs_d1_1_6] bugfix from FreeBSD-SA-03:01.cvs DCVS 0.1.4 -- bug fixes and minor extensions -------------------------------------------- (D)CVSup (1) [devel_suplib_d4_5_0, devel_contrib_d0_2_3, devel_client_d0_4_0] add logging of dates to the client and scripts, change 'SetAttrs' messages to `Unchanged' for RCS and regular file updates (2) [devel_suplib_d4_5_1] make cvsup keep the dcvs lockfile and not remove it, as the access rights may be needed (3) [devel_contrib_d0_3_0, devel_prod_d1_5_0] script to check, list, and create DCVS lock directories and files (4) [devel_contrib_d0_3_1] fix: set maximum number of retries of dcvsup to 1 (5) [devel_suplib_d4_6_0] fix and extension: add LockAndKeep which does not remove the lock file at program termination in case of errors; use it for the DCVSup lock Production (1) [devel_prod_d1_4_0] add unconfigure target for dcvs and fix clean-cvsup (2) [devel_prod_d1_5_1] improve install target: move away existing binaries before installation DCVS release 0.1.3 -- bug fixes and minor extensions ---------------------------------------------------- (D)CVSup (1) [devel_client_d0_1_2] fix possible null pointer dereference in cvsup client when no dcvs configuration can be read (2) [devel_suplib_d4_3_0] add fakehost support to MultiSiteConfig and check for NIL values of some parameters (3) [devel_client_d0_2_0] add fakehost support to the client; use option -H hostname (4) [devel_server_d1_4_0] add fakehost support to the server; use option -h hostname; add a server error message for a missing range collection/range pair that could lead to a NIL dereference (5) [devel_dcvs=check_d1_3_0] add fakehost support; use option -h hostname (6) [devel_suplib_d4_4_0, devel_client_d0_3_0] let cvsup client recognize option -m dcvs_config (D)CVS (1) [devel_dcvs_d1_1_4] add creation of lock directory inside the repository to dcvs init (2) [devel_dcvs_d1_1_5] fix possible null pointer dereference in trace message Production (1) [devel_prod_d1_1_0] add a simple run-test target; beware: this is still no regression test, as most of the test results are not automatically evaluated Test (1) [devel_test_d0_8_2] make test 03 run on other machines than old.elego.de (2) [devel_test_d0_9_0, devel_test_d0_9_2] make test 01 run on other machines than old.elego.de (3) [devel_test_d0_9_1] make test 02 run on other machines than old.elego.de; fix scripts for test 03 for simple shells DCVS release 0.1.2 -- bug fixes and extensions ---------------------------------------------- (D)CVSup (1) [devel_suplib_d3_0_0, devel_suplib_d4_0_0] set different defaults (paths and ports) for DCVS and CVSup compilation. The base of the DCVS CVSup server now defaults to /usr/local/dcvs/etc/cvsup, the port to 44555. (2) [devel_suplib_d3_0_0, devel_cvsupadm_d1_3_3] make the cvsupadm command `create dcvsupfiles' create multiple dcvsupfiles (dcvsupfile.host) by default (3) [devel_suplib_d4_0_1, devel_cvsupadm_d1_4_0, devel_server_d1_3_1] make cvsupd and cvsupadm try the following paths for dcvs configuration files: DefaultServerBase/"cvsupd.servers", "/etc/dcvs_config", "/usr/local/etc/dcvs_config", "/opt/etc/dcvs_config", "/usr/local/dcvs/etc/dcvs_config", "/usr/local/etc/cvsup/cvsupd.servers", "/usr/etc/cvsup/cvsupd.servers", "/opt/etc/cvsup/cvsupd.servers" (4) [devel_dcvs=getconfig_d1_0_0] new program dcvs_getconfig to extract values from the DCVS configuration file (5) [devel_contrib_d0_2_0] add dcvsup_push.sh script and use dcvs_getconfig in other scripts (6) [devel_cvsupadm_d1_5_0, devel_suplib_d4_1_0, devel_suplib_d4_1_1] add DCVSup global locking support to the library and the cvsupadm program; lock file(s): repository/DCVSROOT/lock/DCVSUP_LOCK (7) [devel_client_d0_1_0] add DCVSup global locking support to the cvsup client program (8) [devel_suplib_d4_2_0] heed DCVS_CONFIG environment variable when searching for a DCVS configuration file (D)CVS (1) [devel_dcvs_d1_0_0, devel_dcvs_d1_1_0] add DCVSup global locking support to the dcvs commands commit, tag, rtag, import (2) [devel_dcvs_d1_0_1, devel_dcvs_d1_0_1] fix PR dcvs-cvs/175: dcvs tries to start cvs as server if DCVS_SERVER is not explicitly set Production (1) set owner, group, and permissions of installed directories (2) install scripts from cvsup/contrib into dcvs/etc (3) add -DDCVS to make flags for CVSup DCVS release 0.1.1 -- bug fixes and minor improvements ------------------------------------------------------ (D)CVSup (1) [devel_cvsupadm_d1_3_0, devel_cvsupadm_d1_3_1, devel_suplib_d2_0_2] add command `create dcvsupfile' (2) [devel_suplib_d2_0_1] fix computation of fully qualified domain name of the own host (3) [devel_server_d1_3_0, devel_suplib_d1_8_1] move MultiSiteConfig to package suplib, tidy up suplib changes (4) [devel_elegolib_d1_0_5] add several missing implementations to elegolib (5) [devel_suplib_d2_0_0] fix dcvs parser to accept comments at end-of-file (6) [devel_dcvs=check_d1_2_0] dcvs_check: implement debug options -d, -dd, -ddd; add missing support for static linking (7) [devel_cvsupadm_d1_3_2] fix option parsing in cvsupadm (make options position independent) (D)CVS (1) [devel_dcvs_d0_19_1] Try the complete path in dcvs_getRangeForFile before removing trailing arcs. This fixes the import of modules with only one hierarchy level and probably several other commands working on top-level files or directories. (2) [devel_dcvs_d0_19_2] fix hostname and host id computation (3) [devel_dcvs_d0_19_3] add /usr/local/dcvs/etc/dcvs_config to the searchlist for dcvs configuration paths Production (1) [devel_prod_d0_2_0] add install target to Makefile (2) [devel_prod_d0_2_0] change default prefix to /usr/local/dcvs (3) [devel_prod_d0_2_0] rename old pack-bin target to pack-bin-old (4) [devel_prod_d0_2_0] add new pack-bin target to archive installed package Documentation (1) add CHANGES document (this text) DCVS release 0.1 -- first public (alpha) release ------------------------------------------------ (D)CVSup status (1) extended cvsupd to serve only deltas and tags the local DCVS server is responsible for. (Additional ranges may be specified, too.) (2) add stripped down elegolib m3 library (3) new program cvsupadm to create cvsupd configuration files from DCVS configuration files and edit them (4) new program dcvs_check to check DCVS configuration files (D)CVS status (from dcvs/DCVS_TODO) (1) Write parser for DCVS configuration file (same as cvsupd.servers) and integrate into cvs. [status: test] [responsible: wagner] [done: 2002-08-11] (2) Refuse to do anything without a valid DCVS configuration file. [status: test] [responsible: wagner] [done: 2002-08-11] (3) Command commit: - Refuse to commit changes to the trunk if the server is not responsible for range 0..x. - Refuse to commit changes to a branch with branch number b if b is not included in the range l..h the server is responsible for. [status: test] [responsible: wagner] [done: 2002-08-15] (4) Command commit: - If a commit is refused due to reasons stated in (3), (a) suggest to commit the changes to the responsible server or (b) just do it with option -y (-f and -F are already in use). In order to accomplish this, the repository root must be overwritten for every file automatically. [status: test (a)/postponed (b)] [responsible: wagner] [done: 2002-08-22] (5) Command tag -b (create branch / unbound configuration): - Get the appropriate range for RCS branch numbers from the configuration file and use it (same as FreeBSD's CVS_LOCAL_BRANCH_NUM). - Abort if no RCS branch number can be found because the range is exhausted. Suggest to add another range of branch numbers for this server. - Always add the server suffix to the tag used. [status: test] [responsible: wagner] [done: 2002-08-15] (6) Command tag (create tag / bound configuration): - Get the responsible branch number range l..h for this server. For every file, check the revision r. If r is included in l..h, add the tag as given, else add the tag with hostname suffix (e.g. original_tag_at_dcvs2_elegosoft_com). We'll use tag@host as a short form for these extended tags. CHANGED [wagner 2002-08-19]: Always add the server suffix to any tag. Everything else would only increase confusion, expecially if the responsibility for a certain range is moved from one server to another. [status: test] [responsible: wagner] [done: 2002-08-19] (7) Command checkout -r tag (checkout configuration): - Compute the hostname-suffixed tag as described in (6), tag@host. For every file, if tag does not exist, try checkout with tag@host. [status: test] [responsible: wagner] [done: 2002-08-20] (8) Command update -r tag (update to configuration): - Compute the hostname-suffixed tag as described in (6), tag@host. For every file, if tag does not exist, try update with tag@host. [status: test] [responsible: wagner] [done: 2002-08-20] (9) Command diff -r / rdiff -r (patch -r): - Compute the hostname-suffixed tag as described in (6), tag@host. For every file, if tag does not exist, try diff with tag@host. [status: test] [responsible: wagner] [done: 2002-08-20] (10) Change naming convention: - Name the executable command dcvs. - Rename environment variables CVSROOT, CVS_SERVER, CVS_RSH, etc. to DCVSROOT, DCVS_SERVER, DCVS_RSH etc. - Rename repository module CVSROOT to DCVSROOT. - Rename workspace sub-directories CVS to DCVS. These changes are not needed to create arbitrary incompatibilities, but to avoid that DCVS workspaces are changed with standard CVS tools, which might result in losing changes or conflicts in the distributed repositories. [status: closed] [responsible: wagner] [done: 2002-08-07] (11) Command import: - Refuse import on existing vendor branch if the server is not responsible for range 0..x. - Refuse to import a new collection if there is no entry in the DCVS configuration. - Refuse to import a new collection if the server is not responsible for range 0..x. [status: test] [responsible: wagner] [done: 2002-08-22] (12) Command rtag -b (create branch / unbound configuration): see tag -b / (5) [status: test] [responsible: wagner] [done: 2002-08-21] (13) Command rtag: (create tag / bound configuration): see tag / (6) [status: test] [responsible: wagner] [done: 2002-08-21] (14) Command add: - Check if this server is responsible for the checked-out revision of every directory concerned. Warn if not. [status: open] [responsible: ] [done: ] (15) Command remove: - Check if this server is responsible for the checked-out revision of every file concerned. Warn or abort if not. [status: open] [responsible: ] [done: ] (16) Improve and test syntax and semantic checking in DCVS configuration file parser. [status: done] [responsible: bayarkhuu] [done: 2002-08-20] # Local Variables: # mode: text # End: