ViewVC logotype

Contents of /meta-cvs/F-B3689DBB46386B16F4B2331934B69223

Parent Directory Parent Directory | Revision Log Revision Log

Revision 1.188 - (hide annotations)
Mon Mar 8 06:11:40 2004 UTC (10 years, 1 month ago) by kaz
Branch: MAIN
Changes since 1.187: +2 -1 lines
Revamped loading system. Got rid of require/provide in all
Lisp source files.

* code/mcvs.lisp: New file. Responsible for compiling and loading
everything in the right order.

* code/mcvs-main.lisp: File renamed to main.lisp.

* code/mcvs-package.lisp: File renamed to package.lisp.

* code/system.lisp: File removed.
1 kaz 1.162 Release for Meta-CVS
2 kaz 1.1
3 kaz 1.142 Release ?.??, 200?-??-??:
5 kaz 1.188 All Lisp symbols are in a package. Compiling and loading is simplified,
6     and more portable.
7 kaz 1.142
8 kaz 1.187 Release 1.0.13, 2004-02-??:
10     The ``mcvs convert'' command now creates the TYPES and .cvsignore files.
12 kaz 1.186 Release 1.0.12, 2004-01-31:
13 kaz 1.184
14 kaz 1.185 Fixes various bugs in ``mcvs convert'', so that it is
15 kaz 1.184 actually useable now, albeit still far from a perfect CVS
16     migration tool.
17 kaz 1.185
18     The remap command can now purge the MAP of entries that refer to non-existent
19     F- files, which is useful for cleaning up after the convert algorithm,
20     if necessary.
21 kaz 1.184
22     Release 1.0.11, 2004-01-28:
23 kaz 1.182
24 kaz 1.183 Fixes breakage of list-branches command introduced in last release.
26     Fixes failures in grab command when pulling new baseline over
27     partial sandbox. Renamed symlinks, and execute permissions of files
28     were being accessed using abstract instead of real path.
29 kaz 1.182
30 kaz 1.181 Release 1.0.10, 2004-01-09:
32     Builds on CLISP 2.32. The lb command no longer produces bogus warning
33     when working copy is sticky to a version tag.
35 kaz 1.180 Release 1.0.9, 2003-11-24:
36 kaz 1.178
37     Failures to open terminal for reasons other than non-existence
38     of the object are handled (e.g. ``no such device'', etc).
40 kaz 1.179 The --nometa option now works properly in those commands that
41     operate on the whole project when no file arguments are given
42     (tag, update, commit). Also, these commands no longer implicitly
43     include the meta files when file arguments *are* given.
44     These files can be included explicitly with the --meta global option.
46 kaz 1.177 Release 1.0.8, 2003-06-03:
47 kaz 1.174
48 kaz 1.175 The Cygwin /dev/tty problem is partially addressed. The program
49     won't fail if /dev does not exist, but emits a warning message,
50     and disables interactive error handling. The workaround is to use
51     ``mkdir /dev''. This is a CLISP issue; its OPEN function expects the
52     full path to a file to actually exist, but on Cygwin, there are fake
53     /dev/* paths even though /dev does not exist. If a real /dev directory
54     does in fact exist, it does not interfere with these magic paths.
55 kaz 1.174
56 kaz 1.176 The ``mcvs fi'' command no longer performs expansion on F- names
57     that are preceded by a slash.
59 kaz 1.174 Release 1.0.7, 2003-04-23:
60 kaz 1.170
61 kaz 1.173 New commands sync-to-cvs and sync-from-cvs expose the hard link
62     synchronization algorithm.
64 kaz 1.170 Revamped error recovery logic. To continue in an error situation now
65     consistently means ``take the bold action that may erase data''
66     or ``proceed in the most obvious way to finish the specified job''.
67 kaz 1.172 It never means ``roll back the operation and bail'', which was
68     confusing.
69 kaz 1.170
70 kaz 1.172 Termination is no longer unsafe; the `T' menu command, and the
71     equivalent --error-terminate global option perform all necessary
72     restoration and cleanup.
74     Errors that have more information to print, like a list of files or
75     whatever, now indicate it in a standard way which translates to the
76     `I' menu command.
77 kaz 1.171
78     Chatter output goes to standard error rather than standard output,
79     as do all error messages.
81     The interactive error menu now talks to the user using the controlling
82     tty, meaning that it will work even if the input or output of the
83 kaz 1.172 mcvs command are redirected. If no controlling tty is available,
84     then interactive error handling is disabled; the default behavior
85     is then like --error-terminate but can of course be overridden by
86     --error-continue.
87 kaz 1.171
88 kaz 1.169 Release 1.0.6, 2003-04-14:
89 kaz 1.166
90     The create command detects the existence of text editor backup files (or
91     other junk) in the MCVS directory after the editor is invoked on the
92     TYPES file. The user is prompted regarding their removal. If these files are
93     not removed, cvs import will bring them into the repository.
95 kaz 1.167 When Meta-CVS has to split a large CVS command into two or more
96     invocations with shorter argument lists, it now does not stop when one of
97     these invocations is unsuccessful; it does all of them, and combines
98     their termination indications by a logical AND. There was a bug in this
99     logic also which caused, upon termination failure, a cvs command to be
100     repeated for the same list of files.
102     Synchronization logic has been revamped. Unnecessary synchronizations
103     have been removed, which will make some commands run faster.
104     Synchronizations now have specific directions; for instance before
105     a CVS commit or update, changes are pushed from the directory tree to the MCVS
106     directory only, and after the CVS operation, in the reverse direction only.
108     Meta-CVS will no longer re-create missing F- files by linking from the
109     directory tree. Doing this causes two problems. One is that if a user
110     manually removes a F- file and do ``mcvs up'', she wants CVS to fetch a clean
111     copy and push it into the tree. She does not want the file to be restored
112     from the tree prior to the CVS update. Secondly, sometimes CVS itself
113     removes files. If we re-create the files, CVS will consider them to
114     be ``in the way''.
116     Failures to read from the MAP or MAP-LOCAL files are treated as interactive,
117     continuable errors. By continuing, the user agrees that the behavior will
118     be as if an empty map were read.
120 kaz 1.168 The grab command uses less memory for performing move analysis.
122 kaz 1.165 Release 1.0.5, 2003-02-25:
123 kaz 1.163
124     Bugfix: some one-argument command line options of CVS must be
125     specifies as a single parameter, with no separation between the
126     option letter and the argument characters. For example:
128     cvs log -r rev-1::rev-2 # invalid
129     cvs log -rrev1::rev2 # correct
131     Meta-CVS accepts either syntax, but it was generating the first form
132     when calling CVS. Now, *all* one-letter options that have an argument
133     are formatted in the second manner.
135 kaz 1.164 Bugfix: one more waitpid() issue was fixed; on fast machines, under
136     Linux, it was observed that from time to time Meta-CVS would get
137     a -1/ECHILD when waiting for the CVS process.
139 kaz 1.162 Release 1.0.4, 2003-02-20:
141     Fix remaining occurences of the CVS ``No child processes'' abort
142     problem, affecting the list-branches command, merge command
143     and the -r option of the filt command.
145     Release 1.0.3, 2003-02-12:
147     ! THIS RELEASE IS WITHDRAWN. It was accidentally created from the
148     ! experimental main trunk of the Meta-CVS codebase, rather than
149     ! the 1.0 branch. But 1.0.4 does contain all of the changes
150     ! described here.
151 kaz 1.160
152     Fix for the CVS ``No child processes'' abort problem. It turns out
153     that CLISP sets the signal handling action for the SIGCHLD signal
154     to SIG_IGN, which is inherited by child processes across the
155     fork() and execvp() calls used in our mcvs_spawn() function.
156     We correct the problem by resetting the signal handler to SIG_DFL
157     just before executing the new process image.
158 kaz 1.161
159     New feature, --up option. The argument is a nonnegative integer value
160     (default is zero) which specifies how many sandbox nesting levels to
161     escape out of when locating the sandbox root. This helps work with
162     nested Meta-CVS sandboxes.
163 kaz 1.160
164 kaz 1.162 Release 1.0.2, 2003-02-10:
165 kaz 1.157
166     Bugfix in waitpid logic in the C library for running external processes;
167     we were not dealing with an interrupted waitpid.
169 kaz 1.158 Behavior of mcvs tag is changed: when there are no filename arguments,
170     the whole tree is tagged including the metafiles. In other words, it
171     now works like the commit command.
173 kaz 1.157 Release 1.0.1, 2003-01-30:
174 kaz 1.154
175     Hard link sync optimization: update of a subset of files, commit, and
176     other operations like log and diff don't need to synchronize all
177     hard links, just the ones operated on.
179 kaz 1.155 The merge and remerge commands support -k option for overriding
180     CVS keyword expansion mode.
182 kaz 1.156 Fixes to getcwd error handling.
183 kaz 1.157
184     Improvement in install.sh script's logic for locating CLISP installation
185     directory.
186 kaz 1.156
187 kaz 1.153 Release 1.0, 2003-01-01:
188 kaz 1.147
189 kaz 1.151 NOTE: It's not possible to upgrade to this release via mcvs-upgrade,
190     because it adds some new C functions to the Lisp executable.
192 kaz 1.147 Security fix: read-time evaluation was not suppressed when reading
193     structured data, like MCVS/MAP and MCVS/TYPES. This means that it
194     was possible for Alice to check in something that would execute
195     arbitrary code on Bob's computer.
197 kaz 1.148 Optimization: use fork and exec to launch CVS rather than CLISP's
198     run-program function, which indirects through the shell interpreter.
199 kaz 1.153 (On Cygwin, the spawnvp function is used).
200 kaz 1.148
201 kaz 1.149 Performance fix: stat() was being called superfluously by the
202     hard synchronization code, twice for each file.
204 kaz 1.150 Build fix: install.sh works when CLISP executable is called ``lisp.exe'',
205     which is the case under Cygwin with newer CLISP releases.
207 kaz 1.146 Release 0.99, 2002-11-17:
208 kaz 1.135
209 kaz 1.140 New link command for creating symbolic links.
211 kaz 1.144 Global option -n (dry run---don't modify filesystem) is processed
212     internally now, not just passed to CVS.
214 kaz 1.135 Failure to invoke text editor is handled.
216 kaz 1.136 The -r option of filt is fixed; it has been broken since the change to the
217     new MAP format, because it was reading the raw map representation, not
218     passing it through the right conversion steps that are needed now.
220 kaz 1.138 Bugfix to purge and remap commands: they were fooled by CVS-generated
221     files in the MCVS/CVS directory. Specifically, files having F- names, and a
222     the suffix ,t.
224 kaz 1.141 Bugfix to add logic in directory restructuring: there was the possibility
225     of mistakingly taking a clobbered local file to be a new local version of
226     the added file, instead of replacing it. This could happen if the local
227     file had a future timestamp relative to the one coming from the repository.
229 kaz 1.143 The prop command does not synchronize or write out map if no options are
230     specified.
232 kaz 1.144 Help text added for move and branch commands. Help text for grab rewritten.
233 kaz 1.137
234 kaz 1.145 The CVSEDITOR and VISUAL environment variables are now checked, not
235     only EDITOR.
237 kaz 1.134 Release 0.98, 2002-10-13:
238 kaz 1.128
239 kaz 1.133 The prop command was mistakenly reading from MAP-LOCAL and writing to MAP,
240     which could cause information loss if the two differ. It now reads from MAP
241     and writes to MAP. (The property changes propagate to MAP-LOCAL by the
242     update operation invoked by prop, as before).
244     Invocation of external programs included in debug trace.
245 kaz 1.128
246     The filt command does not filter F- names if they are immediately preceded by
247     the MCVS/ prefix; such occurences are clearly concrete, sandbox-relative
248     references to the actual F- links, rather than abstract references.
250 kaz 1.129 The update command now supports the -C option, to fetch the repository
251     copy, throwing away local changes. It also now honors the --metaonly
252     and --nometa options.
253 kaz 1.130
254     The export command has been added, for checking out documents without creating
255     a working copy (no MCVS directory in the root of the checkout).
256 kaz 1.131
257 kaz 1.133 The watch command has been added. Note that its syntax differs from that
258     of CVS.
259 kaz 1.132
260     The watchers, editors, edit, and unedit commands have been added.
261 kaz 1.134
262     A script called mcvs-upgrade is now included, and installs alongside the mcvs
263     script. This allows the Meta-CVS Lisp image to recompile and patch itself,
264     giving users of binary distributions an easy way to upgrade from source
265     code.
267 kaz 1.127 Release 0.97, 2002-10-06:
268 kaz 1.119
269     Meta-CVS now builds and runs on Microsoft Windows, under Cygwin
270     (www.cygwin.com). It still relies on hard links, which requires
271     Windows 2000 or XP, and the NTFS filesystem. It probably won't
272     work over FAT.
273 kaz 1.120
274     New --debug option for verbose output.
276     Cleaned up of error messages. Error messages don't specify prefixes like
277     ``mcvs-add:'' or ``mcvs-grab:'' any more. Rather, the error handler adds the
278     ``mcvs:'' prefix when printing the messages in a situation when the error is
279     not continuable.
280 kaz 1.119
281 kaz 1.121 Fixed bug introduced in release 0.13: mcvs add -R was adding only
282     directories, effectively ignoring arguments that are regular files.
283 kaz 1.122 The error-continuation behavior of mcvs add has been revised.
284 kaz 1.121
285 kaz 1.125 Trying to rename an object onto itself, or to move the sandbox root
286     directory are no longer silent no-ops, but produce an error.
287 kaz 1.123
288 kaz 1.124 The remap command now preserves property lists, and picks up changes
289     in executable permission.
291     The grab command now notices when a file changes from having execute
292     permission to not having execute permission.
294 kaz 1.126 Operations on the path . now work in a partial sandbox.
296 kaz 1.118 Release 0.96, 2002-09-21:
297 kaz 1.110
298     The restore command was left broken during the change to the new
299     filemap format. It is now fixed.
301 kaz 1.111 The grab command now handles execute permission bits properly.
303 kaz 1.112 Some more commands have detailed help.
305 kaz 1.113 There is now a global option -i which specifies a script to be
306 kaz 1.114 executed. This allows Meta-CVS to be scripted using Lisp. For
307     instance suppose you have the following script and call it
308     list-matching:
309 kaz 1.113
310     #!/usr/local/bin/mcvs -i
311     (in-sandbox-root-dir
312 kaz 1.114 (let ((mapping (mapping-read *mcvs-map*))
313 kaz 1.117 (test-func (eval (read-from-string (pop *args*)))))
314 kaz 1.114 (dolist (entry mapping)
315     (with-slots (path raw-plist) entry
316 kaz 1.117 (when (funcall test-func raw-plist)
317 kaz 1.114 (format t "~a~%" path))))))
319     Then to list the names of files whose "importance" property is
320     a value greater than two, run:
322     ./list-matching '(lambda (plist)
323     (let ((imp (getf plist :importance)))
324     (and imp (> imp 2))))'
325 kaz 1.117
326     WARNING: Scripting accesses the guts of Meta-CVS directly, so scripts may
327     break as Meta-CVS is maintained. There is currently no published set of
328     stable interfaces.
329 kaz 1.113
330 kaz 1.109 Release 0.95, 2002-09-16:
331 kaz 1.104
332 kaz 1.107 The install.sh script no longer uses a borrowed copy of the clisp-link script
333     or the linkkit directory; these have been removed. These materials
334     are available at every CLISP installation; install.sh now finds them
335     and uses them. Users of non-x86 machines ran into problems because of this
336     because linkkit/clisp.h contains architecture-dependent information.
337 kaz 1.104
338 kaz 1.105 A bug in mcvs filt was fixed; it wasn't handling F- names that aren't found
339     in the map.
341 kaz 1.108 A more detailed help system now exists, though it's not complete. The ``mcvs
342     help'' command acts just like ``mcvs --help'' without any arguments. If given
343     an additional parameter which specifies a Meta-CVS command, it produces more
344     detailed documentation for that comand. Help exists already for a few
345     commands.
347 kaz 1.107 The release number is being warped to 0.95, which means that Meta-CVS is now
348     in beta. It is only five updates away from a 1.0 release.
349 kaz 1.106
350 kaz 1.103 Release 0.24, 2002-09-08:
351 kaz 1.98
352 kaz 1.99 The mapping entries for both symlinks and files have extensible property
353     lists now. These are stored in the optional fourth and fifth list elements,
354     respectively of the :FILE and :SYMLINK map entries.
356     Versioning of the execute permission of files is supported, represented as
357     the :EXEC property of a :FILE mapping entry.
358 kaz 1.98
359 kaz 1.100 Some lame syntax is provided for manipulating properties:
361 kaz 1.102 mcvs prop --set foo --clear bar --remove baz main.c list.c
362 kaz 1.100
363     will set the property FOO to true, set the property BAR to false,
364     and remove the property BAZ, in the files main.c and list.c.
365     The execute permission is represented by the property EXEC.
367 kaz 1.97 Release 0.23, 2002-09-02:
368 kaz 1.95
369 kaz 1.96 Bugfix: the grab command notices edited symlinks and incorporates the
370     changes into the mapping.
372     The grab command now figures out moved symlinks. Moved symlinks are those
373     whose pathname has changed, but which continue to point to the same object
374     (which may also have been moved).
375 kaz 1.95
376 kaz 1.94 Release 0.22, 2002-08-31:
377 kaz 1.93
378     Symbolic links are now versioned objects. The format of the MAP file
379     changes to accomodate this; the new Meta-CVS will read old MAP
380     files; when it writes it will write the new format. Old Meta-CVS won't
381     read the new format.
383     When a new module is created from an existing file tree, symbolic
384     links will be recognized and added. The add command will also add
385     symbolic links. Symbolic links can be renamed and moved; this does
386     nothing with their contents. They can point outside of the sandbox
387     using relative or absolute paths.
389 kaz 1.94 TODO:
391 kaz 1.93 There doesn't exist yet a special command to create symbolic links, nor to
392     retarget them; retargetting a link can be done manually by editing MCVS/MAP
393     and updating. Retargetting a link using the ln -s command, won't
394 kaz 1.94 backpropagate to the MAP file; an update will clobber the link.
396     The grab command does not yet compute symbolic link moves; a moved symbolic
397     link is treated as a remove and add. This will be easy to fix.
399     The remap command ignores symlinks.
400 kaz 1.93
401 kaz 1.92 Release 0.21, 2002-08-04:
402 kaz 1.88
403 kaz 1.89 Syntax of grab command changed. The branch is no longer specified as an
404     argument, but using the -r command option. If no revision is specified with
405     -r, then a -A must be specified to make the grab go to the main trunk. This
406     is a safety feature, since grabbing foreign snapshots to the trunk is almost
407     always wrong, though it could be useful during backup recovery, or for fixing
408     mistakes.
410 kaz 1.91 The way operating system functions are targetted has changed. Instead of
411     relying on the ``linuxlibc6'' module provided by CLISP, Meta-CVS now
412     has its own module for calling foreign functions. This module is portable;
413     it does not depend on the layout of glibc data structures. So Meta-CVS
414     is in theory now portable to other Unixes (provided they have /dev/urandom).
416 kaz 1.87 Release 0.20, 2002-07-27:
417 kaz 1.86
418     The commit command does a true global commit when given no file or directory
419     parameters, and not given the --metaonly option. This means commiting all
420     changes in the MCVS directory, even if they are in F-files that are not
421     currently mapped.
423 kaz 1.85 Release 0.19, 2002-07-16:
424 kaz 1.81
425     When moving multiple files or directories to a subdirectory, a
426     restart is now provided to skip over bad ones and continue.
428 kaz 1.83 Grab no longer scans files if there are only added files, or only removed
429     files. There are no moves to deduce in that case.
431 kaz 1.84 Restore properly creates lost+found at the root of a partial sandbox,
432     rather than at the abstract root of the module.
434 kaz 1.83 Some other algorithmic improvements made.
435 kaz 1.82
436     The first few sections of a user guide have been written.
438 kaz 1.80 Release 0.18, 2002-07-07:
439 kaz 1.77
440 kaz 1.78 Cool new feature: checkout takes an extra argument, which specifies a
441     subdirectory of the project. Specifying a subdirectory results in a ``partial
442     sandbox'', whose root directory is the specified subdirectory of the larger
443     project. The rest of the project is ``invisible'' to that sandbox. A
444     subdirectory argument can also be given to mcvs grab, which will cause it to
445     integrate the new source tree against a subtree of the Meta-CVS project
446 kaz 1.79 rather than the entire project. The subtree doesn't have to exist; in
447     that case you get an empty sandbox. Adding files to this sandbox will cause
448     the tree to exist in the project.
449 kaz 1.78
450 kaz 1.77 Bugfix: mcvs grab was not computing moves properly over small file sets,
451     wrongly treating them as removes and adds.
453 kaz 1.76 Release 0.17, 2002-07-02:
454 kaz 1.71
455     The create command no longer takes a vendor branch. Instead the symbol
456     ``Created-by-Meta-CVS'' is used as the vendor tag to satisfy CVS.
458 kaz 1.72 The grab command no longer does useless synchronization on files that
459     are about to be deleted.
461 kaz 1.75 New purge command; does ``cvs rm'' on deleted files, that is to say, F- files
462     that have no mapping.
464     New restore command; re-enters deleted files into the mapping, under
465     the ``lost+found'' directory, using their F- names as sandbox names.
466 kaz 1.73
467 kaz 1.74 Bugfix: when a checkout bails because it is requested over top of an existing
468     working copy, it must not delete that working copy's MCVS sub directory.
470 kaz 1.70 Release 0.16, 2002-06-29:
471 kaz 1.67
472     Added new heuristics to grab command. Paths are analyzed to determine
473     move distance. Greater distances reduce the confidence in a move.
474     These rules help sort out grabs in a project where similar or
475     duplicate files are subject to parallel moves, the ambiguity being
476 kaz 1.68 resolved by favoring shorter moves. Word comparisons are case-insensitive
477     now. Common words (those that appear in many files) are ignored when
478     comparing files.
479 kaz 1.67
480 kaz 1.69 New options, --meta and --metaonly. This area of Meta-CVS is cleaned
481     up a little bit. Most reporting commands like log or diff no longer
482     operate on meta files by default; they must be explicitly told to do
483     so with --meta or --metaonly. Only the commit command implicitly includes
484     metafiles by default, and so if this is not wanted, --nometa must be
485     selected. The update command remains special; if it is given file
486     arguments, it does not include meta files. If given no arguments, it
487     does a global CVS up across the entire project.
489 kaz 1.66 Release 0.15, 2002-06-25:
490 kaz 1.61
491 kaz 1.65 Optimized a string splitting routine which is used heavily for processing
492     paths; the result is a noticeable performance improvement in some commands
493     that process large numbers of files.
494 kaz 1.61
495 kaz 1.62 Renamed ``import'' command to ``create''.
497 kaz 1.65 Bugfix: checkout and create showed errors when removing directory, due to
498     broken :postorder support in directory walking function.
499 kaz 1.63
500 kaz 1.65 Bugfix: on failure, checkout was failing to delete the MCVS directory when
501     the checkout was directed to an existing directory.
503 kaz 1.66 New feature: ``mcvs grab'' command imports third-party snapshots to a
504 kaz 1.65 branch. This is invoked in the root directory of the source tree to import.
505     It determines what files have been added and removed in the snapshot, and
506     tries to compute which removes and adds are actually moves. This is done by
507     analyzing the actual contents of the files according to a crude algorithm to
508     do fuzzy comparisons, so that even files which were modified as well as moved
509     are discovered.
510 kaz 1.64
511 kaz 1.60 Release 0.14, 2002-06-21:
512 kaz 1.59
513     Bugfix: mcvs add was broken for files that have no suffix, causing
514 kaz 1.60 the underlying cvs add to fail. This was broken in 0.7 when type
515     handling was added.
516 kaz 1.59
517 kaz 1.58 Release 0.13, 2002-06-06:
518 kaz 1.55
519     Sandbox synchronization now handles the case of two files having
520     the same timestamp. An error is signaled, with interactive resolution
521     to synchronize either way, or do nothing.
523 kaz 1.56 If a file must be deleted on update, and this cannot be done, it
524     is now a continuable error.
526     Bugfix: pass -I ! to cvs import so that it won't ignore some F- files
527     whose suffix is one of the ones cvs ignores by default.
529 kaz 1.57 New command: mcvs remap. The user can move or delete files directly without
530     going through Meta-CVS. When mcvs remap is invoked, it will hunt down the
531     moves and deletions, and reconstruct the mapping accordingly; that is,
532     it remaps the new structure. This command uses inode numbers to identify
533     files; if a file is copied and then the original is deleted, that won't
534     be recognized as a move.
536 kaz 1.53 Release 0.12, 2002-04-18:
537 kaz 1.51
538     Bugfix: remove was broken in 0.10, fixed now.
540 kaz 1.54 Bugfix: status, diff, etc. work in empty project rather than complaining
541     ``. not known to Meta-CVS''.
543 kaz 1.52 The checkout operation now can now populate an existing directory, including
544     the current working directory (mcvs co -d . modulename). Of course, the
545     target directory cannot be an existing Meta-CVS sandbox.
546     This is a useful feature, which allows sandboxes to blend with an
547     existing directory structure.
549     Checkout now uses the same function for generating the sandbox
550     structure as does update. This is now necessary, because local files
551     can be clobbered by the checkout.
553 kaz 1.50 Release 0.11, 2002-04-12:
554 kaz 1.46
555     Bugfix: when branch invokes rtag, it now takes the CVSROOT information
556     from CVS/Root and passes it via -d. This is necessary because rtag does not
557     look at a local CVS subdirectory for this information, only the
558     -d option or the environment variable.
560 kaz 1.48 Command for listing branches added (list-branches or lb). Also shows
561     what sticky tag the sandbox is updated to.
563     Command for switching branches added (switch or sw).
565     Merge detects that working copy is on non-branch tag and bails.
566 kaz 1.47
567 kaz 1.49 Absolute paths can now be specified as file arguments. These are
568     based from the root directory of the sandbox, not the actual filesystem root
569     directory.
571 kaz 1.45 Release 0.10, 2002-04-03:
572 kaz 1.44
573     Automatic merging implemented. Branch is created using branch command,
574     and merging from another branch is done using simple merge command.
575     Meta-CVS maintains the tags to keep track of what has been merged
576     from what branch to what branch.
577 kaz 1.40
578     Bugfix: checkout -d foo bar was complaining about directory bar already
579     existing, even though it should only care about foo.
581 kaz 1.41 The remove command now requires explicit -R option to recursively remove
582 kaz 1.42 a directory. It has more detailed error reporting.
583 kaz 1.41
584 kaz 1.43 The move command has better error reporting.
586 kaz 1.39 Release 0.9, 2002-03-14:
587 kaz 1.37
588     Bugfix: the .cvsignore file is now subject to tagging, status, etc,
589     (unless --nometa is specified, of course).
590 kaz 1.38
591     The mcvs filt command takes -r <revision> or -D <date> parameters.
592     This means to retrieve the MAP file as of the specified revision or
593     date and use that mapping to perform the filtering translation,
594     rather than using MAP-LOCAL.
595 kaz 1.39
596     The mcvs update command takes filename arguments now and also
597     supports the -p option.
598 kaz 1.37
599 kaz 1.36 Release 0.8, 2002-03-13:
600 kaz 1.28
601 kaz 1.29 Bug fixed in mcvs add; it was not ignoring files that are already
602     listed as :ignore in MCVS/TYPES.
604 kaz 1.34 Bug fixed in mcvs move: a target with a trailing slash is now treated
605     as a directory (if it does not already exist and is a non-directory).
607 kaz 1.30 The -d option of mcvs checkout can now be used to override the checkout
608     directory, which is normally the same as the module name.
610 kaz 1.31 The global options --version, --help, -q, -Q and -e are now supported.
612 kaz 1.33 New global options --error-continue and --error-terminate to disable
613     interactive error handling in two different ways.
615 kaz 1.32 Log level of many messages has changed; many messages have been
616     relegated to debug level.
618 kaz 1.35 The import command now creates a .cvsignore file containing the name
619     MAP-LOCAL.
621 kaz 1.24 Release 0.7, 2002-03-09:
623 kaz 1.27 The import command collects a list of the file suffixes and brings up
624     a text editor to allow the user to edit their CVS keyword expansion
625     behavior. This information is kept in a new metafile called TYPES. The
626     add command also updates TYPES; it identifies any suffixes which are new,
627     and brings up an editor. The F- files now carry suffixes, which
628     simplifies interfacing with CVS, and also allows cvswrappers to work.
630     Recursive add works (mcvs add -R ...).
632     New command line option --nometa allows metafiles to be excluded from
633     diff, tag, and other commands; without the option they are inserted
634     into the list of files to be processed.
635 kaz 1.25
636 kaz 1.27 The commit option now takes an optional list of files or directories,
637     just like tag, diff, and others.
638 kaz 1.26
639 kaz 1.23 Release 0.6, 2002-02-16:
640 kaz 1.19
641 kaz 1.27 The add operation was horribly broken in 0.5, it is fixed.
642 kaz 1.21
643 kaz 1.27 User can interactively select whether to clobber local files or leave
644     everything alone. Effects on the mapping file of a mcvs move are undone,
645     if the restructuring is rolled back, or raises a condition that leads
646     to termination.
648     Meta-CVS now keeps a new meta-file called MCVS/TYPES. This is created
649     during import, and specifies the CVS keyword expansion mode for files
650     having given suffixes, and can also tell Meta-CVS to ignore certain files
651     when importing or adding.
652 kaz 1.22
653 kaz 1.18 Release 0.5, 2002-02-10:
654 kaz 1.14
655 kaz 1.27 Much improved error handling. Filesystem rearranging code performs
656     sanity checks to prevent adds and moves from accidentally clobbering
657     local files. A rearranging gone bad can be rolled back. Effects
658     of a failed mcvs add can also be rolled back.
659 kaz 1.14
660 kaz 1.27 MAP-LOCAL is now sorted in the same way as MAP.
661 kaz 1.15
662 kaz 1.13 Release 0.4, 2002-02-04:
663 kaz 1.10
664 kaz 1.27 CVS is invoked using internal function resembling the xargs utility,
665     which ensures that multiple command lines are generated if necessary to
666     avoid surpassing the operating system limit on argument and environment
667     vector size. This is important when someone wants to diff or stat a
668     subdirectory, which requires Meta-CVS to pick out the individual files
669     at the CVS level.
671     The tag, log, status and annotate commands are now available.
673     The MAP file is sorted on F- file names now, not path names. This
674     improves merging, since files do not move within the file when
675     they are renamed.
676 kaz 1.12
677 kaz 1.5 Release 0.3, 2002-02-02:
679 kaz 1.27 Process termination done is properly in top level handler, by a nonlocal
680     exit. The program properly indicates failed termination when it exits
681     due to an error condition.
683     Corrections are made in the command line option processing. If z is an
684     option that takes an argument, and the argument is -zx, then x is
685     treated as the argument to the option. Long options arguments are
686     recognized properly, according to the --opt=arg convention. The option
687     processing is restructured. Most of the commands now take the
688     appropriate cvs command-specific options.
690     The update algorithm performs dupe checking over the map, which could
691     happen during a merge.
693     Some more bugfixing has been done to the move command. It was still not
694     handling right some cases of an unversioned file being clobbered. Also,
695     it wasn't renaming a directory containing just one file.
697     I did some performance investigation for larger file sets, and
698     ended up rewriting the code that computes filesystem restructuring
699     changes and map duplicates.
700 kaz 1.5
701 kaz 1.4 Release 0.2, 2002-01-30:
703 kaz 1.27 Changed official name from MCVS to Meta-CVS. The move command now
704     performs some filesystem tests so it does the right thing when a versioned
705     file is moved over a non-versioned file, or when a file is moved into
706     a directory not known to Meta-CVS. Factored out reading and writing of
707     map files into functions.
708 kaz 1.4
709 kaz 1.2 Release 0.1, 2002-01-28:
711 kaz 1.27 Support for mcvs diff -u added. The -R option works for mcvs add command.
712     Bug fixed in mcvs mv command; it wasn't working analogously to the Unix
713     mv command when copying a directory to an existing directory.
714 kaz 1.2
715     Release 0.0, 2002-01-27:
716 kaz 1.1
717 kaz 1.27 This is alpha software. It is not complete, and lacks documentation.
718     However, it is already usable in its present state and is being used for
719     version control by its author. If you can program in Common Lisp and would
720     like to help, take a look through the TODO file. Send me patches, ideas,
721     feature requests.

  ViewVC Help
Powered by ViewVC 1.1.5