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

Contents of /meta-cvs/F-B3689DBB46386B16F4B2331934B69223

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.176 - (hide annotations)
Sun May 25 16:11:31 2003 UTC (10 years, 10 months ago) by kaz
Branch: MAIN
Changes since 1.175: +3 -0 lines
Merging from mcvs-1-0-branch.

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

  ViewVC Help
Powered by ViewVC 1.1.5