/[meta-cvs]/meta-cvs/F-B3689DBB46386B16F4B2331934B69223
ViewVC logotype

Contents of /meta-cvs/F-B3689DBB46386B16F4B2331934B69223

Parent Directory Parent Directory | Revision Log Revision Log


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

  ViewVC Help
Powered by ViewVC 1.1.5