ViewVC logotype

Contents of /meta-cvs/F-B3689DBB46386B16F4B2331934B69223

Parent Directory Parent Directory | Revision Log Revision Log

Revision 1.124 - (hide annotations)
Sun Oct 6 08:17:28 2002 UTC (11 years, 6 months ago) by kaz
Branch: MAIN
Changes since 1.123: +6 -0 lines
* code/remap.lisp (mcvs-remap): Preserve property lists of
mapping entries, and pick up changes in execute permission.

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

  ViewVC Help
Powered by ViewVC 1.1.5