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

Contents of /meta-cvs/F-B3689DBB46386B16F4B2331934B69223

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.67 - (show annotations)
Wed Jun 26 22:21:44 2002 UTC (11 years, 9 months ago) by kaz
Branch: MAIN
Changes since 1.66: +8 -0 lines
* grab.lisp (read-word-hash): Memory use optimizations: use smaller
initial size for tokens; re-use the same token object when the
hash already contains a duplicate.
(correlate): Renamed to correlate-word-hashes.
(correlate-paths): New function; computes a confidence-reducing
factor based on the differences between two paths.
(move-candidates): Use correlate-paths to lower the confidence
for distant moves. This could help sort out ambiguities when
projects contain very similar or duplicate files which are subject
to parallel moves.

* seqfuncs.lisp (lcs-list, lcs-vector,
longest-common-subsequence): New functions.
1 Release Notes for Meta-CVS
2
3 Release 0.16, 2002-??-??:
4
5 Added new heuristics to grab command. Paths are analyzed to determine
6 move distance. Greater distances reduce the confidence in a move.
7 These rules help sort out grabs in a project where similar or
8 duplicate files are subject to parallel moves, the ambiguity being
9 resolved by favoring shorter moves.
10
11 Release 0.15, 2002-06-25:
12
13 Optimized a string splitting routine which is used heavily for processing
14 paths; the result is a noticeable performance improvement in some commands
15 that process large numbers of files.
16
17 Renamed ``import'' command to ``create''.
18
19 Bugfix: checkout and create showed errors when removing directory, due to
20 broken :postorder support in directory walking function.
21
22 Bugfix: on failure, checkout was failing to delete the MCVS directory when
23 the checkout was directed to an existing directory.
24
25 New feature: ``mcvs grab'' command imports third-party snapshots to a
26 branch. This is invoked in the root directory of the source tree to import.
27 It determines what files have been added and removed in the snapshot, and
28 tries to compute which removes and adds are actually moves. This is done by
29 analyzing the actual contents of the files according to a crude algorithm to
30 do fuzzy comparisons, so that even files which were modified as well as moved
31 are discovered.
32
33 Release 0.14, 2002-06-21:
34
35 Bugfix: mcvs add was broken for files that have no suffix, causing
36 the underlying cvs add to fail. This was broken in 0.7 when type
37 handling was added.
38
39 Release 0.13, 2002-06-06:
40
41 Sandbox synchronization now handles the case of two files having
42 the same timestamp. An error is signaled, with interactive resolution
43 to synchronize either way, or do nothing.
44
45 If a file must be deleted on update, and this cannot be done, it
46 is now a continuable error.
47
48 Bugfix: pass -I ! to cvs import so that it won't ignore some F- files
49 whose suffix is one of the ones cvs ignores by default.
50
51 New command: mcvs remap. The user can move or delete files directly without
52 going through Meta-CVS. When mcvs remap is invoked, it will hunt down the
53 moves and deletions, and reconstruct the mapping accordingly; that is,
54 it remaps the new structure. This command uses inode numbers to identify
55 files; if a file is copied and then the original is deleted, that won't
56 be recognized as a move.
57
58 Release 0.12, 2002-04-18:
59
60 Bugfix: remove was broken in 0.10, fixed now.
61
62 Bugfix: status, diff, etc. work in empty project rather than complaining
63 ``. not known to Meta-CVS''.
64
65 The checkout operation now can now populate an existing directory, including
66 the current working directory (mcvs co -d . modulename). Of course, the
67 target directory cannot be an existing Meta-CVS sandbox.
68 This is a useful feature, which allows sandboxes to blend with an
69 existing directory structure.
70
71 Checkout now uses the same function for generating the sandbox
72 structure as does update. This is now necessary, because local files
73 can be clobbered by the checkout.
74
75 Release 0.11, 2002-04-12:
76
77 Bugfix: when branch invokes rtag, it now takes the CVSROOT information
78 from CVS/Root and passes it via -d. This is necessary because rtag does not
79 look at a local CVS subdirectory for this information, only the
80 -d option or the environment variable.
81
82 Command for listing branches added (list-branches or lb). Also shows
83 what sticky tag the sandbox is updated to.
84
85 Command for switching branches added (switch or sw).
86
87 Merge detects that working copy is on non-branch tag and bails.
88
89 Absolute paths can now be specified as file arguments. These are
90 based from the root directory of the sandbox, not the actual filesystem root
91 directory.
92
93 Release 0.10, 2002-04-03:
94
95 Automatic merging implemented. Branch is created using branch command,
96 and merging from another branch is done using simple merge command.
97 Meta-CVS maintains the tags to keep track of what has been merged
98 from what branch to what branch.
99
100 Bugfix: checkout -d foo bar was complaining about directory bar already
101 existing, even though it should only care about foo.
102
103 The remove command now requires explicit -R option to recursively remove
104 a directory. It has more detailed error reporting.
105
106 The move command has better error reporting.
107
108 Release 0.9, 2002-03-14:
109
110 Bugfix: the .cvsignore file is now subject to tagging, status, etc,
111 (unless --nometa is specified, of course).
112
113 The mcvs filt command takes -r <revision> or -D <date> parameters.
114 This means to retrieve the MAP file as of the specified revision or
115 date and use that mapping to perform the filtering translation,
116 rather than using MAP-LOCAL.
117
118 The mcvs update command takes filename arguments now and also
119 supports the -p option.
120
121 Release 0.8, 2002-03-13:
122
123 Bug fixed in mcvs add; it was not ignoring files that are already
124 listed as :ignore in MCVS/TYPES.
125
126 Bug fixed in mcvs move: a target with a trailing slash is now treated
127 as a directory (if it does not already exist and is a non-directory).
128
129 The -d option of mcvs checkout can now be used to override the checkout
130 directory, which is normally the same as the module name.
131
132 The global options --version, --help, -q, -Q and -e are now supported.
133
134 New global options --error-continue and --error-terminate to disable
135 interactive error handling in two different ways.
136
137 Log level of many messages has changed; many messages have been
138 relegated to debug level.
139
140 The import command now creates a .cvsignore file containing the name
141 MAP-LOCAL.
142
143 Release 0.7, 2002-03-09:
144
145 The import command collects a list of the file suffixes and brings up
146 a text editor to allow the user to edit their CVS keyword expansion
147 behavior. This information is kept in a new metafile called TYPES. The
148 add command also updates TYPES; it identifies any suffixes which are new,
149 and brings up an editor. The F- files now carry suffixes, which
150 simplifies interfacing with CVS, and also allows cvswrappers to work.
151
152 Recursive add works (mcvs add -R ...).
153
154 New command line option --nometa allows metafiles to be excluded from
155 diff, tag, and other commands; without the option they are inserted
156 into the list of files to be processed.
157
158 The commit option now takes an optional list of files or directories,
159 just like tag, diff, and others.
160
161 Release 0.6, 2002-02-16:
162
163 The add operation was horribly broken in 0.5, it is fixed.
164
165 User can interactively select whether to clobber local files or leave
166 everything alone. Effects on the mapping file of a mcvs move are undone,
167 if the restructuring is rolled back, or raises a condition that leads
168 to termination.
169
170 Meta-CVS now keeps a new meta-file called MCVS/TYPES. This is created
171 during import, and specifies the CVS keyword expansion mode for files
172 having given suffixes, and can also tell Meta-CVS to ignore certain files
173 when importing or adding.
174
175 Release 0.5, 2002-02-10:
176
177 Much improved error handling. Filesystem rearranging code performs
178 sanity checks to prevent adds and moves from accidentally clobbering
179 local files. A rearranging gone bad can be rolled back. Effects
180 of a failed mcvs add can also be rolled back.
181
182 MAP-LOCAL is now sorted in the same way as MAP.
183
184 Release 0.4, 2002-02-04:
185
186 CVS is invoked using internal function resembling the xargs utility,
187 which ensures that multiple command lines are generated if necessary to
188 avoid surpassing the operating system limit on argument and environment
189 vector size. This is important when someone wants to diff or stat a
190 subdirectory, which requires Meta-CVS to pick out the individual files
191 at the CVS level.
192
193 The tag, log, status and annotate commands are now available.
194
195 The MAP file is sorted on F- file names now, not path names. This
196 improves merging, since files do not move within the file when
197 they are renamed.
198
199 Release 0.3, 2002-02-02:
200
201 Process termination done is properly in top level handler, by a nonlocal
202 exit. The program properly indicates failed termination when it exits
203 due to an error condition.
204
205 Corrections are made in the command line option processing. If z is an
206 option that takes an argument, and the argument is -zx, then x is
207 treated as the argument to the option. Long options arguments are
208 recognized properly, according to the --opt=arg convention. The option
209 processing is restructured. Most of the commands now take the
210 appropriate cvs command-specific options.
211
212 The update algorithm performs dupe checking over the map, which could
213 happen during a merge.
214
215 Some more bugfixing has been done to the move command. It was still not
216 handling right some cases of an unversioned file being clobbered. Also,
217 it wasn't renaming a directory containing just one file.
218
219 I did some performance investigation for larger file sets, and
220 ended up rewriting the code that computes filesystem restructuring
221 changes and map duplicates.
222
223 Release 0.2, 2002-01-30:
224
225 Changed official name from MCVS to Meta-CVS. The move command now
226 performs some filesystem tests so it does the right thing when a versioned
227 file is moved over a non-versioned file, or when a file is moved into
228 a directory not known to Meta-CVS. Factored out reading and writing of
229 map files into functions.
230
231 Release 0.1, 2002-01-28:
232
233 Support for mcvs diff -u added. The -R option works for mcvs add command.
234 Bug fixed in mcvs mv command; it wasn't working analogously to the Unix
235 mv command when copying a directory to an existing directory.
236
237 Release 0.0, 2002-01-27:
238
239 This is alpha software. It is not complete, and lacks documentation.
240 However, it is already usable in its present state and is being used for
241 version control by its author. If you can program in Common Lisp and would
242 like to help, take a look through the TODO file. Send me patches, ideas,
243 feature requests.

  ViewVC Help
Powered by ViewVC 1.1.5