ViewVC logotype

Contents of /meta-cvs/F-B3689DBB46386B16F4B2331934B69223

Parent Directory Parent Directory | Revision Log Revision Log

Revision - (hide annotations)
Mon Oct 14 03:01:39 2002 UTC (11 years, 6 months ago) by kaz
Branch: mcvs-1-0-branch
Changes since +6 -1 lines
* code/install.sh: generate a script called mcvs-upgrade.
1 kaz 1.115 Release Notes for Meta-CVS
2 kaz 1.1
3 kaz Release 0.98, 2002-10-??:
5 kaz The prop command was mistakenly reading from MAP-LOCAL and writing to MAP,
6     which could cause information loss if the two differ. It now reads from MAP
7     and writes to MAP. (The property changes propagate to MAP-LOCAL by the
8     update operation invoked by prop, as before).
10 kaz Invocation of external programs included in debug trace.
11 kaz
12 kaz The filt command does not filter F- names if they are immediately preceded by
13     the MCVS/ prefix; such occurences are clearly concrete, sandbox-relative
14     references to the actual F- links, rather than abstract references.
16 kaz The update command now supports the -C option, to fetch the repository
17     copy, throwing away local changes. It also now honors the --metaonly
18     and --nometa options.
19 kaz
20     The export command has been added, for checking out documents without creating
21     a working copy (no MCVS directory in the root of the checkout).
22 kaz
23 kaz The watch command has been added. Note that its syntax differs from that
24     of CVS.
25 kaz
26     The watchers, editors, edit, and unedit commands have been added.
27 kaz
28     A script called mcvs-upgrade is now included, and installs alongside the mcvs
29     script. This allows the Meta-CVS Lisp image to recompile and patch itself,
30     giving users of binary distributions an easy way to upgrade from source
31     code.
33 kaz 1.127 Release 0.97, 2002-10-06:
34 kaz 1.119
35     Meta-CVS now builds and runs on Microsoft Windows, under Cygwin
36     (www.cygwin.com). It still relies on hard links, which requires
37     Windows 2000 or XP, and the NTFS filesystem. It probably won't
38     work over FAT.
39 kaz 1.120
40     New --debug option for verbose output.
42     Cleaned up of error messages. Error messages don't specify prefixes like
43     ``mcvs-add:'' or ``mcvs-grab:'' any more. Rather, the error handler adds the
44     ``mcvs:'' prefix when printing the messages in a situation when the error is
45     not continuable.
46 kaz 1.119
47 kaz 1.121 Fixed bug introduced in release 0.13: mcvs add -R was adding only
48     directories, effectively ignoring arguments that are regular files.
49 kaz 1.122 The error-continuation behavior of mcvs add has been revised.
50 kaz 1.121
51 kaz 1.125 Trying to rename an object onto itself, or to move the sandbox root
52     directory are no longer silent no-ops, but produce an error.
53 kaz 1.123
54 kaz 1.124 The remap command now preserves property lists, and picks up changes
55     in executable permission.
57     The grab command now notices when a file changes from having execute
58     permission to not having execute permission.
60 kaz 1.126 Operations on the path . now work in a partial sandbox.
62 kaz 1.118 Release 0.96, 2002-09-21:
63 kaz 1.110
64     The restore command was left broken during the change to the new
65     filemap format. It is now fixed.
67 kaz 1.111 The grab command now handles execute permission bits properly.
69 kaz 1.112 Some more commands have detailed help.
71 kaz 1.113 There is now a global option -i which specifies a script to be
72 kaz 1.114 executed. This allows Meta-CVS to be scripted using Lisp. For
73     instance suppose you have the following script and call it
74     list-matching:
75 kaz 1.113
76     #!/usr/local/bin/mcvs -i
77     (in-sandbox-root-dir
78 kaz 1.114 (let ((mapping (mapping-read *mcvs-map*))
79 kaz 1.117 (test-func (eval (read-from-string (pop *args*)))))
80 kaz 1.114 (dolist (entry mapping)
81     (with-slots (path raw-plist) entry
82 kaz 1.117 (when (funcall test-func raw-plist)
83 kaz 1.114 (format t "~a~%" path))))))
85     Then to list the names of files whose "importance" property is
86     a value greater than two, run:
88     ./list-matching '(lambda (plist)
89     (let ((imp (getf plist :importance)))
90     (and imp (> imp 2))))'
91 kaz 1.117
92     WARNING: Scripting accesses the guts of Meta-CVS directly, so scripts may
93     break as Meta-CVS is maintained. There is currently no published set of
94     stable interfaces.
95 kaz 1.113
96 kaz 1.109 Release 0.95, 2002-09-16:
97 kaz 1.104
98 kaz 1.107 The install.sh script no longer uses a borrowed copy of the clisp-link script
99     or the linkkit directory; these have been removed. These materials
100     are available at every CLISP installation; install.sh now finds them
101     and uses them. Users of non-x86 machines ran into problems because of this
102     because linkkit/clisp.h contains architecture-dependent information.
103 kaz 1.104
104 kaz 1.105 A bug in mcvs filt was fixed; it wasn't handling F- names that aren't found
105     in the map.
107 kaz 1.108 A more detailed help system now exists, though it's not complete. The ``mcvs
108     help'' command acts just like ``mcvs --help'' without any arguments. If given
109     an additional parameter which specifies a Meta-CVS command, it produces more
110     detailed documentation for that comand. Help exists already for a few
111     commands.
113 kaz 1.107 The release number is being warped to 0.95, which means that Meta-CVS is now
114     in beta. It is only five updates away from a 1.0 release.
115 kaz 1.106
116 kaz 1.103 Release 0.24, 2002-09-08:
117 kaz 1.98
118 kaz 1.99 The mapping entries for both symlinks and files have extensible property
119     lists now. These are stored in the optional fourth and fifth list elements,
120     respectively of the :FILE and :SYMLINK map entries.
122     Versioning of the execute permission of files is supported, represented as
123     the :EXEC property of a :FILE mapping entry.
124 kaz 1.98
125 kaz 1.100 Some lame syntax is provided for manipulating properties:
127 kaz 1.102 mcvs prop --set foo --clear bar --remove baz main.c list.c
128 kaz 1.100
129     will set the property FOO to true, set the property BAR to false,
130     and remove the property BAZ, in the files main.c and list.c.
131     The execute permission is represented by the property EXEC.
133 kaz 1.97 Release 0.23, 2002-09-02:
134 kaz 1.95
135 kaz 1.96 Bugfix: the grab command notices edited symlinks and incorporates the
136     changes into the mapping.
138     The grab command now figures out moved symlinks. Moved symlinks are those
139     whose pathname has changed, but which continue to point to the same object
140     (which may also have been moved).
141 kaz 1.95
142 kaz 1.94 Release 0.22, 2002-08-31:
143 kaz 1.93
144     Symbolic links are now versioned objects. The format of the MAP file
145     changes to accomodate this; the new Meta-CVS will read old MAP
146     files; when it writes it will write the new format. Old Meta-CVS won't
147     read the new format.
149     When a new module is created from an existing file tree, symbolic
150     links will be recognized and added. The add command will also add
151     symbolic links. Symbolic links can be renamed and moved; this does
152     nothing with their contents. They can point outside of the sandbox
153     using relative or absolute paths.
155 kaz 1.94 TODO:
157 kaz 1.93 There doesn't exist yet a special command to create symbolic links, nor to
158     retarget them; retargetting a link can be done manually by editing MCVS/MAP
159     and updating. Retargetting a link using the ln -s command, won't
160 kaz 1.94 backpropagate to the MAP file; an update will clobber the link.
162     The grab command does not yet compute symbolic link moves; a moved symbolic
163     link is treated as a remove and add. This will be easy to fix.
165     The remap command ignores symlinks.
166 kaz 1.93
167 kaz 1.92 Release 0.21, 2002-08-04:
168 kaz 1.88
169 kaz 1.89 Syntax of grab command changed. The branch is no longer specified as an
170     argument, but using the -r command option. If no revision is specified with
171     -r, then a -A must be specified to make the grab go to the main trunk. This
172     is a safety feature, since grabbing foreign snapshots to the trunk is almost
173     always wrong, though it could be useful during backup recovery, or for fixing
174     mistakes.
176 kaz 1.91 The way operating system functions are targetted has changed. Instead of
177     relying on the ``linuxlibc6'' module provided by CLISP, Meta-CVS now
178     has its own module for calling foreign functions. This module is portable;
179     it does not depend on the layout of glibc data structures. So Meta-CVS
180     is in theory now portable to other Unixes (provided they have /dev/urandom).
182 kaz 1.87 Release 0.20, 2002-07-27:
183 kaz 1.86
184     The commit command does a true global commit when given no file or directory
185     parameters, and not given the --metaonly option. This means commiting all
186     changes in the MCVS directory, even if they are in F-files that are not
187     currently mapped.
189 kaz 1.85 Release 0.19, 2002-07-16:
190 kaz 1.81
191     When moving multiple files or directories to a subdirectory, a
192     restart is now provided to skip over bad ones and continue.
194 kaz 1.83 Grab no longer scans files if there are only added files, or only removed
195     files. There are no moves to deduce in that case.
197 kaz 1.84 Restore properly creates lost+found at the root of a partial sandbox,
198     rather than at the abstract root of the module.
200 kaz 1.83 Some other algorithmic improvements made.
201 kaz 1.82
202     The first few sections of a user guide have been written.
204 kaz 1.80 Release 0.18, 2002-07-07:
205 kaz 1.77
206 kaz 1.78 Cool new feature: checkout takes an extra argument, which specifies a
207     subdirectory of the project. Specifying a subdirectory results in a ``partial
208     sandbox'', whose root directory is the specified subdirectory of the larger
209     project. The rest of the project is ``invisible'' to that sandbox. A
210     subdirectory argument can also be given to mcvs grab, which will cause it to
211     integrate the new source tree against a subtree of the Meta-CVS project
212 kaz 1.79 rather than the entire project. The subtree doesn't have to exist; in
213     that case you get an empty sandbox. Adding files to this sandbox will cause
214     the tree to exist in the project.
215 kaz 1.78
216 kaz 1.77 Bugfix: mcvs grab was not computing moves properly over small file sets,
217     wrongly treating them as removes and adds.
219 kaz 1.76 Release 0.17, 2002-07-02:
220 kaz 1.71
221     The create command no longer takes a vendor branch. Instead the symbol
222     ``Created-by-Meta-CVS'' is used as the vendor tag to satisfy CVS.
224 kaz 1.72 The grab command no longer does useless synchronization on files that
225     are about to be deleted.
227 kaz 1.75 New purge command; does ``cvs rm'' on deleted files, that is to say, F- files
228     that have no mapping.
230     New restore command; re-enters deleted files into the mapping, under
231     the ``lost+found'' directory, using their F- names as sandbox names.
232 kaz 1.73
233 kaz 1.74 Bugfix: when a checkout bails because it is requested over top of an existing
234     working copy, it must not delete that working copy's MCVS sub directory.
236 kaz 1.70 Release 0.16, 2002-06-29:
237 kaz 1.67
238     Added new heuristics to grab command. Paths are analyzed to determine
239     move distance. Greater distances reduce the confidence in a move.
240     These rules help sort out grabs in a project where similar or
241     duplicate files are subject to parallel moves, the ambiguity being
242 kaz 1.68 resolved by favoring shorter moves. Word comparisons are case-insensitive
243     now. Common words (those that appear in many files) are ignored when
244     comparing files.
245 kaz 1.67
246 kaz 1.69 New options, --meta and --metaonly. This area of Meta-CVS is cleaned
247     up a little bit. Most reporting commands like log or diff no longer
248     operate on meta files by default; they must be explicitly told to do
249     so with --meta or --metaonly. Only the commit command implicitly includes
250     metafiles by default, and so if this is not wanted, --nometa must be
251     selected. The update command remains special; if it is given file
252     arguments, it does not include meta files. If given no arguments, it
253     does a global CVS up across the entire project.
255 kaz 1.66 Release 0.15, 2002-06-25:
256 kaz 1.61
257 kaz 1.65 Optimized a string splitting routine which is used heavily for processing
258     paths; the result is a noticeable performance improvement in some commands
259     that process large numbers of files.
260 kaz 1.61
261 kaz 1.62 Renamed ``import'' command to ``create''.
263 kaz 1.65 Bugfix: checkout and create showed errors when removing directory, due to
264     broken :postorder support in directory walking function.
265 kaz 1.63
266 kaz 1.65 Bugfix: on failure, checkout was failing to delete the MCVS directory when
267     the checkout was directed to an existing directory.
269 kaz 1.66 New feature: ``mcvs grab'' command imports third-party snapshots to a
270 kaz 1.65 branch. This is invoked in the root directory of the source tree to import.
271     It determines what files have been added and removed in the snapshot, and
272     tries to compute which removes and adds are actually moves. This is done by
273     analyzing the actual contents of the files according to a crude algorithm to
274     do fuzzy comparisons, so that even files which were modified as well as moved
275     are discovered.
276 kaz 1.64
277 kaz 1.60 Release 0.14, 2002-06-21:
278 kaz 1.59
279     Bugfix: mcvs add was broken for files that have no suffix, causing
280 kaz 1.60 the underlying cvs add to fail. This was broken in 0.7 when type
281     handling was added.
282 kaz 1.59
283 kaz 1.58 Release 0.13, 2002-06-06:
284 kaz 1.55
285     Sandbox synchronization now handles the case of two files having
286     the same timestamp. An error is signaled, with interactive resolution
287     to synchronize either way, or do nothing.
289 kaz 1.56 If a file must be deleted on update, and this cannot be done, it
290     is now a continuable error.
292     Bugfix: pass -I ! to cvs import so that it won't ignore some F- files
293     whose suffix is one of the ones cvs ignores by default.
295 kaz 1.57 New command: mcvs remap. The user can move or delete files directly without
296     going through Meta-CVS. When mcvs remap is invoked, it will hunt down the
297     moves and deletions, and reconstruct the mapping accordingly; that is,
298     it remaps the new structure. This command uses inode numbers to identify
299     files; if a file is copied and then the original is deleted, that won't
300     be recognized as a move.
302 kaz 1.53 Release 0.12, 2002-04-18:
303 kaz 1.51
304     Bugfix: remove was broken in 0.10, fixed now.
306 kaz 1.54 Bugfix: status, diff, etc. work in empty project rather than complaining
307     ``. not known to Meta-CVS''.
309 kaz 1.52 The checkout operation now can now populate an existing directory, including
310     the current working directory (mcvs co -d . modulename). Of course, the
311     target directory cannot be an existing Meta-CVS sandbox.
312     This is a useful feature, which allows sandboxes to blend with an
313     existing directory structure.
315     Checkout now uses the same function for generating the sandbox
316     structure as does update. This is now necessary, because local files
317     can be clobbered by the checkout.
319 kaz 1.50 Release 0.11, 2002-04-12:
320 kaz 1.46
321     Bugfix: when branch invokes rtag, it now takes the CVSROOT information
322     from CVS/Root and passes it via -d. This is necessary because rtag does not
323     look at a local CVS subdirectory for this information, only the
324     -d option or the environment variable.
326 kaz 1.48 Command for listing branches added (list-branches or lb). Also shows
327     what sticky tag the sandbox is updated to.
329     Command for switching branches added (switch or sw).
331     Merge detects that working copy is on non-branch tag and bails.
332 kaz 1.47
333 kaz 1.49 Absolute paths can now be specified as file arguments. These are
334     based from the root directory of the sandbox, not the actual filesystem root
335     directory.
337 kaz 1.45 Release 0.10, 2002-04-03:
338 kaz 1.44
339     Automatic merging implemented. Branch is created using branch command,
340     and merging from another branch is done using simple merge command.
341     Meta-CVS maintains the tags to keep track of what has been merged
342     from what branch to what branch.
343 kaz 1.40
344     Bugfix: checkout -d foo bar was complaining about directory bar already
345     existing, even though it should only care about foo.
347 kaz 1.41 The remove command now requires explicit -R option to recursively remove
348 kaz 1.42 a directory. It has more detailed error reporting.
349 kaz 1.41
350 kaz 1.43 The move command has better error reporting.
352 kaz 1.39 Release 0.9, 2002-03-14:
353 kaz 1.37
354     Bugfix: the .cvsignore file is now subject to tagging, status, etc,
355     (unless --nometa is specified, of course).
356 kaz 1.38
357     The mcvs filt command takes -r <revision> or -D <date> parameters.
358     This means to retrieve the MAP file as of the specified revision or
359     date and use that mapping to perform the filtering translation,
360     rather than using MAP-LOCAL.
361 kaz 1.39
362     The mcvs update command takes filename arguments now and also
363     supports the -p option.
364 kaz 1.37
365 kaz 1.36 Release 0.8, 2002-03-13:
366 kaz 1.28
367 kaz 1.29 Bug fixed in mcvs add; it was not ignoring files that are already
368     listed as :ignore in MCVS/TYPES.
370 kaz 1.34 Bug fixed in mcvs move: a target with a trailing slash is now treated
371     as a directory (if it does not already exist and is a non-directory).
373 kaz 1.30 The -d option of mcvs checkout can now be used to override the checkout
374     directory, which is normally the same as the module name.
376 kaz 1.31 The global options --version, --help, -q, -Q and -e are now supported.
378 kaz 1.33 New global options --error-continue and --error-terminate to disable
379     interactive error handling in two different ways.
381 kaz 1.32 Log level of many messages has changed; many messages have been
382     relegated to debug level.
384 kaz 1.35 The import command now creates a .cvsignore file containing the name
385     MAP-LOCAL.
387 kaz 1.24 Release 0.7, 2002-03-09:
389 kaz 1.27 The import command collects a list of the file suffixes and brings up
390     a text editor to allow the user to edit their CVS keyword expansion
391     behavior. This information is kept in a new metafile called TYPES. The
392     add command also updates TYPES; it identifies any suffixes which are new,
393     and brings up an editor. The F- files now carry suffixes, which
394     simplifies interfacing with CVS, and also allows cvswrappers to work.
396     Recursive add works (mcvs add -R ...).
398     New command line option --nometa allows metafiles to be excluded from
399     diff, tag, and other commands; without the option they are inserted
400     into the list of files to be processed.
401 kaz 1.25
402 kaz 1.27 The commit option now takes an optional list of files or directories,
403     just like tag, diff, and others.
404 kaz 1.26
405 kaz 1.23 Release 0.6, 2002-02-16:
406 kaz 1.19
407 kaz 1.27 The add operation was horribly broken in 0.5, it is fixed.
408 kaz 1.21
409 kaz 1.27 User can interactively select whether to clobber local files or leave
410     everything alone. Effects on the mapping file of a mcvs move are undone,
411     if the restructuring is rolled back, or raises a condition that leads
412     to termination.
414     Meta-CVS now keeps a new meta-file called MCVS/TYPES. This is created
415     during import, and specifies the CVS keyword expansion mode for files
416     having given suffixes, and can also tell Meta-CVS to ignore certain files
417     when importing or adding.
418 kaz 1.22
419 kaz 1.18 Release 0.5, 2002-02-10:
420 kaz 1.14
421 kaz 1.27 Much improved error handling. Filesystem rearranging code performs
422     sanity checks to prevent adds and moves from accidentally clobbering
423     local files. A rearranging gone bad can be rolled back. Effects
424     of a failed mcvs add can also be rolled back.
425 kaz 1.14
426 kaz 1.27 MAP-LOCAL is now sorted in the same way as MAP.
427 kaz 1.15
428 kaz 1.13 Release 0.4, 2002-02-04:
429 kaz 1.10
430 kaz 1.27 CVS is invoked using internal function resembling the xargs utility,
431     which ensures that multiple command lines are generated if necessary to
432     avoid surpassing the operating system limit on argument and environment
433     vector size. This is important when someone wants to diff or stat a
434     subdirectory, which requires Meta-CVS to pick out the individual files
435     at the CVS level.
437     The tag, log, status and annotate commands are now available.
439     The MAP file is sorted on F- file names now, not path names. This
440     improves merging, since files do not move within the file when
441     they are renamed.
442 kaz 1.12
443 kaz 1.5 Release 0.3, 2002-02-02:
445 kaz 1.27 Process termination done is properly in top level handler, by a nonlocal
446     exit. The program properly indicates failed termination when it exits
447     due to an error condition.
449     Corrections are made in the command line option processing. If z is an
450     option that takes an argument, and the argument is -zx, then x is
451     treated as the argument to the option. Long options arguments are
452     recognized properly, according to the --opt=arg convention. The option
453     processing is restructured. Most of the commands now take the
454     appropriate cvs command-specific options.
456     The update algorithm performs dupe checking over the map, which could
457     happen during a merge.
459     Some more bugfixing has been done to the move command. It was still not
460     handling right some cases of an unversioned file being clobbered. Also,
461     it wasn't renaming a directory containing just one file.
463     I did some performance investigation for larger file sets, and
464     ended up rewriting the code that computes filesystem restructuring
465     changes and map duplicates.
466 kaz 1.5
467 kaz 1.4 Release 0.2, 2002-01-30:
469 kaz 1.27 Changed official name from MCVS to Meta-CVS. The move command now
470     performs some filesystem tests so it does the right thing when a versioned
471     file is moved over a non-versioned file, or when a file is moved into
472     a directory not known to Meta-CVS. Factored out reading and writing of
473     map files into functions.
474 kaz 1.4
475 kaz 1.2 Release 0.1, 2002-01-28:
477 kaz 1.27 Support for mcvs diff -u added. The -R option works for mcvs add command.
478     Bug fixed in mcvs mv command; it wasn't working analogously to the Unix
479     mv command when copying a directory to an existing directory.
480 kaz 1.2
481     Release 0.0, 2002-01-27:
482 kaz 1.1
483 kaz 1.27 This is alpha software. It is not complete, and lacks documentation.
484     However, it is already usable in its present state and is being used for
485     version control by its author. If you can program in Common Lisp and would
486     like to help, take a look through the TODO file. Send me patches, ideas,
487     feature requests.

  ViewVC Help
Powered by ViewVC 1.1.5