monotone

monotone Mtn Source Tree

Root/NEWS

1XXX XXX XX XX:XX:XX UTC 201X
2
3 1.1 release.
4
5 Changes
6
7 - '_MTN/wanted-testresults' must now have 1 hex-encoded
8 signing key hash in lowercase per line.
9
10 New features
11
12 - 'automate atttributes' now also works without a workspace
13 and returns the attributes for a specific file from the
14 revision's manifest
15
16 - New 'erase_descendants' automate command which returns all
17 input revisions, except those that are a descendant of
18 another revision in the input.
19
20 - New 'min(A)' selector is now available which returns all
21 revisions selected by A which are not descendants of other
22 revisions selected by A.
23
24 - New 'not(A)' selector is now available which returns all
25 revisions not selected by 'A'.
26
27 - All certs for a revision are now output by 'mtn log' with
28 'suspend', 'testresult', and custom certs placed under a
29 a new 'Other certs' heading.
30
31 - New conflict 'dropped/modified' allows explicitly resolving
32 the case of a file that is dropped on one side of a merge,
33 and modified on the other. Previously, the modifications
34 were always lost; now you have the option of re-adding the
35 file with the modifications during merge conflict
36 resolution.
37
38 - New attribute 'mtn:resolve_conflict' allows specifying a
39 persistent 'drop' conflict resolution for a dropped/modified
40 conflict. This is useful in the case where the conflict will
41 occur again in the future, for example when a file that is
42 maintained in an upstream branch is not needed, and
43 therefore dropped, in a local branch.
44
45 Bugs fixed
46
47 - Monotone now compiles against Botan 1.10.x (as well as most of
48 the testing releases in 1.9.y).
49
50 - Struct file_handle got renamed to avoid clash with newer glibc's
51 fcntl.h.
52
53 - Monotone now compiles just fine with gcc's option
54 "-Werror=format-security."
55
56 - Fixed renaming across devices, for example if parts of the
57 workspace are on NFS.
58
59 - Fixed recursive file removal on Solaris.
60
61 - Fixed a failure to revert some files when inodeprints is
62 enabled.
63
64 - Monotone now works with Lua 5.2, even if it doesn't have
65 backwards-compatibility compiled in.
66
67 - Various fixes for compatibility with newer boost versions.
68
69 - mtn add and mtn list are now more consistent in their use of
70 --recursive and --unknown options.
71
72 - Produce a meaningful error message when trying to disapprove a
73 root.
74
75 - Allow monotone to compile on platforms where MAXPATHLEN isn't
76 defined (i.e. GNU/Hurd).
77
78 - Allow monotone to compile on C++11-enabled g++ and clang++.
79
80 - Allow test suite to run on systems behind broken a DNS resolver.
81
82 Internal
83
84 - The performance and memory usage of regular expressions has
85 been improved throughout. This affects any use of the
86 ".mtn-ignore" file such as "mtn ls unknown" and "mtn add",
87 and any calls to "regex.search" in Lua hooks.
88
89 Other
90
91 - 'mtn diff' now outputs old and new revision IDs in the diff
92 header when both are specified.
93
94 - Additional Vim syntax files and an output colorization script
95 in contrib.
96
97
98Sat Mar 26 10:53:47 UTC 2011
99
100 1.0 release.
101
102 Changes
103
104 - The database scheme was changed; please execute 'mtn db migrate'
105 on all your local and remote databases.
106
107 - In 'mtn conflicts resolve_first interactive', the result
108 file name now defaults to _MTN/resolutions/<left_path>.
109 (fixes monotone issue 103)
110
111 - The French monotone translation has been updated and is
112 now part of the main distribution again. Many thanks to
113 Steve Petruzzello <dlist@bluewin.ch> for the outstanding
114 work!
115
116 - get_netsync_(read|write)_permitted have been extended to not
117 only read the files read-permissions and write-permissions,
118 but also the files in the subdirectories read-permissions.d
119 and write-permissions.d.
120
121 - monotone now also tracks the workspaces of databases which
122 do not reside in a "managed" location.
123
124 - automate now resets the locale to "POSIX" internally. This
125 means that all scripts can expect the same untranslated
126 messages from mtn automate, regardless of the locale of the
127 calling process.
128
129 - The hook 'get_netsync_key' has been split up into two separate
130 hooks, one for client usage ('get_netsync_client_key', with
131 the same arguments as the original 'get_netsync_key') and one
132 for server usage ('get_netsync_server_key', with a single table
133 argument containing all the given '--bind' options). Please
134 review your custom hooks accordingly.
135
136 - Short options ('-b', '-d', ...) are no longer completed. This
137 fixes an invariant failure originating from wrong option usage.
138 (closes monotone issue 141)
139
140 New Features
141
142 - 'mtn conflicts store' now outputs a count of the conflicts,
143 and the name of the conflicts file.
144 (fixes monotone issue 108)
145
146 - New 'mtn list workspaces' command which outputs all the
147 known workspaces for a specific database.
148 (closes monotone issue 129)
149
150 Bugs fixed
151
152 - The internal line merger will actually preserve your line
153 endings now, instead of changing everything to "\n".
154
155 - Improved the help and fixed the argument indexing in
156 'conflicts resolve_first' (fixes monotone issue 101)
157
158 - A regression from 0.48 prevented monotone from ordering the
159 diff output of individual files alphabetically.
160 (fixes monotone issue 102)
161
162 - 'mtn privkey' did not recognize private keys solely available
163 in the key store. This has been fixed.
164
165 - Added compatibility with Botan 1.9.9 and newer.
166 (fixes monotone issue 104)
167
168 - 'mtn pull' and 'mtn sync' would always say that your workspace
169 has not been updated. Now, it only does that when you used
170 the '--update' option and there were no updates.
171 (fixes monotone issue 106)
172
173 - 'mtn automate remote' and 'mtn automate remote_stdio' now use
174 a given database given by an alias to read, store and validate
175 a remote server's key fingerprint (fixes monotone issue 95)
176
177 - monotone gives a proper error message now if a netsync URI
178 with the 'mtn' scheme misses the required host part
179 (fixes monotone issue 110)
180
181 - Whenever a binary file was removed and one would try to get
182 a diff using mtn diff, it would report that "/dev/null is
183 binary". This has been changed to it reports the actual
184 name of the removed file instead.
185 (fixes monotone issue 111)
186
187 - monotone no longer wrongly falls back on a :memory: database
188 when no database option is given. It also prints out an
189 informational message for commands like 'setup' and 'clone'
190 that fall back on the configured default database, again,
191 if no database is specified for these commands.
192 (fixes monotone issue 113)
193
194 - If 'mtn serve' is called with one or more '--bind' options,
195 then the arguments to these options can now be specified
196 again as follows:
197
198 '<ip-or-host>'
199 to listen to IP or host on the default port
200 '<ip-or-host>:<port>'
201 to listen to IP or host on the specified port - or
202 ':<port>'
203 to listen on all interfaces on the specified port
204
205 (fixes monotone issue 119)
206
207 - monotone no longer enforces ".mtn" as file extension for
208 managed databases. A new Lua hook, get_default_database_glob(),
209 is used instead to determine a pattern which matches
210 accepted database filenames and this pattern by default
211 accept files ending with both, ".mtn" and ".db".
212 (fixes monotone issue 128)
213
214 - monotone now gives a proper error message when an incomplete
215 or partial identifier contains non-hex digits.
216 (fixes monotone issue 143)
217
218 - Performance of "mtn ls changed" has been improved and is now
219 comparable to "mtn status". (fixes monotone issue 120)
220
221 Internal
222
223 - The source tree has been reorganized. Sources, tests and
224 documentation now reside in specific directories and many
225 smaller improvements in terms of source code cleanup,
226 developer documentation and general build infrastructure
227 accompany this big change.
228
229 Other
230
231 - Added a new directory extra/, which contains monotone hooks and
232 related scripts that have been shown to work. Most of these get
233 installed, usually somewhere under $(prefix)/share/monotone.
234 Please read extra/README for further information.
235
236 - Added the mtn-cleanup Perl script that returns a workspace to its
237 pristine state with the minimum amount of change. This script is
238 in the extra/bin directory.
239
240
241Sun Oct 31 21:51:16 UTC 2010
242
243 0.99.1 release.
244
245 Bugs fixed
246
247 - monotone crashed on x86_64 when a netsync action required
248 the parsing of an URL. This has been fixed.
249 (closes monotone issue 100)
250
251 - monotone's automation interface version was reported wrongly
252 as 12.1, where it should have been 13.0.
253
254
255Thu Oct 28 21:07:18 UTC 2010
256
257 0.99 release.
258
259 Changes
260
261 - The database scheme was changed; please execute 'mtn db migrate'
262 on all your local and remote databases.
263
264 - Normal and automate sync, push, and pull now take a
265 --dry-run option; no data is transferred, but the connection
266 is made and a summary of what would be transferred is
267 output.
268
269 - The changelog editor format was simplified; user entered text
270 is back at the top of file and the instructions have been reduced.
271 The edited text is saved now even if a commit is canceled.
272
273 - Selectors are much more powerful now and selector functions to
274 calculate common sets of revisions have been introduced.
275 The characters '(', ')', and ';' need to be quoted if mean literally
276 (just like '/') because of this. See section 3.2 in the documentation
277 for details.
278 (fixes monotone bug #18302).
279
280 - The SERVER [BRANCH] call syntax for network-related commands
281 has been deprecated in favour of the existing, universal
282 URI syntax. Additionally, file:// and ssh:// URIs are now
283 parsed for include and exclude patterns just as the native
284 mtn:// URIs.
285
286 The possibility to specify include patterns by using
287 'include=' and exclude patterns by using 'exclude='
288 in the query string has been removed. Patterns are separated
289 by ';' and will be treated as include patterns unless prefixed
290 with '-'. Where you could previously specify
291 'mtn://host/?include=foo,exclude=bar', you would now give
292 'mtn://host/?foo;-bar' instead.
293
294 The URI parser was made a bit more standards compliant and
295 treats the scheme and host in a case insensitive manner.
296 The path and query parts are now automatically URL-decoded.
297
298 We deviate from RFC 3986 however by recognizing the authority
299 part in scheme-less URLs, where the standard would force us
300 to recognize a path instead. For example, for the URL
301
302 'code.monotone.ca/monotone'
303
304 we'd normally parse 'code.monotone.ca/monotone' as path, but our
305 implementation parses 'code.monotone.ca' as authority and
306 '/monotone' as path, so you are not forced to type 'mtn://' on
307 command line, just as you are not forced to type 'http://' in
308 your browser. Monotone's native scheme / protocol 'mtn' is by
309 the way set as default in cases like this.
310
311 The format for the server part of the 'default-server',
312 'known-server', 'server-include' and 'server-exclude'
313 database variables has been changed and now always includes
314 the complete (normalized) URI resource, consisting of the
315 used protocol, user, host, port and path parts. Older entries
316 in existing databases which do not match the new format are
317 preserved and not changed by monotone.
318
319 Please check the manual section 5.3 for more details on the
320 URI syntax.
321
322 - Naturally, the 'clone' command now also accepts mtn:// URIs,
323 though the use of branch globs is forbidden unless a branch is
324 specified separately with the new --branch option.
325
326 To avoid confusion with an existing workspace, clone no longer
327 looks for and loads the options of such a workspace, therefor
328 it now also falls back to the configured default database and
329 no longer to the database used in the workspace if no explicit
330 database is given.
331
332 - Server defaults for netsync operations are now only saved if
333 the exchange was successful. The progress messages which have
334 been issued for this previously have been removed, since they
335 would come up now unexpectedly and would clutter the output of
336 commands such as 'clone', 'automate remote' and
337 'automate remote_stdio'.
338
339 - The following characters have been deprecated in branch names
340
341 ?,;*%+{}[]!^
342
343 as they denote either meta characters in monotone's URI syntax
344 or are used in globs to resolve branch patterns.
345 Furthermore, branch names should no longer start with a dash
346 (-), since this character is used to denote an exclude pattern
347 in the aforementioned URI syntax.
348
349 monotone warns on the creation of branches which violate these
350 restrictions and gives further directions.
351
352 - The 'cert' command can now operate on multiple revisions at once.
353
354 - The command 'db kill_rev_locally' has been renamed to
355 'local kill_revision', and 'db kill_tag_locally' and
356 'db kill_branch_certs_locally' have been replaced with a more
357 flexible command 'local kill_certs'.
358
359 - The 'import' command now keeps the created bookkeeping root if
360 --dry-run is not specified. This makes it possible to re-use
361 the import directory as workspace and is also more closely
362 to what our documentation states, when it says that import
363 is basically "setup with a twist".
364
365 - On Win32 native, the option '--no-format-dates' which disables
366 the localized date format, is now the default for 'commit', since
367 dates are not parseable on Win32 native.
368
369 - The automate commands sync, push, and pull now output information
370 about each transferred revision, cert and key, in basic_io format.
371
372 - monotone no longer passes syntactically correct, but non-existent
373 revision ids through the selector machinery. The most visible
374 place for this change is 'automate select', which no longer
375 echoes every possible 40 hex-byte string.
376
377 - The 'automate genkey' command has been renamed to
378 'automate generate_key'
379
380 New features
381
382 - Options can now be overridden; you can specify '--no-unknown
383 --unknown' on the command line and effectively get back the original
384 state in the application. Similarly, you can specify '--no-unknown'
385 in the 'get_default_command_options' hook and then override that
386 with '--unknown' on the command line.
387
388 - New global options:
389 --no-ignore-suspend-certs undo previous --ignore-suspend-certs
390 --use-default-key undo previous --key
391 --allow-default-confdir undo previous --no-default-confdir
392 --allow-workspace undo previous --no-workspace
393 --interactive undo previous --non-interactive
394 --no-standard-rcfiles replaces --norc
395 --standard-rcfiles undo previous --no-standard-rcfiles
396 --no-builtin-rcfile replaces --nostd
397 --builtin-rcfile undo previous --no-builtin-rcfile
398 --clear-rcfiles undo previous --rcfile
399 --verbose [-v] increase verbosity (opposite of --quiet)
400
401 - Global options now hidden:
402 --roster-cache-performance-log
403
404 - New command options:
405 add
406 --no-recursive undo previous --recursive
407 --respect-ignore undo previous --no-respect-ignore
408 --no-unknown undo previous --unknown
409 bisect *, checkout, pivot_root, pluck, update, automate update
410 --no-move-conflicting-paths undo previous --move-conflicting-paths
411 diff
412 --without-header undo previous --with-header
413 --show-encloser undo previous --no-show-encloser
414 disapprove, suspend
415 --no-update undo previous --update
416 drop
417 --no-recursive undo previous --recursive
418 explicit_merge, merge, merge_into_dir propagate
419 --no-resolve-conflicts undo previous --resolve-conflicts
420 --no-update undo previous --update
421 log
422 --no-brief undo previous --brief
423 --no-diffs undo previous --diffs
424 --clear-from undo previous --from
425 --files undo previous --no-files
426 --graph undo previous --no-graph
427 --merges undo previous --no-merges
428 --clear-to undo previous --to
429 import
430 --no-dry-run undo previous --dry-run
431 --respect-ignore undo previous --no-respect-ignore
432 mkdir
433 --respect-ignore undo previous --no-respect-ignore
434 serve
435 --no-pid-file undo previous --pid-file
436 sync, pull, push, automate remote_stdio, automate remote
437 automate pull, automate push, automate sync
438 --no-set-default undo previous --set-default
439 sync, pull, push, automate pull, automate push, automate sync
440 --dry-run just report what would be sent/received
441 automate inventory
442 --corresponding-renames undo previous --no-corresponding-renames
443 --ignored undo previous --no-ignored
444 --unchanged undo previous --no-unchanged
445 --unknown undo previous --no-unknown
446 automate content_diff
447 --without-header undo previous --with-header
448 automate show_conflicts
449 --no-ignore-suspend-certs undo previous --ignore-suspend-certs
450 automate log
451 --clear-from undo previous --from
452 --merges undo previous --no-merges
453 --clear-to undo previous --to
454
455 - Command options now hidden:
456 (several commands) --no-prefix
457 serve --stdio --no-transport-auth
458 (all netsync/remote commands) --min-netsync-version --max-netsync-version
459
460 - Deprecated options:
461 --norc use --no-standard-rcfiles
462 --nostd use --no-builtin-rcfile
463 --reallyquiet use --quiet --quiet
464 --debug use --verbose
465
466 - To aid command line typing, partial option names are tried to
467 be expanded; if the expansion leads to multiple possibilities,
468 all matches and an accompanying short description of the
469 particular expansion are displayed.
470
471 Two types of expansions are available: simple prefix matching
472 and word abbreviation matching. Single-word options like '--update'
473 are easier to expand from prefixes, as they're unique after a few
474 characters, in this example '--up' already matches.
475
476 Multi-word options like for example '--ignore-suspend-certs' might
477 collide however with single-worded ones and are best expanded from
478 abbreviations, in this case '--isc'.
479
480 - The 'disapprove' command now accepts a revision range in
481 addition to a single revision.
482
483 - A new 'manpage' command has been added which dumps the monotone
484 command help including all global and command specific options in
485 standard troff format. If this command is used interactively, its
486 output is automatically processed through nroff and less, in case
487 both are available on your system. If not, you can change the default
488 command by overwriting the 'get_man_page_formatter_command' hook.
489
490 The 'manpage' command is also used to create a static version of
491 mtn(1) which is now installed with the rest of monotone's docs.
492
493 - New 'k:' selector type to query revisions where at least one
494 certificate was signed with the given key.
495
496 - New automate command 'log' which behaves identical to the
497 normal 'log' command, except that it only outputs the
498 revision ids.
499
500 - New automate command 'checkout' which works just as its
501 non-automate counterpart.
502
503 - Monotone now tracks file size information (hence the previously
504 mentioned schema change).
505 File sizes are currently only queryable via the automation
506 interface, directly for specific files via 'get_file_size' or
507 as part of the extended manifest (see below), but these
508 information may become visible as part of the user UI later on
509 as well.
510
511 - New automate command 'get_extended_manifest_of', which prints
512 a beefed-up manifest format with file size and extensive marking
513 information. This can be used to easily determine when specific
514 nodes have been changed or moved at last.
515
516 - New automate commands 'put_public_key', 'get_public_key' and
517 'drop_public_key'. (closes monotone bug #30345)
518
519 Bugs fixed
520
521 - The 'mv' command now warns when a source is being renamed onto
522 itself or one of its children (fixes monotone bug #29484).
523
524 - The 'mv' command now also handles this usage properly, where
525 'foo' is a directory:
526
527 $ mv foo bar
528 $ mtn mv --bookkeep-only foo bar
529
530 - monotone no longer asks to pick a branch from a set of branches
531 of a revision in which all but one branch have been suspended
532 (fixes monotone bug #29843)
533
534 - The annotate command no longer fails if it should print out
535 empty or untrusted date cert values
536 (fixes monotone bug #30150)
537
538 - monotone now tries harder to find the cancel hint in a commit
539 message and only aborts if it can't find it anywhere
540 (fixes monotone bug #30215)
541
542 - The import command no longer warns about not being able
543 to write out _MTN/options on --dry-run
544 (fixes monotone bug #30225)
545
546 - 'automate remote' and 'automate remote_stdio' can now be used
547 without transport authentication (e.g. on file:// or ssh://
548 transports) as well as anonymously over netsync
549 (fixes monotone bug #30237)
550
551 - monotone does no longer warn about missing implicit includes
552 when dealing with restricted file sets
553 (fixes monotone bug #30291)
554
555 - The 'passphrase' and 'dropkey' commands now handle private keys
556 in old-style key files (without the hash part in the file name)
557 properly.
558 monotone also makes it very sure now that the key file of a
559 private key which is about to be deleted really and only
560 contains the key which should be deleted and nothing else
561 (fixes monotone bug #30376)
562
563 - monotone no longer throws an unrecoverable error if a public or
564 private key is addressed with some non-existing key id
565 (fixes monotone bug #30462)
566
567 - A globish that contains a bracket pair with an empty sub-pattern
568 such as "{,.foo}", "{.foo,}" or even "{.foo,,.bar}" now correctly
569 expands the empty target, so e.g. the branch pattern
570
571 "net.venge.monotone{,.*}"
572
573 now matches "net.venge.monotone" and "net.venge.monotone.*"
574 as expected. (fixes monotone bug #30655)
575
576 - A regression in 0.48 made a path-restricted 'mtn log' show
577 revisions, in which not the picked path(s), but one of its parents
578 were changed. This has been fixed.
579
580 - 'mtn trusted' will no longer accept single bogus revision ids,
581 but instead validates if the given revision really exists in the
582 current database.
583
584 - 'mtn read' (and also 'mtn automate read_packets') now tests public
585 and private key data more thoroughly and aborts if it encounters
586 invalid data.
587
588 - 'mtn conflicts store' now gives a proper error message when
589 run outside a workspace (fixes monotone bug #30473)
590
591 - monotone did not properly parse URIs which missed a scheme or
592 which did not mark the start of the authority with a double slash.
593 This has been fixed.
594 (fixes monotone issue 94)
595
596
597Thu Oct 21 23:45:45 UTC 2010
598
599 0.48.1 bugfix release.
600
601 Security related changes:
602
603 - Running "mtn ''" or "mtn ls ''" doesn't cause an internal
604 error anymore. In monotone 0.48 and earlier this behavior
605 could be used to crash a server remotely (but only if it was
606 configured to allow execution of remote commands).
607
608 Therefore everyone running such a server should update as
609 soon as possible.
610
611 Other changes:
612
613 - The --no-format-dates option is now set per default on Win32
614 for the commit command, because there's no date parsing
615 method in the Win32 API. In the changelog editor dates are
616 thus showed and (expected to be entered) in monotone's
617 internal datetime format (YYYY-MM-DDTHH:MM:SS).
618
619 - Using mtn:// style URIs for netsync operations didn't work
620 with 0.48 on systems which only have a 'monotone' entry in
621 /etc/services. Failing to find a corresponding entry for the
622 schema in a given URI isn't considered fatal now, instead
623 mtn falls back to its default port.
624
625 - Compilation issues on Win32 have been fixed.
626
627
628Sun Jun 13 22:13:53 UTC 2010
629
630 0.48 release.
631
632 Changes
633
634 - Much more information is now passed to the editor when composing a
635 commit message for a new revision. The Author, Date, Branch and
636 Changelog values may now all be changed directly in the editor
637 allowing new branches to be created without using the --branch option.
638 Changes to other lines of this information must not be made or the
639 commit will abort.
640
641 - The edit_comment lua hook now only takes one argument which is the
642 text to be passed to the editor to edit a commit. Existing hooks that
643 override the default hook will need to be changed to work properly.
644
645 - The long date/time format used by 'status', 'commit' and 'log' must
646 be sufficient to preserve a date through a formatting and parsing
647 cycle. The 'status' command now checks for this and warns if the
648 format is unsuitable and 'commit' will refuse to operate with an
649 unsuitable format.
650
651 - The output of the 'status' and 'log' commands has changed to align
652 with the new information displayed by 'commit' so that all three
653 commands display revisions similarly.
654
655 - The 'setup' as well as the 'clone' command check if no managed default
656 database exists and if no database is given either as command line
657 or as workspace option and eventually create a new default database
658 outside of the bookkeeping directory of the new workspace (see below
659 for more information on the new management features).
660
661 - The output of monotone diff has changed to use /dev/null as the source
662 for added files and as the target for deleted files. This is
663 compatible with patch(1) and will cause it to add and delete files
664 where appropriate. As part of this change diff will now include the
665 removed contents of deleted files which were omitted in earlier
666 versions of monotone.
667
668 - Monotone will only warn about bad certs if there are not also matching
669 trusted certs. So if someone commits a bad branch cert, monotone will
670 only warn about that bad cert until someone else approves that
671 revision into the same branch (fixes monotone bug #8033).
672
673 - 'db check' now checks for errors in the branch heads cache,
674 and 'db regenerate_caches' fixes them.
675
676 - The output of the Lua functions print() and io.write() is now
677 redirected to the standard progress message stream of monotone.
678 See chapter 6.3 in the documentation for details.
679
680 New features
681
682 - Monotone has now database management capabilities: If you place your
683 databases in one or more specific locations (defaults to
684 %APPDIR%/monotone/databases on Windows and $HOME/.monotone/databases
685 on Linux, configurable by a hook), it is able to discover these
686 databases and access them only by giving the (base) name of their
687 filename, for example ":my-database.mtn".
688
689 You can also directly create new databases in the first found default
690 location by issuing 'mtn db init -d ":my-database.mtn".
691
692 Some commands, like 'setup' and 'clone' automatically fall back to
693 a default database (":default.mtn", also configurable by a hook) if
694 no database option is explicitely given.
695
696 Additionally, monotone remembers checked out workspaces for every
697 managed database and displays these "known" registered paths together
698 with other information in the new 'list databases' command
699 (closes monotone bug #8916).
700
701 - A set of accompanying management commands - 'register_workspace',
702 'unregister_workspace' and 'cleanup_workspace_list' - to handle moved
703 or removed workspaces for managed databases have been added.
704
705 - Many commands that change the heads of a branch (approve, disapprove,
706 pull, merge, etc) can now take an option "--update". If run from
707 a workspace which is based on a head of the branch and has no local
708 changes, this option makes these commands update that workspace to
709 the new head. If you always want this behavior, you can define the
710 get_default_command_options(cmd)
711 hook in your monotonerc (fixes monotone bug #17878).
712
713 - New command 'undrop' which undoes a 'drop' done by mistake
714 (fixes monotone bug #13604).
715
716 - New automation command 'update' which behaves identical to
717 the normal 'update' command.
718
719 - 'ls tags' now outputs the branch name(s) a tagged revision is on.
720 The revision id is shortened to the first ten characters to get some
721 more space for this (fixes monotone bug #12773).
722
723 - Default include and exclude patterns are now remembered per server.
724 This means that you can have for example one server that you sync
725 everything to, and one that you only sync some branches to, and you
726 don't have to worry about forgetting to give the include pattern and
727 accidentally trying to sync everything to the second server.
728
729 - A new Lua extension function change_workspace(directory) has been
730 added. This should be most useful for custom commands which need
731 to work on multiple workspaces from the same monotone instance.
732
733 - There is also the new server_set_listening(bool) Lua extention
734 function available since 0.47, which can be used to let a monotone
735 server exit gracefully instead of having to be killed.
736
737 Bugs fixed
738
739 - A regression in 0.47 prevent successful execution of push / pull /
740 sync over pipes (Debian bug 574512); this has been fixed.
741
742 - A bug in 0.46 and 0.47 could lead to pulls or possibly commits taking
743 approximately forever, if any of the previous branch heads was not a
744 "close" relation of the new head. This has been fixed.
745
746 - Several bugs related to restrictions not including the required parent
747 directories of included files have been fixed. It is now possible to
748 say 'mtn add a/b/c' followed by 'mtn commit a/b/c' and have the commit
749 succeed. See the restrictions section in the manual for more details
750 (fixes monotone bugs #15994, #17499, #20447 and #22044).
751
752 - monotone no longer saves changed options from the command line back
753 to _MTN/options in case the command execution was unsuccessful
754 (fixes monotone bug #22928).
755
756 - When monotone reads packets from files, like f.e. keys in a directory
757 given by the --keydir option, and these files are large and do
758 not contain packet data at all, monotone no longer uses an excessive
759 amount of time and memory to figure this out
760 (fixes monotone bug #28799).
761
762 - The 'log' command no longer crashes if it is executed in a workspace
763 whose parent revision(s) do not exist in the specified database
764 (fixes monotone bug #29677).
765
766 - The 'clone' command no longer removes an existing bookkeeping
767 directory if the target directory "." points to a workspace
768 (fixes monotone bug #29927).
769
770 - The commands in monotone's help output are now sorted alphabetically.
771
772 - monotone on Windows will now have a non-zero exit code when
773 interrupted (^C). This was broken in 0.47 when it was fixed to not
774 throw an exception on being interrupted.
775
776 - In 0.46 and 0.47, monotone could sometimes get confused
777 about which revisions were the heads of a particular branch.
778 This would happen when a new branch cert was added to a
779 revision that was an ancestor of one or more of the current
780 heads of the branch, most commonly during netsync when
781 multiple people had performed identical merges. This is
782 fixed now. 'db check' will identify the problem; if your
783 database currently gives incorrect 'heads' results, or 'mtn
784 bug' on 'merge', you can fix it by running 'mtn db
785 regenerate_caches'.
786
787 - In 0.46, spurious network disconnects could occur when transferring
788 sufficiently large items (files, diffs, revisions). This was fixed
789 in 0.47 but not noted in the release notes at that time
790 (fixes monotone bug #28991).
791
792 - monotone on Windows will now have a non-zero exit code when
793 interrupted (^C). This was broken in 0.47 when it was fixed to not
794 throw an exception on being interrupted.
795
796 - the 'mv' command now warns when a source is being renamed onto
797 itself (fixes monotone bug #29484).
798
799 Other
800
801 - Support for the diffuse merger (http://diffuse.sourceforge.net)
802 has been added.
803
804Sun Mar 14 21:15:06 UTC 2010
805
806 0.47 release.
807
808 Changes
809
810 - The default '<unknown>' author used by the git_export command has
811 changed to 'Unknown <unknown>' and must be changed in existing author
812 map files. The old '<unknown>' author will be rejected by the new
813 validate_git_author lua hook.
814
815 - The 'git_export' command now validates all git author and committer
816 values using a new 'validate_git_author' lua hook before they are
817 written to the output stream. The export will fail if any value is
818 rejected by this hook.
819
820 - The 'git_export' command now calls a new 'unmapped_git_author' lua
821 hook for all git author values not found in the author map file. The
822 default implementation of this hook attempts to produce valid git
823 authors using several default pattern replacements.
824
825 - The 'get_date_format_spec' lua hook now has an additional parameter
826 which hints at the wanted format (f.e. a short date or a long date
827 time). The default implementation now returns '%x' for short and
828 long dates, '%X' for short and long times (currently unused) and
829 '%x %X' for short and long date times.
830
831 - The options '--date-format' and '--no-format-dates' are no longer
832 specific to the 'log' command, but can now be used globally.
833
834 - monotone now prompts only three times for a key password.
835
836 New features
837
838 - Added portuguese translation (thanks to Américo Monteiro)
839
840 Bugs fixed
841
842 - 'passphrase' now allows an empty new password to be given
843 (fixes monotone bug #28809)
844
845 - 'automate remote' and 'automate remote_stdio' no longer
846 require an existing database (fixes monotone bug #28885)
847
848 - monotone no longer throws an exception on Windows if it is
849 interrupted (^C); a couple of other bug have been fixed for this
850 platform as well which generally improve the compatibility.
851
852 - The annotation of 'annotate' is now localized.
853
854 - The various occurrences where a revision is described by its
855 certs now come with proper localized date output.
856
857 - Fix problems with newer Lua versions especially when
858 LUA_COMPAT_VARARG not set.
859
860 Other
861
862 - Roster handling has been sped up significantly, and roster cache
863 performance has been fixed for the case of overly large rosters.
864 This should be mostly noticable when digging through history
865 (especially initial pulls, since those send so many revisions),
866 and be more noticable for projects with larger trees.
867
868 The most significant internal change from this is that rosters and
869 marking_maps are now copy-on-write. A longer overview of the internal
870 changes is at:
871 http://lists.gnu.org/archive/html/monotone-devel/2010-02/msg00043.html
872
873 - Improve the compatibility with newer Botan versions.
874
875Sun Jan 17 21:40:35 UTC 2010
876
877 0.46 release.
878
879 Changes
880
881 - "automate stdio" (and "automate remote_stdio", see below)
882 use separate streams to encode out-of-band information like
883 informational messages, warnings or tickers. A special
884 "header" section has been added to the standard output to
885 identify future stdio version changes. The error codes used
886 in the output of both stdio and remote_stdio, have also
887 slightly changed: errors which are the result of a wrong
888 call (unknown command, invalid options, parsing errors, ...)
889 are returned with code 1, while errors which happened while
890 the actual command executed are returned with code 2. Error
891 codes are no longer echoed with every packet, but only as
892 the payload of the final 'l' ("last") packet.
893
894 Please consult the manual section "mtn automate stdio" for a
895 detailed description of the new format.
896
897 - The 'heads' command should be significantly faster now (not
898 that it was particularly slow before). This probably isn't
899 terribly noticable unless you're in the habit of using "h:*"
900 (heads of all branches) as a selector, it's primarily meant
901 to enable future changes that will depend on fast 'heads'.
902
903 The database schema has been changed, so you will need to
904 run 'mtn db migrate' (preferably after making a backup copy
905 of your db).
906
907 - the 'status' command now includes the current (to be committed)
908 revision number and will indicate when the branch option in
909 _MTN/options has been changed and does not match one of the
910 revision's parent branches.
911
912 - Cert labels in the output of the 'log' command are now
913 localized.
914
915 New features
916
917 - There's a new command "automate remote_stdio" that makes it
918 possible to execute automate commands on a remote server
919 (for example, to permit a single database to be used both
920 for serving netsync connections and for running a viewmtn
921 instance). This requires that the server be running monotone
922 0.46 or later. Access control on the server uses a new lua
923 hook "get_remote_automate_permitted(identity, command_line,
924 options)".
925
926 - There's also a new command "automate remote" that's very much
927 the same, but executes only a single command and does not
928 stdio-encode the output.
929
930 - A new 'bisect' command has been added to allow searching for a
931 specific revision within a range of revisions. This can be useful for
932 locating the exact revision that broke something or removed a
933 particular feature.
934
935 - Three new commands - 'push', 'pull' and 'sync' - have been added
936 to the automation interface. They work just as their non-automate
937 counterparts.
938
939 - The global option '--timestamps' has been added which prefixes
940 the current local timestamp before diagnostic messages such as
941 warnings, progress messages, errors and tickers. For example,
942 this option can be used to log the date and time when clients
943 connect to a monotone server.
944
945 Bugs fixed
946
947 - A regression from 0.45's key migration prevented the proper
948 output of the `committer` field in 'git_export'.
949
950 - 'db info --full' no longer crashes when executed on a database
951 with only one revision.
952
953 - The mtn_automate Lua function which can be used for custom
954 commands now properly handles binary data.
955
956 - `db info` now returns a correct byte count for certs again.
957
958 - If a public key was read in via the `read` or
959 `automate read_packets`, an invariant was triggered if the
960 key was already existing in the database. This has been fixed.
961
962 - `annotate` no longer crashes if the annotated file is empty.
963
964 Other
965
966 - Added the script of the Lua-based contributed Monotone
967 extension command "mtn remote_export" to contrib/command/
968 with which a remote revision can be exported locally without
969 having to fetch all of the history before.
970
971
972Fri Sep 11 20:50:00 UTC 2009
973
974 0.45 release.
975
976 Changes
977
978 - Certs now link to the key that signed them by the key's
979 hash, instead of its name. This should provide some
980 security and usability improvements.
981
982 The database schema has been changed, so you will need to
983 run 'mtn db migrate' (preferably after making a backup copy
984 of your db).
985
986 The netsync protocol version has also changed. However, we
987 found space to implement full protocol version negotiation,
988 so no flag day is needed. If your particular project has a
989 situation where there are multiple keys with the same name,
990 you will receive errors when trying to sync certs signed by
991 those keys to older netsync peers.
992
993 A number of commands have slightly different output now,
994 particularly 'ls certs', 'ls tags', 'automate keys',
995 'automate tags' and 'automate certs'. There is a new Lua
996 hook associated with these changes,
997 'get_local_key_name(identity)', and all Lua hooks that used
998 to take a key name as an argument now instead take a table
999 with several fields.
1000
1001 Commands which previously accepted a key name now also
1002 accept the key's hash or local name, which is a local alias
1003 for equally named keys. 'read-permissions' and
1004 'write-permissions' accept either the key name or the hash.
1005
1006 There is also a new 'db fix_certs' command which fixes wrong
1007 key assignments in migrated databases if you have the correct
1008 key available.
1009
1010 - The 'resolved_user' conflict resolution is no longer
1011 reported by 'automate show_conflicts' for file content
1012 conflicts; 'resolved_user_left' is used instead.
1013
1014 - 'format_version' was removed from 'automate tags' and
1015 'automate get_attributes' which both do not need this
1016 additional versioning information.
1017
1018 New features
1019
1020 - The 'log' command now, by default, converts all dates it
1021 prints to your timezone instead of leaving them in UTC, and
1022 uses a somewhat more friendly format for the dates.
1023
1024 You can customize the date format with the new
1025 "get_date_format_spec" Lua hook, which returns a strftime(3)
1026 format string. You can also override the format for one
1027 command with the new --date-format option, disable date
1028 conversion for one command with --no-format-dates, or
1029 disable it by default by having the above Lua hook return an
1030 empty string.
1031
1032 - The 'diff' and 'automate content_diff' commands take a
1033 '--reverse' option when one revision is specified, to
1034 control the order of the diff with the workspace.
1035
1036 - The 'update', 'checkout', 'pluck', and 'pivot_root' commands
1037 take an option '--move-conflicting-paths', to handle
1038 unversioned files that are blocking the action. The
1039 unversioned files are moved to
1040 _MTN/resolutions/<workspace_path>, so the action can
1041 succeed, and the user can recover the files if necessary.
1042
1043 - Resolution of orphaned file conflicts is now supported by
1044 'merge --resolve-conflicts' and the 'conflicts' commands.
1045
1046 - Duplicate name conflicts now support the 'keep' resolution.
1047
1048 - Monotone now accepts ':memory:' as argument to the --db option
1049 and sets up a memory-only SQLite database.
1050
1051 - 'clone' allows cloning into the current directory when
1052 '.' is given as argument.
1053
1054 Bugs fixed
1055
1056 - Monotone now sanely skips paths with invalid characters
1057 it encounters during 'add' or 'automate inventory'.
1058
1059 - Key names, cert names, and var domains with non-ASCII
1060 characters should work properly now. Previously, they would
1061 be (usually) converted to punycode on input, and not decoded
1062 on output. They will now not be converted to punycode at
1063 all.
1064
1065 - The 'conflict' commands can now handle duplicate name
1066 conflicts for directories.
1067
1068 - 'cvs_import' now properly parses CVS timestamps (again).
1069
1070 - Windows' cmd.exe is recognized as smart terminal and thus
1071 monotone should create more readable output in
1072 netsync operations.
1073
1074
1075Tue May 12 20:44:00 UTC 2009
1076
1077 0.44 release.
1078
1079 Changes
1080
1081 - Private keys no longer have a separate hash from the associated
1082 public key. This changes the hashes output by 'ls keys', and also
1083 changes the format of 'automate keys' and 'automate genkey'.
1084
1085 New features
1086
1087 - New 'w:' selector type for selecting the revision the workspace
1088 is based on.
1089
1090 Bugs fixed
1091
1092 - C++ exceptions in Lua extension functions are now converted into
1093 Lua errors catchable with pcall, instead of causing a crash.
1094
1095 - In 0.43 revert became excessively noisy and would report changes to
1096 all attributes on included files and directories regardless of whether
1097 the attributes had been changed or not. This has been silenced.
1098 Monotone will now specifically report changes to execute permissions
1099 only when they occur.
1100
1101 - In 0.43 monotone would lose execute permissions on all files modified
1102 during an update operation. Execute permissions are now reset on
1103 updated files that have the mtn:execute attribute set to true.
1104
1105 - Invalid revision selectors now cause an immediate error instead of
1106 being dropped from the selection. The old behavior could produce
1107 undesired effects from typoed commands, such as spewing a list of
1108 all revisions in the database.
1109
1110 - If "automate stdio" is in use, invalid selectors are reported via
1111 the automate protocol rather than on stderr.
1112
1113 - "Best-effort" character set conversions now work again; 'mtn log'
1114 will not crash just because there is a change log entry with a
1115 character not representable in your locale. However, if your system
1116 iconv(3) implementation does not support the //TRANSLIT extension,
1117 you may see garbage characters in the above scenario.
1118
1119 Internal
1120
1121 - Various small code changes to make monotone compile under (Open)
1122 Solaris using Sun Studio, and under Windows with Visual C++.
1123
1124 - monotone.spec has been removed from the distribution.
1125
1126
1127Sun Mar 22 22:26:00 UTC 2009
1128
1129 0.43 release.
1130
1131 Changes
1132
1133 - The Monotone source distribution no longer includes copies of
1134 several third-party libraries. This means they must be downloaded
1135 and built separately, before building monotone. See INSTALL for a
1136 complete list of necessary libraries.
1137
1138 This allows monotone's developers to concentrate on monotone
1139 itself, rather than tracking external library updates, which in
1140 practice did not happen. By way of illustration, we were still
1141 shipping sqlite 3.4.1, which is years out of date. This has also
1142 been a long-standing request of various redistributors of binary
1143 packages, who prefer the use of globally shared libraries.
1144
1145 - There is a new db var "database delta-direction", which can have
1146 values "reverse" (default), "forward", and "both". This controls
1147 what kind of deltas are stored for new file versions. Forward
1148 deltas are very fast for netsync, but slow for most other uses.
1149 Set this to "both" (or perhaps "forward" if you're very short on
1150 disk space) on an empty db and pull everything into it, to get a
1151 database which will be much faster for server usage (especially
1152 initial pulls).
1153
1154 - 'mtn help <command_or_group>' or 'mtn <command_or_group> --help' no
1155 longer print global options, thus making the output of specific help
1156 requests more compact. You still see all available global options
1157 by executing 'mtn help' without any arguments.
1158
1159 - 'mtn automate get_current_revision' now returns an empty changeset
1160 instead of an error if a workspace contains no changes.
1161
1162 New features
1163
1164 - A monotone database may be exported in the git fast-import format
1165 using the git_export command. The output from this command may be
1166 piped into git fast-import or other tools supporting this format.
1167
1168 - Additional 'u:' and 'm:' selector types for selecting the revision the
1169 workspace was last updated from and revisions matching specified
1170 message globs in changelog and comment certs.
1171
1172 - Additional '--revision' option for 'mtn log' allows logging of
1173 selected sets of revisions.
1174
1175 - Additional '--full' option for 'mtn db info' to display some
1176 statistic analysis of the date certs in the database.
1177
1178 - Command line options in the EDITOR and/or VISUAL environment
1179 variables are honored; for instance, EDITOR="emacs -nw"
1180 works now. (Debian bug #320565.)
1181
1182 - The `mtn_automate' lua function now correctly parses and sets
1183 options for executed automate commands.
1184
1185 - The 'commit' command accepts a non-empty _MTN/log as the log
1186 message when '--message-file=_MTN/log' is given.
1187
1188 Bugs fixed
1189
1190 - Performance of the log command has been improved significantly.
1191 Previous versions of monotone loaded individual certs by name for each
1192 printed revision and this caused sqlite to not use the correct
1193 index. Now, all certs are loaded for each printed revision once and
1194 individual certs are selected from the full list which allows sqlite
1195 to use the preferred index.
1196
1197 - In 0.42, a netsync writer would attempt to queue up all outgoing
1198 data as soon as it knew what data to send, in a single operation,
1199 without servicing the event loop. If there was a large amount of
1200 data to send, this would cause very long pauses and sometimes
1201 timeouts and dropped connections (for pauses over 10 minutes).
1202 The bug that caused this is fixed, and that operation now has a
1203 safety timer that should prevent it from coming back.
1204
1205 - When the netsync server receives garbage over the network, it
1206 should be much better about only terminating the offending connection
1207 instead of the entire server.
1208
1209 - The log command was missing '--depth' and '--exclude' options used to
1210 restrict revisions printed to those touching specific paths. Log now
1211 allows these options and uses them properly.
1212
1213 - The update command previously did not clear execute permissions from
1214 files that had their associated 'mtn:execute' attribute cleared.
1215
1216 - Several minor problems with workspace attributes have been fixed.
1217 Earlier versions of monotone would reset attributes such as
1218 mtn:execute on all files when any workspace modifying command was
1219 executed. Applying attribute changes to workspace files is now done
1220 much more selectively in the same manner that content and name changes
1221 are applied.
1222
1223 - In certain cases, especially also on FreeBSD and Mac OS X, netsync
1224 called select() even after read() returned 0 bytes to indicate the
1225 end of the file, resulting in a confusing error message. This
1226 is fixed by treating EOF specially and prevent further calls
1227 to select() on the file handle, as recommended by the
1228 select_tut man page.
1229
1230 - If given a filename, `mtn ssh_agent_export' now creates that
1231 file with the correct permissions (i.e. mode 600), creates
1232 directories as necessary, and does not throw an internal
1233 error if creation or writing fails. (You're still on your
1234 own for directory creation and permissions if you take the
1235 key on standard output and redirect it to a file.)
1236
1237 - The `p:' selector now accepts single character revision ids.
1238
1239 - `mtn merge_into_workspace' no longer crashes if one tries to merge
1240 in an ancestor or descendant of a workspace, but gives a helpful
1241 error message.
1242
1243 - Several bugfixes to `mtn automate stdio':
1244
1245 * It now correctly distinguishs between syntax and command errors by
1246 returning error code 1 for the former and error code 2 for the
1247 latter - just as advertised in the documentation.
1248
1249 * The stdio event loop no longer quits if a syntax error occurs, but
1250 rather discards the wrong state and accepts new (valid) commands.
1251
1252 * Option errors haven't been catched properly and thus weren't encoded
1253 in stdio either; this has been fixed as well.
1254
1255 * Global options, which were set or changed by a previously executed
1256 command, weren't properly reset before the next command was issued.
1257 It was f.e. not possible to "unignore" suspended branches for
1258 the `branches' command when `--ignore-suspend-certs' was given in
1259 a previous run. Now only those global options persist between
1260 executed commands which were given to stdio directly.
1261
1262 Internal
1263
1264 - Using 64 bit integer values to represent dates internally. This
1265 has no user visible effect.
1266
1267 - The unit test code has been separated from the main source, thus
1268 building the tests no longer requires a full recompilation. Also,
1269 the number of modules which are linked into unit tester has
1270 decreased tremendously.
1271
1272 - A couple of debug commands have been added to the `database'
1273 command group to aid performance timing. See `mtn help --hidden db'
1274 for a list of available commands.
1275
1276 - Our internal error handling has been overhauled. N() is gone, and E()
1277 takes three arguments instead of 2: E(bool, origin::type, i18n_format).
1278 origin::type is an enum describing the source of the error, eg network,
1279 user, internal. Data types can publically inherit origin_aware (as the
1280 vocab types do) to obtain a public origin::type member named
1281 'made_from'; this can then be supplied to E() when sanity-checking
1282 that data. origin_aware and origin::type are in origin_type.hh.
1283 I() will throw a unrecoverable_failure, and E() will throw either a
1284 unrecoverable_failure or a recoverable_failure depending on the
1285 origin::type provided. informative_failure is gone.
1286
1287
1288Fri Dec 26 22:08:00 UTC 2008
1289
1290 0.42 release.
1291
1292 Changes
1293
1294 - The output of 'automate show_conflicts' has been changed; a
1295 default resolution for file content conflicts and user resolutions
1296 for other conflict types has been added. 'directory_loop_created'
1297 changed to 'directory_loop'.
1298
1299 - The French, Brazilian-Portuguese and Japanese translations were
1300 outdated and thus have been removed from the distribution. In case
1301 you care about them and want them back, drop us a note at
1302 monotone-devel@nongnu.org.
1303
1304 Bugs fixed
1305
1306 - 'mtn db kill_rev_locally' did not update the inodeprint
1307 cache when executed from a workspace on which the
1308 revision's changes where applied.
1309
1310 - Some recent performance issues have been corrected:
1311 * since 0.40, there is much more use of hex encoding/decoding.
1312 These functions have been sped up considerably.
1313 * since 0.40, every command in an 'automate stdio' session
1314 would reinitialize the database. This was rather slow, so
1315 monotone will now keep the database open between commands.
1316
1317 - The Lua-based contributed Monotone extension introduced in
1318 0.38 haven't been added to the tarball; this has been fixed.
1319
1320 - Monotone died if _MTN/options contained an empty / not-existing
1321 'keydir' entry. This has been fixed. Also, invalid options are now
1322 better detected and give a more useful error message.
1323
1324 - Monotone crashed if it was called with more than 2048 command
1325 line arguments. This has been fixed.
1326
1327 - If vim is used as merger, it no longer prompts the user for an
1328 enter key press.
1329
1330 - Decoding errors f.e. through to garbage from the network no longer
1331 results in informative failures, but in warning. This was made
1332 possible by introducing the concept of origin-aware sanity checks.
1333
1334 - Monotone crashed if it was called with nested wildcards such as
1335 'a.{i.{x,y},j}'. This has been fixed.
1336
1337 - The standard implementation of the 'ignore_file' hook now accepts
1338 windows and unix line endings in .mtn-ignore files.
1339
1340 New features
1341
1342 - New 'mtn ls duplicates' command which lets you list
1343 duplicated files in a given revision or the workspace.
1344
1345 - New option --no-workspace, to make monotone ignore any
1346 workspace it might have been run in.
1347
1348 - New command group 'mtn conflicts *'; provides asynchronous
1349 conflict resolutions for merge and propagate.
1350
1351 - New 'automate file_merge' command which runs the internal line
1352 merger on two files from two revisions and outputs the result.
1353
1354 - New 'automate lua' command with which lua functions, like
1355 monotone hooks, can be called over automate. This is particularily
1356 useful to get user defaults, like ignorable files, branch keys and
1357 passwords, which are managed through one or more monotonerc files.
1358
1359 - New 'automate read_packets' command which reads data packets like
1360 public keys similar to 'mtn read'.
1361
1362 - 'merge' and 'propagate' accept user commit messages; the
1363 'merge rev rev' or 'propagate branch branch' message will be
1364 prefixed to the user message. --no-prefix removes the prefix.
1365
1366 Internal
1367
1368 - Update Botan to 1.7.12.
1369
1370
1371Wed Sep 3 21:13:18 UTC 2008
1372
1373 0.41 release.
1374
1375 Changes
1376
1377 - 'mtn clone' now takes a branch argument rather than a branch
1378 option which is more what people expect given the fact that
1379 mtn push/pull/sync do not use a branch option either.
1380
1381 - 'mtn automate inventory' will show the birth revision for
1382 any file that has been committed.
1383
1384 Bugs fixed
1385
1386 - If the options '--db' or '--keydir' were previously
1387 specified for a command which was executed inside a
1388 workspace and one or both option arguments were invalid
1389 (f.e. invalid paths), they were still written to
1390 _MTN/options of the particular workspace. This lead to
1391 errors on any subsequent command which used these
1392 options. This bug is fixed in so far that basic file type
1393 checks are applied on both options, so its no longer
1394 possible to set non-existing paths accidentally or use a
1395 path to a directory as option argument for '--db'.
1396
1397 - If a key clash occurs on a netsync operation, i.e. two
1398 different keys with the same key id are encountered, mtn now
1399 fails cleanly and provides further guidance how to proceed.
1400
1401 - It was previously not possible to clone a branch / database
1402 anonymously; this has been fixed.
1403
1404 - If the client tries to use an unknown key, try to fall back
1405 to anonymous pull instead of failing immediately.
1406
1407 - 'mtn automate identify' was broken in 0.40 when used over
1408 stdio, i.e. the output of the command did not get into the
1409 right output channel; this has been fixed.
1410
1411 - Monotone would produce a warning if executed from the root
1412 directory of a Windows drive; this has been fixed.
1413
1414 - The 'note_commit' hook now returns the new revision id
1415 hex-encoded again - the bug was introduced in 0.40.
1416
1417 New features
1418
1419 - New 'mtn suspend' command which lets you mark certain
1420 revisions and thus whole branches as discontinued
1421 ("suspended") by attaching a special suspend cert to the
1422 revision. All relevant mtn commands (f.e. mtn heads,
1423 mtn ls branches) honor this cert by default. To ignore it,
1424 simply add '--ignore-suspend-certs' to your command line.
1425 Suspended revisions can have children, which are in no
1426 way affected by the cert of their parent, i.e. suspended
1427 development lines or branches can simply be "unsuspended"
1428 by committing to them.
1429 This feature was already added in monotone 0.37, but was
1430 forgotten to be mentioned in NEWS back then.
1431
1432 - New 'get_default_command_options' lua hook which lets you
1433 specify default options for a given, triggered command.
1434 Useful f.e. if you always want to have your 'mtn add'
1435 command executed with '-R' / '--recursive'.
1436
1437 - Add 'automate show_conflicts' command.
1438
1439 - Add 'automate get_workspace_root' command.
1440
1441 - Add Lua hooks 'note_netsync_revision_sent',
1442 'note_netsync_cert_sent' and 'note_netsync_pubkey_sent'.
1443
1444
1445Fri Apr 11 22:50:44 UTC 2008
1446
1447 0.40 release.
1448
1449 Changes
1450
1451 - The vim merger has been improved and now uses diff3 to merge
1452 non-conflict changes automatically before executing vimdiff.
1453
1454 - Values used with the --depth option used to control recursion with
1455 node and path restrictions have changed. Using --depth=0 now means
1456 exactly the specified directories and *not* their children. Using
1457 --depth=1 now means the specified directories and their immediate
1458 children. Previously --depth=0 included children and --depth=1
1459 included grandchildren and it was not possible to exclude children
1460 using --depth. The simple fix for anyone using --depth is to add 1 to
1461 the values they are using.
1462
1463 - Document that ssh: and file: sync transports are not supported on
1464 native Win32.
1465
1466 Bugs fixed
1467
1468 - `commit' now uses keydir specified in _MTN/options
1469
1470 - duplicate name conflicts now show a proper error message, even if
1471 a parent directory got renamed as well. In that case, the error
1472 message now shows both names for the directory and the offending
1473 file name.
1474
1475 New features
1476
1477 - The bare parent selector 'p:' can now be used in a workspace to
1478 query the parent(s) of the workspace' base revision. This is
1479 equivalent to "mtn au select p:`mtn au get_base_workspace_revision`".
1480
1481 - push, pull, and sync can be run with a single argument, which looks
1482 like
1483 mtn://hostname?include_pattern/-exclude_pattern
1484 or
1485 mtn://hostname?include=include_pattern/exclude=exclude_pattern
1486
1487 Internal
1488
1489 - Update Botan to 1.7.4.
1490
1491 - Usage of the internal app_state object has been reduced, objects
1492 are better encapsulated now. The database interface has been
1493 enhanced to ease reduction of locking contention in the future.
1494
1495 - Merged the two indexes on revision_certs into a single one.
1496
1497 - The database schema has been changed so that it now stores
1498 binary SHA1 hashes rather than their hexadecimal encoding,
1499 in most places where these are used. This reduces the
1500 database size and speeds up operations a little.
1501
1502 Users who like to fiddle with the database directly are
1503 advised to use the sqlite functions hex() and quote() to
1504 print columns that store hashes (including IDs), and the
1505 hexadecimal literal notation x'DEADBEEF' to input them.
1506
1507 - Binary SHA1 hashes are also used for most in-memory
1508 processing, avoiding conversions and saving memory.
1509
1510Mon Feb 25 15:55:36 UTC 2008
1511
1512 0.39 release.
1513
1514 Changes
1515
1516 - 'mtn di' is now an alias for 'mtn diff'.
1517
1518 - 'automate db_set' has been renamed to 'automate set_db_variable'.
1519
1520 - 'automate db_get' has been replaced by 'automate get_db_variables'
1521 which returns all database variables similar to 'list vars' in
1522 basic_io format, optionally restricted by domain.
1523
1524 - The REVID argument of 'automate get_revision' is now mandatory;
1525 to retrieve the current workspace revision, use the new command
1526 'automate get_current_revision'
1527
1528 - messages describing conflicts from all of the various merge commands
1529 have been reworked and should be much more informative.
1530
1531 - mtn show_conflicts now outputs much more detailed and descriptive
1532 messages, however it may report content conflicts that will be
1533 resolved automatically by the line merger.
1534
1535 - The internal copy of PCRE has been updated to version 7.6.
1536 If you use the '--with-system-pcre' configure switch, it
1537 will insist on at least this version.
1538
1539 - "emacs" has been removed from the list of dumb terminal types;
1540 tickers should now default to --ticker=count with emacs terminals
1541
1542 - extensive section on merge conflicts and ways to resolve them
1543 added to the manual.
1544
1545 Bugs fixed
1546
1547 - for changes near the beginning of a file, mtn's unified diff
1548 output sometimes contained too many leading context lines.
1549
1550 - the path handling of 'mtn revert' was improved and fixed two bugs:
1551 now a restricted revert on a node "dir1/file1" reverts only the
1552 content changes in "file1", but leaves renames of any of its
1553 ancestor nodes untouched; furthermore, if "dir0/" was renamed to
1554 "dir1" and "dir1/file1" was dropped, mtn now re-creates file1 at the
1555 proper place ("dir1/") and leaves no missing files around because
1556 of the non-existing "dir0/".
1557
1558 - a few changes needed to build with gcc 4.3.
1559
1560 New features
1561
1562 - 'automate drop_db_variables' which drops one database variable
1563 (like the 'unset' command) or all variables within a given domain.
1564
1565 - 'automate inventory' now accepts the options '--no-ignored',
1566 '--no-unknown', '--no-unchanged' and '--no-corresponding-renames'.
1567 Please consult the monotone documentation for more information about
1568 these new options.
1569 In addition, 'automate inventory' no longer recurses into ignored
1570 directories. The typical case of listing files that need attention
1571 now runs at least four times faster.
1572
1573 - 'automate get_current_revision' which outputs the revision text of
1574 changes in the current workspace
1575
1576Wed Dec 12 21:21:15 UTC 2007
1577
1578 0.38 release.
1579
1580 Changes
1581
1582 - mtn log now prints a single dot for a project's root
1583 directory instead of an empty string.
1584
1585 - mtn now warns if changes to a file will be ignored because
1586 the file has been deleted on one side of a merge.
1587
1588 - mtn now errors if your chosen private key doesn't match the public
1589 key of the same name in your database.
1590
1591 - mtn now checks for your key before a merge action takes place to
1592 ensure that any manually merged file isn't lost in an error case
1593
1594 Bugs fixed
1595
1596 - a bug introduced in 0.37 prevented an external merger from being
1597 executed unless the MTN_MERGE environment variable was set
1598
1599 - mtn read successfully reads revision data, and cert packets again
1600
1601 - mtn consistently supports certs with empty values
1602 (fixed 'ls certs' and 'read')
1603
1604 Internal
1605
1606 - Update Botan to 1.7.2.
1607
1608 - Moved the gzip implementation out of the Botan directory.
1609
1610 Other
1611
1612 - Added the scripts of the following Lua-based contributed
1613 Monotone extension commands to contrib/command/:
1614 "mtn base", "mtn fuse", "mtn revision", "mtn conflicts".
1615
1616 - Added a hooks version of the contributed ciabot script,
1617 contrib/ciabot_monotone_hookversion.lua
1618
1619 - The monotone manual is now licensed under the GPL rather than
1620 the GFDL.
1621
1622Fri Oct 25 22:35:33 UTC 2007
1623
1624 0.37 release.
1625
1626 Changes
1627
1628 - mtn db kill_rev_locally now checks for an existing workspace
1629 before the revision is killed and tries to apply the changes
1630 of this particular revision back to the workspace to allow
1631 easy re-committing afterwards
1632
1633 - the "--brief" switch for mtn annotate has been renamed to
1634 "--revs-only" for clarity
1635
1636 - mtn help now lists the commands (and their aliases) available
1637 within a group, so its easier to get an overview which commands
1638 are available at all
1639
1640 - the "MTN_MERGE=diffutils" merger (provided by std_hooks.lua)
1641 was improved. It now accepts a MTN_MERGE_DIFFUTILS environment
1642 variable which can be used to control its behaviour
1643 through comma-separated "key[=value]" entries. Currently
1644 supported entries are "partial" for doing a partial
1645 batch/non-modal 3-way merge conflict "resolution" which uses
1646 embedded content conflict markers and "diff3opts=[...]" and
1647 "sdiffopts=[...]" for passing arbitrary options to the used
1648 "diff3" and "sdiff" tools. When used in combination with "mtn
1649 merge_into_workspace" this way one especially can achieve a
1650 CVS/SVN style non-modal workspace-based merging.
1651
1652 - There is a new revision selector: "p:REV" selects the
1653 parent(s) of revision REV. For example, if a revision has
1654 one parent,
1655
1656 mtn diff -r p:REV -r REV
1657
1658 will show the changes made in that revision.
1659
1660 - Monotone now uses the Perl-Compatible Regular Expression
1661 (PCRE) library for all regular expressions, instead of the
1662 boost::regex library. This means that external Boost
1663 libraries are no longer required to build or use Monotone.
1664 If building from source, you will still need the Boost headers
1665 available somewhere. See INSTALL for details.
1666
1667 PCRE's syntax for regular expressions is a superset of
1668 boost::regex's syntax; it is unlikely that any existing
1669 .mtn-ignore files or other user uses of regexps will break.
1670 The manual now contains detailed documentation of the regexp
1671 syntax, borrowed from PCRE itself.
1672
1673 - the format of "mtn automate inventory" has changed to basic_io.
1674 This fixes a couple of corner cases where the old format
1675 returned wrong information and introduces new capabilities like
1676 restricted output, recognized attribute changes, and more.
1677 For a complete overview on the new format, please take a look
1678 in the appropriate manual section.
1679
1680 Bugs fixed
1681
1682 - mtn automate heads called without a branch argument now properly
1683 returns the head revisions of the workspace's branch if called
1684 over mtn automate stdio
1685
1686 - mtn commit no longer crashes if it creates a revision whose
1687 roster already exists, i.e. was left behind by the command
1688 `mtn db kill_rev_locally REV` (savannah #18990)
1689
1690 Documentation changes
1691
1692 - the documentation of the "--revs-only" (formerly "--brief")
1693 switch for the annotate command didn't match its actual
1694 behavior, this has been fixed
1695
1696 - documentation for the "ssh_agent_add" command was missing
1697 and has been added
1698
1699 Other
1700
1701 - contrib/usher.cc has been removed. Please use the
1702 net.venge.monotone.contrib.usher branch instead.
1703
1704 Internal
1705
1706 - Update SQLite to 3.4.1.
1707
1708 - Update Lua to 5.1.2 plus latest bug fixes.
1709
1710 - Update Botan to 1.5.10.
1711
1712 - Internal use of regular expressions has been almost eliminated.
1713 (Regular expressions are still used for .mtn-ignore and the
1714 --show-encloser feature of mtn diff, and are still available to
1715 Lua hooks.)
1716
1717
1718
1719Fri Aug 3 06:08:36 UTC 2007
1720
1721 0.36 release.
1722
1723 Changes
1724
1725 - The help command is now able to show documentation on subcommands
1726 (such as 'attr set').
1727
1728 - The help command now shows a brief abstract of each command,
1729 instead of only listing their names.
1730
1731 - The command `list changed` now outputs the new path of any
1732 renamed item making it easier to copy and paste these paths
1733 for external program usage.
1734
1735 - `automate attributes` has been renamed to `automate get_attributes`,
1736 also a bug has been fixed there so resurrected attributes are now
1737 properly outputted as "new" and not "changed".
1738
1739 New features
1740
1741 - Two new commands to set and drop attributes over automate:
1742 `automate set_attribute` and `automate drop_attribute`
1743
1744 - There is a new function available to the lua hooks,
1745 'server_request_sync(what, address, include, exclude)', which will
1746 initate a netsync connection to the server at "address", with the
1747 given include and exclude patterns, and will sync, push, or pull,
1748 as given in the "what" argument. If called from a monotone instance
1749 which is not acting as a server, this function will do nothing.
1750
1751 - There is a new hook available,
1752 'get_netsync_key(server, include, exclude)', which is called to
1753 determine which key to use for netsync operations. Note that the
1754 server calls this once at startup with the address it is listening
1755 on, "*", and "" as arguments, rather than for each connection.
1756
1757 Other
1758
1759 - Giving the --confdir argument will automatically set the key store
1760 directory to keys/ under that directory, unless --keydir is also
1761 given. This is a bugfix.
1762
1763 - Fixed a regression in 0.35 that resulted in some databases
1764 becoming significantly larger when storing new revisions. Existing
1765 databases with this problem can be fixed by pulling into a fresh
1766 database using 0.36.
1767
1768 - contrib/lua-mode.el, a Lua mode for GNU emacs.
1769
1770 - contrib/monotone-buildbot-notification.lua, a netsync hook to have a
1771 server notify a buildbot when new changes have arrived. Useful for
1772 anyone who uses a buildbot with monotone as source.
1773
1774 - contrib/monotone-cluster-push.lua, a netsync hook script to have
1775 arriving changes be forwarded to other servers automatically. It
1776 uses the new internal lua function 'server_request_sync'.
1777
1778 - contrib/mtn_makepermissions, a simple script to create
1779 read-permissions and write-permissions from files in the directories
1780 read-permissions.d and write-permissions.d, Debian style.
1781
1782 - contrib/Monotone.pm, a first attempt to write a Perl module to
1783 interface with 'monotone automate stdio'.
1784
1785 - contrib/monotone-import.pl has been removed since monotone now has
1786 an internal import command.
1787
1788 Internal
1789
1790 - Commands are now defined as a tree of commands instead of a
1791 plain list, which allows the help system to look up information
1792 of a command at an level in the tree.
1793
1794 - The command class, the automate class and all the associated
1795 macros have been cleaned up.
1796
1797 - All C++ files now depend on base.hh, which includes the few things
1798 that are used virtually everywhere. 'make distcheck' will check for
1799 the presence of base.hh in all source files and will protest if
1800 it's not there. This is explained further in HACKING.
1801
1802 - Update the internal SQLite to version 3.4.0.
1803
1804 - Updated Visual C building system, which now also builds the test
1805 programs. The script visualc/runtests.bat can be used to run the
1806 tests.
1807
1808 - Monotone can now be built successfully with Boost 1.34. Older
1809 versions of monotone would sometimes seem to work depending on
1810 the compiler used, but would have bugs in path normalization.
1811
1812 - Monotone now requires Boost 1.33 or later.
1813
1814 - The Boost filesystem library is no longer required.
1815
1816 - The Boost unit test system is no longer required.
1817
1818
1819
1820Mon May 7 14:08:44 UTC 2007
1821
1822 0.35 release.
1823
1824 Changes
1825
1826 - 'mkdir --no-respect-ignore PATH' now really skips any
1827 ignore directives from .mtn-ignore or Lua hooks
1828
1829 - Private keys are now stored more safely, using file
1830 permissions.
1831
1832 - The editable log summary (what you get in an editor when
1833 committing without -m) now includes information about which
1834 branch the commit applies to.
1835
1836 - The status command and the editable log summary now show
1837 the same details about the change.
1838
1839 New features
1840
1841 - 'automate identify', an automate version of 'mtn identify'.
1842
1843 - 'automate roots', prints the roots of the revision graph,
1844 i.e. all revisions that have no parents.
1845
1846 Other
1847
1848 - You can't drop the workspace root any more.
1849
1850 Internal
1851
1852 - Update the internal Lua to version 5.1.2.
1853
1854 - Added build files for Mac OS X.
1855
1856 - Update the internal SQLite to version 3.3.17.
1857
1858 - Code cleanup of app_state.
1859
1860
1861
1862Sun Apr 1 08:23:34 UTC 2007
1863
1864 0.34 release.
1865
1866 The internal data format has changed with this release;
1867 migration is straight-forward. To upgrade your databases,
1868 you must run:
1869 $ mtn -d mydb.mtn db migrate
1870 All of these operations are completely lossless, and 0.34
1871 remains compatible with earlier versions all the way back
1872 to 0.26 with regards to netsync.
1873
1874 Changes
1875
1876 - Text is now output at best of the environment's possibilities,
1877 transliterating them or substituting '?' as needed.
1878
1879 - The lua hook get_author() now takes a second argument, a
1880 key identity, in case someone wants to create an author based
1881 on that and not only the branch name.
1882
1883 - The command 'chkeypass' became 'passphrase'.
1884
1885 - The commands 'drop', 'rename' and 'pivot_root' default to
1886 always perform the operation in the file system as well.
1887 They do not accept '--execute' any more, but will instead
1888 take '--bookkeep-only' in case the user only wants to affect
1889 bookkeeping files.
1890
1891 New features
1892
1893 - New hook note_mtn_startup(), which is called when monotone is
1894 started.
1895
1896 - New Lua support function spawn_pipe(), which is used to run
1897 a command and get back its standard input and standard output
1898 file handles as well as the pid.
1899
1900 - Monotone will automatically add a monotone key in a resident
1901 ssh-agent when it's first used, and will then use ssh-agent
1902 for all subsequent signing. Thus, you will only need to give
1903 the password once in one session.
1904 - New command 'ssh_agent_export' to export a monotone key into
1905 an SSH key.
1906 - New command 'ssh_agent_add' to add a monotone key explicitly
1907 to a resident ssh-agent.
1908
1909 - New command 'clone' that combines 'pull' and 'checkout'.
1910
1911 - 'automate put_file' and 'automate put_revision' stores a file
1912 and a revision in the database.
1913
1914 - 'automate cert', an automate version of 'mtn cert'.
1915 - 'automate db_set', an automate version of 'mtn set'.
1916 - 'automate db_get', an automate version of 'mtn ls vars' with
1917 a twist.
1918
1919 Other
1920
1921 - contrib/ciabot_monotone_hookversion.py now uses a real
1922 basic_io parser and thus should send more precise
1923 information to the cia server. Furthermore, it has become
1924 more careful with creating zombies.
1925
1926 - contrib/monotone-log-of-pulled-revs-hook.lua, a lua hook
1927 to display information about incoming revisions.
1928
1929 - contrib/monotone-mirror-postaction-push.sh, a post action
1930 script that should be executed by contrib/monotone-mirror.sh
1931 to automatically push data on to other servers.
1932
1933 - contrib/monotone-mirror.lua, a lua hook that executes
1934 contrib/monotone-mirror.sh after any netsync session is done.
1935
1936 - contrib/monotone-mirror.sh now takes keydir and keyid
1937 configuration and has better protection against overlapping
1938 duplicate runs.
1939
1940 - contrib/monotone.bash_completion now handles signals.
1941
1942 - contrib/monotone.el now includes a commit button.
1943
1944 Internal
1945
1946 - Date and time display has now been reimplemented internally
1947 to avoid Boost more. This means that we have lowered our
1948 dependency from Boost 1.33.0 to 1.32.0.
1949
1950 - Lots of code cleanup.
1951
1952 - The heights cache got an index, making the processing faster.
1953
1954 - Update the internal SQLite to version 3.3.13.
1955
1956 - Algorithm to find uncommon ancestors has been rewritten, so
1957 'pull' and 'regenerate_caches' should be faster.
1958
1959
1960Wed Feb 28 22:02:43 UTC 2007
1961
1962 0.33 release.
1963
1964 The internal data format has changed with this release;
1965 migration is straight-forward. To upgrade your databases,
1966 you must run:
1967 $ mtn -d mydb.mtn db migrate
1968 All of these operations are completely lossless, and 0.33
1969 remains compatible with earlier versions with regards to
1970 netsync.
1971
1972 Changes
1973
1974 - "mtn ls unknown" no longer recurses into unknown directories.
1975
1976 - update will fail rather than clobbering unversioned files
1977 that exist in the workspace.
1978
1979 - update will detect directories with unversioned files before
1980 attempting to drop them and will refuse to run rather than
1981 corrupting the workspace. such unversioned files must be
1982 removed manually.
1983
1984 - the character set and line separator conversion hooks
1985 (get_system_linesep, get_charset_conv and get_linesep_conv)
1986 have been removed. Similar functionality (probably based on
1987 file type attributes) is planned and will be added in a future
1988 release.
1989
1990 - update will switch to the branch of a given revision if it
1991 differs from the current workspace branch.
1992
1993 - add will now accept combinations of --unknown, --recursive and
1994 --no-respect-ignore.
1995
1996 - import now imports unknown directory trees properly.
1997
1998 - use SQLite 3.3.12.
1999
2000 - schema migrator rebuilt and will now properly detect and report
2001 if the database used is created by a newer monotone than the one
2002 currently used.
2003
2004 - removed the man page mtn.1, as it hadn't been updated for a long
2005 time.
2006
2007 New features
2008
2009 - "mtn merge_into_workspace" (still to be documented). This command
2010 will allow you to review and fix up a merge in your workspace
2011 before committing it to the repository. However, the conflict
2012 resolution interface remains the same as that of the 'merge'
2013 command for now (i.e. monotone will invoke your specified merge
2014 tool on all files with conflicts and you must resolve them as they
2015 are presented). Work on in-workspace conflict presentation and
2016 resolution is planned for the future.
2017
2018 - "mtn log" will now print an ASCII revision graph alongside the
2019 usual log text.
2020
2021 Speed improvements
2022
2023 - "mtn annotate file" should run even faster now. it exploits
2024 the fact that we store deltas of rosters. by peeking at
2025 these deltas, it can avoid reconstruction of whole rosters
2026 in many cases.
2027
2028 Other
2029
2030 - contrib/monotone-mirror.sh and
2031 contrib/monotone-mirror-postaction-update.sh, two scripts
2032 to mirror and update directories automatically.
2033
2034 - contrib/monotone-run-script-post-netsync.lua, to automatically
2035 update a directory as soon as new revisions or certs arrive for
2036 a given branch.
2037
2038 - contrib/monotone.bash_completion had some improvemens.
2039
2040 - contrib/monotone.el had some improvements.
2041
2042 Internal
2043
2044 - Internally, the concept of "projects" has been introduced. It
2045 currently doesn't mean anything, but will be used later, with
2046 policy branches and similar.
2047
2048
2049
2050Wed Dec 27 09:57:48 UTC 2006
2051
2052 0.32 release.
2053
2054 Changes
2055
2056 - "mtn serve" no longer takes patterns on the command line.
2057 Use the permissions hooks instead.
2058
2059 - the name of the option that denoted the revision from which
2060 "mtn log" should start logging was renamed from "--revision"
2061 to "--from"
2062
2063 - author selectors no longer have implicit wildcarding
2064
2065 - if you manually add entries to MTN/log while you are
2066 working, in preparation for an eventual commit, you will now
2067 be required to remove a "magic" template line from the file
2068 before the commit will succeed. This, like the test for an
2069 empty log file, helps to prevent accidents.
2070
2071 - the "db regenerate_caches" migration command replaces the
2072 previous "db regenerate_rosters", generalising the task of
2073 rebuilding or generating cached data that may be added
2074 across an upgrade. Like "db migrate", which upgrades the
2075 database schema, this command fills in the data for new
2076 features. In this release, as well as rosters, it also adds
2077 "heights" information used to speed up topology operations.
2078
2079 Speed improvements
2080
2081 - "mtn annotate file" and "mtn log file" are generally much
2082 faster now, dependant on the number of revisions that
2083 changed the file. Both commands as well as "mtn automate
2084 toposort" make use of data called "heights" caching the
2085 topological order of all revisions. In order to create and
2086 use this data, the following must be run once for each db
2087 after upgrading:
2088
2089 $ mtn -d mydb.mtn db regenerate_caches
2090
2091 New features
2092
2093 - "mtn automate content_diff"
2094
2095 - "mtn automate get_file_of" (same as get_file, but expects
2096 a file path and optionally a revision)
2097
2098 - "mtn import" command
2099
2100 - "mtn log --to"
2101
2102 - netsync_note_* hooks are given much more information,
2103 inlcuding a http/smtp/etc style status code
2104
2105 - includedirpattern(dir, fileglob) function for hooks
2106
2107
2108 Bugs fixed
2109
2110 - bug in "automate stdio" that would result in monotone
2111 garbling its input in some circumstances fixed
2112
2113 - "mtn annotate file" and "mtn log file" are generally much
2114 faster now, dependant on the number of revisions that
2115 changed the file. Both commands as well as "mtn automate
2116 toposort" make use of data called "heights" caching the
2117 topological order of all revisions.
2118
2119 - spawn_redirected hook function now understands a blank
2120 filename to mean not to redirect that stream
2121
2122 - "mtn log" is now in proper topological order, also due to
2123 the use of cached "heights" data
2124
2125 - reset options between "automate stdio" commands
2126
2127 - another compile fix for gcc3
2128
2129 - bug in localization code where option strings where not
2130 always properly translated
2131
2132
2133 Other
2134
2135 - botan library upgraded to 1.6.0
2136
2137 - accommodate changes in boost 1.34
2138
2139 - documentation for "mtn automate get_option"
2140
2141 - notes/ directory
2142
2143
2144
2145Sat Nov 11 11:06:44 PST 2006
2146
2147 0.31 release. Code cleanups and bug fixes.
2148
2149 New features:
2150
2151 - If multiple --message (or -m) arguments are passed to
2152 'commit', then they will be concatenated on separate lines.
2153
2154 - The validate_commit_message hook is now told what branch the
2155 commit is on.
2156
2157 Bugs fixed:
2158
2159 - The typo that prevented building with gcc 3.3 has been
2160 fixed.
2161
2162 - Attempting to commit without a signing key available now
2163 fails earlier.
2164
2165 - Command-line option parsing has been redone yet again; this
2166 should fix a number of bugs caused by the use of
2167 boost::program_options. For instance, command line error
2168 messages are now l10nized again, "--depth=asdf" now gives a
2169 sensible error message instead of crashing, and --key= now
2170 works as an alternative to -k "".
2171
2172 - A bug in the new roster caching logic that caused assertion
2173 failures on very large trees has been fixed.
2174
2175 - A rare bug in the "epoch refinement" phase of the netsync
2176 protocol has been fixed.
2177
2178 - Accidental (and undocumented) change to 'automate inventory'
2179 output format reverted; documentation is now correct again.
2180
2181 - Some obscure error conditions with 'pivot_root' fixed.
2182
2183 Many fixes to 'automate stdio':
2184
2185 - IO handling has been rewritten, to remove some
2186 obscure bugs and clean up the code.
2187
2188 - automate commands can now take options (even when used with
2189 'automate stdio').
2190
2191 - The default block size has been increased to 32k (which
2192 should considerably reduce overhead).
2193
2194 - Many automate commands were flushing their output far too
2195 often, causing major slowdowns when used with 'automate
2196 stdio'; this has been fixed.
2197
2198 - Syntax errors now cause 'automate stdio' to exit, rather
2199 than attempting to provide usage information for the calling
2200 program to read.
2201
2202 Other:
2203
2204 - New large-coverage random testsuite for delta reconstruction
2205 path finding algorithm.
2206
2207 - Miscellaneous code cleanups and improved error messages.
2208
2209 - Enhancements to debian packaging.
2210
2211 - New translation to es (Spanish).
2212
2213Sun Sep 17 12:27:08 PDT 2006
2214
2215 0.30 release. Speed improvements, bug fixes, and improved
2216 infrastructure.
2217
2218 Several internal data formats have changed with this release;
2219 migration is straight-forward, but slightly more complicated
2220 than usual:
2221 -- The formats used to store some cached data in the
2222 database have changed. To upgrade your databases, you
2223 must run:
2224 $ mtn -d mydb.mtn db migrate
2225 $ mtn -d mydb.mtn db regenerate_rosters
2226 -- The metadata stored in _MTN in each workspace has been
2227 rearranged slightly. To upgrade your workspaces, you
2228 must run
2229 $ mtn migrate_workspace
2230 in each workspace.
2231 All of these operations are completely lossless, and 0.30
2232 remains compatible with earlier versions with regards to
2233 netsync.
2234
2235 Speed improvements:
2236
2237 - Algorithm used to find branch heads rewritten, to use vastly
2238 less memory and cpu. This not only makes 'mtn heads'
2239 faster, but also 'mtn commit', 'mtn update', and other
2240 commands, which were spending most of their time in this
2241 code.
2242
2243 - The format used in the database to store the roster cache
2244 was rewritten. This makes initial pull approximately twice
2245 as fast, and somewhat improves the speed of restricted log,
2246 annotate, and so on.
2247
2248 - The xdelta algorithm was further optimized.
2249
2250 - A memory leak in Botan was fixed, which was causing
2251 excessive memory and CPU time to be spent during 'mtn
2252 checkout'.
2253
2254 - Monotone has fast-paths for doing character set conversion
2255 when the system it is running on uses plain ASCII. These
2256 fast-paths now know that "646" is another name used for
2257 ASCII, and systems that use this name (like some BSDs) now
2258 benefit from the fast-paths.
2259
2260 - Miscellaneous other improvements.
2261
2262 Workspace format changes:
2263
2264 - It is now possible to write down a multi-parent (merge)
2265 workspace. However, monotone will still refuse to work with
2266 such a workspace, and there is no way to create one. This
2267 change merely sets up infrastructure for further changes.
2268
2269 - _MTN/revision no longer contains only the parent revision
2270 id; if you depended on this in scripts, use 'mtn automate
2271 get_base_revision_id' instead. Also, _MTN/work has been
2272 removed.
2273
2274 UI changes:
2275
2276 - 'mtn status' now includes the branch name and parent
2277 revision id in its output.
2278
2279 - The output of 'mtn annotate' and 'mtn annotate --brief' has
2280 been switched. The more human-readable output is now the
2281 default.
2282
2283 - 'mtn pluck' now gives an error message if the requested
2284 operation would have no effect.
2285
2286 - On command line syntax errors, usage information is now
2287 printed to stderr instead of stdout. (Output requested with
2288 --help still goes to stdout.) This should make it easier to
2289 find bugs in scripts.
2290
2291 Bug fixes:
2292
2293 - While changelog messages have always been defined to UTF-8,
2294 we were not properly converting messages from the user's
2295 locale. This has now been fixed.
2296
2297 - An off-by-one error that caused some operations to abort
2298 with an error message about "cancel_size <
2299 pending_writes_size" has been fixed.
2300
2301 - In 0.29, --help output was not localized. This has been
2302 fixed.
2303
2304 - In 0.29, setting merger = "emacs" would not work unless
2305 EDITOR was also set to "emacs" (and similar for vi). This
2306 has been fixed.
2307
2308 - A rare invariant violation seen when performing certain
2309 sequences of renames/adds in the workspace has been fixed.
2310
2311 - If a user failed to resolve the conflicts in a text file, we
2312 would continue asking them to resolve conflicts in remaining
2313 files, even though the merge could not succeed. We now exit
2314 immediately on failure.
2315
2316 - Work around some g++ 3.3 brokenness.
2317
2318 Documentation changes:
2319
2320 - Imported *-merge documents into the manual (they still need
2321 to be cleaned up to fit in better).
2322
2323 Changes to automate:
2324
2325 - Bug fix in 'attributes': this command is supposed to list
2326 attributes that were removed from a file in the current
2327 revision; instead, it was listing all attributes that had
2328 ever been removed from that file. Now fixed.
2329
2330 - New command 'get_corresponding_path': given a revision A, a
2331 path P, and a revision B, looks up the file with name P in
2332 revision A, and states what path it had in revision B.
2333
2334 - New command 'get_content_changed': given a revision A and a
2335 path P, gives the ancestor of A in which P was last
2336 modified.
2337
2338 - New command 'get_option': Fetches variables from
2339 _MTN/options (e.g., the current workspace's branch and
2340 database).
2341
2342 - New command 'genkey': an automate-friendly way to generate a
2343 new monotone key.
2344
2345Sun Aug 20 15:58:08 PDT 2006
2346
2347 0.29 release. Code cleanups and bug fixes.
2348
2349 New features:
2350
2351 - The output of 'mtn status' has been changed significantly; the
2352 output formerly used by 'mtn status --brief' has become the
2353 default. For output similar to the old 'mtn status', see
2354 'mtn automate get_revision'.
2355
2356 - It is now significantly easier to control what merger
2357 monotone uses to resolve conflicts; for instance, to use
2358 emacs to resolve conflicts, add:
2359 merger = "emacs"
2360 to your .monotonerc file. To override temporarily, you can
2361 also use the environment variable MTN_MERGE, which takes the
2362 same strings. Currently recognized strings are "kdiff3",
2363 "xxdiff", "opendiff", "tortoisemerge", "emacs", "vim", and
2364 "meld".
2365
2366 - Formerly, monotone's sync-over-ssh support required that an
2367 absolute path be used, with a URL like:
2368 ssh://venge.net/home/njs/my-db.mtn
2369 The following syntaxes are now supported as well:
2370 ssh://venge.net/~/my-db.mtn
2371 ssh://venge.net/~njs/my-db.mtn
2372
2373 Bugs fixed:
2374
2375 - The bug where monotone would sometimes respond to a control-C
2376 (or several other signals) by locking up and refusing to exit,
2377 has been fixed.
2378
2379 - Monotone now properly respects SIGPIPE. In particular, this
2380 means that 'mtn log | less' should now exit promptly when
2381 'less' is exited.
2382
2383 - 'mtn log' now flushes its output after each message; this
2384 makes 'mtn log <FILES>' significantly more usable.
2385
2386 - 'mtn log <FILES>' formerly listed irrelevant revisions (in
2387 particular, any revision which contained a delete of any files
2388 or directories, was always included). This has been fixed.
2389
2390 - If, during an update, two files both had conflicts, which,
2391 when resolved, resulting the two files becoming identical, the
2392 update would error out. This has been fixed.
2393
2394 - If _MTN/log exists and does not end in a newline, we now add a
2395 newline before using the log message. This removes a problem
2396 where the string "MTN:" would end up appended to the last line
2397 of the log message.
2398
2399 - We no longer buffer up an arbitrarily large number of pending
2400 writes in the database. This improves speed and memory usage
2401 for 'commit', and fixes the problem where 'cvs_import' would
2402 run out of memory.
2403
2404 - Monotone's tree walking code (used by 'ls unknown', 'ls
2405 missing', and friends) now uses much less memory, especially
2406 on reiserfs.
2407
2408 Automate changes:
2409
2410 - 'mtn automate stdio' now uses a configurable block size,
2411 controlled by command-line option --automate-stdio-size. This
2412 is mostly useful for testing speed/memory trade-offs.
2413
2414 - 'automate attributes' has a new format, which includes more
2415 information.
2416
2417 Code cleanup:
2418
2419 - We now use boost::program_options to parse command line
2420 options, rather than popt. The only user-visible change
2421 should be that --option="" no longer works as a way to set
2422 some option to the empty string; use --option "". (This
2423 change also removes a lot of orphaned and historically buggy
2424 code from monotone.)
2425
2426 Other:
2427
2428 - zsh completion script significantly revised and updated (see
2429 contrib/monotone.zsh_completion).
2430
2431Sat Jul 22 01:39:51 PDT 2006
2432
2433 0.28 release. Cherrypicking, a new testsuite, and some fixes
2434 and enhancements.
2435
2436 New features:
2437
2438 - Cherrypicking with the new "pluck" command. This takes (a restricted
2439 subset of) the changes in a revision, or between two
2440 revisions, and applies them to your workspace. That this
2441 has happened is not recorded in history; it as if you
2442 happened to make some very similar changes by hand in your
2443 workspace.
2444 - New automate commands, "automate tags" and "automate branches".
2445 - "diff" now knows how to find enclosing function (or
2446 whatever) bodies, just like GNU diff's "-p" option.
2447 -- The regex that defines "enclosing function" can be chosen
2448 on a per-file basis by a hook function; the default hook
2449 knows about LaTeX, Texinfo, and most programming
2450 languages.
2451 -- This is enabled by default; use --no-show-encloser to
2452 disable.
2453
2454 Enhancements:
2455
2456 - When netsync fails due to permission errors, the server returns a
2457 semi-intelligible message before dropping the connection.
2458 - When merging a branch with 3 or more heads, the order in which to
2459 merge the heads will now automatically be chosen to minimize
2460 the amount of repeated work that must be done.
2461 - Crash dumps are now written to $CONFDIR/dump when no workspace is
2462 available
2463 - Path validation routines are faster.
2464 - Inodeprints should be slightly more robust now.
2465 - New hook get_mtn_command, used to determine the path to the
2466 mtn binary on a remote host, when using ssh support.
2467 - "diff" now accepts "-u" and "-c" as short for "--unified"
2468 (the default) and "--context", respectively.
2469
2470 Bug fixes:
2471
2472 - "revert --missing" now works when run in a subdirectory.
2473 - "revert --missing" now works without any additional files
2474 being specified. (You don't have to say "mtn revert
2475 --missing .".)
2476 - Fix an edge case where monotone would crash if there was a
2477 content conflict in a merge for which there was no lca.
2478 - Fix a case where netsync would sometimes hang during refinement.
2479 - "mtn help" and "mtn --help" now exit with return code 0.
2480
2481 Build environment:
2482
2483 - automake 1.9 is now required.
2484 - The testsuite has been rewritten, and should be much faster now. It
2485 also no longer relies on the presence of a *nix userland.
2486 - Add workaround for gcc 4.1.[01] bug causing "multiple
2487 definition" errors.
2488
2489 Internal:
2490
2491 - Restrictions have been split into path_restrictions and
2492 node_restrictions, and generally cleaned up more.
2493
2494Sat Jun 17 14:43:12 PDT 2006
2495
2496 0.27 release. Minor bug fixes and enhancements, plus ssh
2497 support.
2498
2499 Major new features:
2500
2501 - Monotone can now push/pull/synchronize over arbitrary
2502 bidirectional streams, not just raw TCP.
2503 - File-to-file synchronization is enabled out of the box,
2504 e.g.:
2505 $ mtn -d db1.mtn sync file:/path/to/db2.mtn
2506 - SSH synchronization is enabled out of the box, e.g.:
2507 $ mtn -d local.mtn sync ssh://njs@venge.net/home/njs/remote.mtn
2508 Note that this requires mtn be installed on the remote
2509 computer, and locks the remote database while running; it
2510 is not ideal for groups accessing a shared database.
2511 - New protocols can be defined with Lua hooks -- for
2512 example, someone could in principle make "$ mtn sync
2513 xmpp://njs@jabber.org" do something interesting.
2514 - See section "Other Transports" under "Advanced Uses" in the
2515 for more details.
2516
2517 Minor new features:
2518
2519 - Selectors now support escaping, e.g., b:foo\/bar can be used
2520 to refer to a branch with name "foo/bar" (normally / is a
2521 metacharacter that separates multiple selectors).
2522 - Visual C++ can now build monotone on Windows. (Mostly
2523 important because it allows better Windows debugging.)
2524 - --quiet now turns tickers off, and does not turn warnings
2525 off. New option --reallyquiet disables warnings as well.
2526 - New command 'automate common_ancestors'.
2527 - 'ls branches' now takes a pattern, e.g.:
2528 $ mtn ls branches "*contrib*"
2529
2530 Speed improvements:
2531
2532 - Bug in select() loop fixed, server should no longer pause in
2533 processing other clients while busy with one, but multiplex
2534 fairly.
2535 - The database has a new write buffer which gives significant
2536 speed improvements in initial pulls by cancelling redundant
2537 database writes.
2538 - There's been a fair bit of performance tuning all around.
2539
2540 Bug fixes:
2541
2542 - Merge tools that exit in failure are now detected.
2543 - Better reporting of operating system errors on Win32.
2544 - Passphrases stored in ~/.monotonerc are no longer written to
2545 the log file. (Passphrases entered at the terminal were
2546 never written to the log file.)
2547 - Fix sql injection bugs in selectors, making it safe to
2548 expose slectors in web interfaces etc.
2549 - Files marked with the mtn:execute attr now respect umask.
2550 - 'automate' commands on Win32 now disable newline translation
2551 on their output; this is especially important for 'automate
2552 stdio'.
2553 - 'db check' now calls the sqlite "PRAGMA integrity_check", to
2554 validate the integrity of things like sqlite indices.
2555 - 'mtn annotate nonexistent-file' now gives a proper error
2556 message, instead of an assertion error.
2557 - 'mtn revert --missing' now works correctly when run in a
2558 subdirectory.
2559 - 'automate inventory' no longer fails when _MTN/work contains
2560 patch stanzas.
2561
2562 Other:
2563
2564 - Many, many internal code cleanups
2565 - Including changes to somewhat reduce the size of the
2566 binary
2567 - New tutorial on using packets added to the manual
2568 - Updated translations, improved error messages, etc.
2569
2570 Reliability considerations:
2571
2572 - In the two months since 0.26 was released, zero serious bugs
2573 have been reported in the new code.
2574
2575Sat Apr 8 19:33:35 PDT 2006
2576
2577 0.26 release. Major enhancements and internal rewrites.
2578 Please read these notes carefully, as significant changes are
2579 described. In particular, you _cannot_ upgrade to 0.26
2580 without some attention to the migration, especially if you are
2581 working on a project with other people. See UPGRADE for
2582 details of this procedure.
2583
2584 The changes are large enough that there were 3 pre-releases of
2585 this code; the changes that occurred in each can be seen
2586 below. However, for the convenience of those following
2587 releases, all changes since 0.25 will be summarized in these
2588 release notes. There is no need to read the pre-release notes
2589 individually.
2590
2591 Major changes since 0.25:
2592
2593 - The most user-visible change is that the default name of the
2594 monotone binary has changed to 'mtn'. So, for example, you
2595 would now run 'mtn checkout', 'mtn diff', 'mtn commit',
2596 etc., instead of 'monotone checkout', 'monotone diff',
2597 'monotone commit'.
2598 - Similarly, the name of the workspace bookkeeping directory
2599 has changed from "MT" to "_MTN". As workspaces will
2600 generally be recreated when migrating to this release,
2601 this should not cause any problems.
2602 - Similarly, built-in attrs like 'execute' have had 'mtn:'
2603 prepended to their names. For example, executable files
2604 should now have the attr 'mtn:execute' set to 'true' on
2605 them. The migration code will automatically add this
2606 prefix; no user intervention is needed.
2607 - Similarly, the name of the ignore file has changed from
2608 '.mt-ignore' to '.mtn-ignore'. The migration code will
2609 automatically rename this file; no user intervention is
2610 needed.
2611 - Similarly, the recommended suffix for monotone db files is
2612 now '.mtn'.
2613 These changes are all purely cosmetic, and have no affect on
2614 functionality.
2615
2616 - The most developer-visible change is that the data
2617 structure for representing trees has been completely
2618 replaced, and all related code rewritten. The new data
2619 structure is called a 'roster'. You don't really need to
2620 know this name; unless you are hacking on monotone or using
2621 various debug operations, you will never see a roster.
2622 It's mostly useful to know that when someone says something
2623 about 'roster-enabled monotone' or the like, they're
2624 referring to this body of new code.
2625
2626 This change has a number of consequences:
2627 - The textual format for revisions and manifests changed.
2628 There is no conceptual change, they still contain the same
2629 information and work the same way. The formats were
2630 merely cleaned up to correct various problems experience
2631 showed us, and allow various enhancements now and in the
2632 future. However, this change means that a flag-day
2633 migration is required. See UPGRADE for details.
2634 - Directories are now first-class objects. You can add an
2635 empty directory, must drop a directory if you want it to
2636 go away, etc.
2637 - Attrs are now first-class objects. '.mt-attrs' no longer
2638 exists; attrs are now described directly in the manifest,
2639 and changes to them appear directly in revisions. The
2640 migration code will automatically convert existing
2641 .mt-attrs files to the new first-class attrs. If you have
2642 custom attrs, those may require special handling -- if
2643 this is the case, then the upgrader will tell you.
2644 - The merge code has been rewritten completely. The
2645 interface is currently the same (though this rewrite makes
2646 it easier to improve the interface going forward); if you
2647 have found merging in monotone to be easy in the past,
2648 then you will not notice anything different. If you have
2649 run into problems, then the new merger should make your
2650 life substantially simpler. It has full support for
2651 renames (of both directories and files), intelligent
2652 merging of attrs, improved handling of file content
2653 merges. Is the first known merger implementation based on
2654 a provably correct algorithm (the "multi-*-merge"
2655 algorithm), has exhaustive automated tests, and generally
2656 should give accurate, conservative merges.
2657 - The new code is generally faster, though not yet as
2658 fast as it could be.
2659
2660 Netsync changes:
2661
2662 - The default netsync port has changed 5253 to 4691. 4691 is
2663 our official IANA-assigned port. Please adjust firewalls
2664 appropriately.
2665
2666 - Netsync code has also been largely reworked; new code should
2667 provide better opportunities for optimizations going
2668 forward.
2669
2670 - The protocol is incompatible with earlier versions of
2671 monotone. This should not be a surprise, since the data it
2672 carries is also incompatible (see above)...
2673
2674 New features:
2675
2676 - New option --brief to 'annotate', gives somewhat more
2677 friendly output.
2678
2679 - Several enhancements to log:
2680 - New option --next, to display descendent revisions
2681 (rather than ancestor revisions).
2682 - When 'log -r' is given an ambiguous selector, it now just
2683 logs all matching revisions, instead of requiring the
2684 selector be disambiguated.
2685 - New option --no-files.
2686
2687 - New command 'show_conflicts', performs a dry run merge.
2688
2689 - New command 'ls changed'.
2690
2691 - 'rename' (and its alias 'mv') now accept a broader range of
2692 syntax:
2693 mtn rename foo some_dir
2694 -> renames foo to some_dir/foo
2695 mtn rename foo bar baz some_dir
2696 -> moves foo, bar, and baz to some_dir/foo,
2697 some_dir/bar, and some_dir/baz
2698
2699 - New hook 'validate_commit_message', which may be used to
2700 verify that all commit messages meet arbitrary user-defined
2701 rules.
2702
2703 - New option --log, to log monotone's output to a file.
2704
2705 - New option 'drop --recursive', to remove a directory and its
2706 contents in one swoop.
2707
2708 - The root dir may now be renamed. This is a somewhat exotic
2709 feature, but has some interesting uses related to splitting
2710 up or joining together projects; see new commands
2711 'pivot_root', 'merge_into_dir'.
2712
2713 Minor bug fixes:
2714
2715 - 'serve' with no --bind argument should now work on systems
2716 where the C library has IPv6 support, but the kernel does
2717 not.
2718
2719 - Stricter checking on the internal version of filenames to
2720 ensure that they are valid UTF-8.
2721
2722 - If the database is in the workspace, then it is always
2723 ignored.
2724
2725 - Monotone no longer errors out when using a French (fr)
2726 locale with a non-Unicode codeset.
2727
2728 Other changes:
2729
2730 - Packet commands ('rdata', 'fdata', etc.) have been moved to
2731 'automate'.
2732
2733 - Database storage now uses sqlite's blob support; database
2734 files should be ~1/4 smaller as a result.
2735
2736 - Monotone now uses sqlite 3.3; this means that older versions
2737 of the command line client (e.g., an 'sqlite3' command built
2738 against sqlite version 3.2) cannot be used to poke at a
2739 monotone 0.26 database. Solution is to upgrade your sqlite3
2740 program. Hopefully this is irrelevant to most users...
2741
2742 - Translations updated, and 3 new translations added (de, it,
2743 sv).
2744
2745 Reliability considerations:
2746
2747 - This new codebase has received much less testing under real
2748 world conditions than the codebase used in 0.25, simply
2749 because it is newer. It has been in active use for monotone
2750 development since 8 January 2006, and only a small number of
2751 bugs have been found; all bugs found so far have been very
2752 minor, and none stood any danger of corrupting data.
2753 Furthermore, we are much more confident in the theoretical
2754 underpinnings of the new approach than the old, and the test
2755 suite attempts to exhaustively exercise all new code paths.
2756
2757 However, none of this is or can be a substitute for real
2758 world experience. We advise caution in upgrading to this
2759 version of monotone, and suggest that (especially) those who
2760 upgrade aggressively should pay extra attention to the
2761 monotone mailing list before and after doing so.
2762
2763Wed Mar 29 05:20:10 PST 2006
2764
2765 0.26pre3 release. This release may be considered a "release
2766 candidate", in that while we need to write some tests and make
2767 sure some bugs are fixed, all features are in and we hope that
2768 no further bug fixes will be needed either. It is still a
2769 pre-release for testing. Do not package it. DO NOT USE THIS
2770 RELEASE UNLESS YOU WANT TO BE A DAREDEVIL.
2771
2772 But, PLEASE PLEASE TEST this release. There are some
2773 non-trivial changes since 0.26pre2, and this is your last
2774 chance!
2775
2776 Major changes since 0.26pre2:
2777
2778 - The name of the monotone binary has changed to 'mtn'.
2779 - Similarly, the name of the bookkeeping directory in
2780 workspaces has changed from 'MT' to '_MTN' (if you have an
2781 existing 0.26-line workspace, just rename the MT directory
2782 to _MTN).
2783 - Similarly, the name of the ignore file has changed from
2784 ".mt-ignore" to ".mtn-ignore". 'rosterify' will rename
2785 these automatically (if you have already rosterified, you
2786 get to rename them by hand).
2787 - Similarly, the recommended suffix for monotone db files is
2788 now ".mtn".
2789
2790 - We now perform stricter checking to make sure that filenames
2791 are valid UTF-8. It is in principle possible that this
2792 stricter checking will cause histories that used to work to
2793 break; if you have non-ascii filenames, it is strongly
2794 recommended to test with this release.
2795
2796 - Root dir renaming is now supported. See new commands
2797 'pivot_root', 'merge_into_dir'.
2798 - As a side-effect, it is now possible to run 'rosterify' on
2799 histories in which two independent lines of history were
2800 merged.
2801
2802 - The security fix released in 0.25.2 has been forward-ported
2803 to this release; this prevents some security exposure to
2804 people running monotone as a client on case-insensitive file
2805 systems.
2806
2807 Minor change since 0.26pre2:
2808
2809 - Database now uses sqlite blobs for storage; should be ~1/4
2810 smaller.
2811 - New command: show_conflicts, does a dry-run merge.
2812 - New option 'drop --recursive', to remove a directory and all
2813 its contents in one swoop.
2814 - Changes to 'log':
2815 - New option --no-files
2816 - Including merges is again the default (i.e., it now acts
2817 like 0.25, and not like 0.26pre2).
2818 - When 'log -r' is given an ambiguous selector, it now just
2819 logs all matching revisions, instead of requiring the
2820 selector be disambiguated.
2821 - New option --log, to log monotone output to a file.
2822 - Netsync changes:
2823 - Was sending far too much data in some cases; now does not.
2824 - Several bugs that caused it to lock up fixed
2825 - Tweak to allow 'usher' proxy to transparently redirect
2826 based on client's protocol version, to ease migration
2827 between incompatible protocol versions.
2828 - Packet commands have been moved to 'automate'.
2829 - Fixed bugs in 'db kill_rev_locally', should no longer leave
2830 an inconsistent db behind.
2831 - Translation updates
2832
2833 Other projects receiving notable work:
2834
2835 - Monotone's "dumb server" support (repo distribution over
2836 HTTP/FTP/SFTP etc.) has been ported to 0.26, a first command
2837 line version written, etc.
2838 - The 'usher' netsync proxy used for hosting many databases on
2839 a single machine has received significant cleanups, and the
2840 'webhost' project to provide a simple interface to shared
2841 monotone hosting providers has received even more work.
2842
2843Sat Feb 11 13:32:51 PST 2006
2844
2845 0.26pre2 release. Inching towards 0.26. If you are using
2846 0.25 or earlier, then make sure to read the very important
2847 notes for 0.26pre1, below. In particular, like 0.26pre1, this
2848 is a pre-release for testing. Do not package it. DO NOT USE
2849 THIS RELEASE UNLESS YOU WANT TO BE A DAREDEVIL.
2850
2851 (Though, in fact, in a month of usage, only one bug has been
2852 found in the new history code, and it was both minor and
2853 harmless. It has additionally been fixed.)
2854
2855 Database changes:
2856
2857 - SQLite 3.3.3 has been imported. 3.3 introduces a new database
2858 format that is not backwards compatible with earlier 3.x releases.
2859 New databases will be created using this new format. Existing
2860 databases remain compatible, and are not converted automatically.
2861 Existing databases can be converted by performing a database
2862 vacuum ('monotone db execute vacuum').
2863
2864 New features:
2865
2866 - New hook validate_commit_message -- use to verify that all
2867 commit messages meet arbitrary user-defined rules.
2868
2869 UI improvements:
2870
2871 - rename (and mv) commands now accept a broader range of
2872 syntax:
2873 monotone rename foo some_dir
2874 -> renames foo to some_dir/foo
2875 monotone rename foo bar baz some_dir
2876 -> moves foo, bar, and baz to some_dir/foo,
2877 some_dir/bar, and some_dir/baz
2878 - Print a warning if it looks like a user has made a quoting
2879 mistake on push/pull/sync/serve (windows cmd.exe has
2880 confusing rules here).
2881 - New command "ls changed".
2882 - New option "--next" to log, which displays descendents of
2883 the start revision.
2884 - Updating to an arbitrary revision now works again (as it did
2885 in 0.25 and earlier). This allows one to, for instance,
2886 switch a working copy to another head, or back up to an
2887 earlier version, while preserving uncommitted changes.
2888 - New option --brief to annotate, gives somewhat more friendly
2889 output.
2890 - Fixed bug that made ticker output from netsync inaccurate.
2891 - In 'log', --no-merges is now the default, use --merges to
2892 override.
2893 - If the database is in the working copy, then it is always
2894 ignored.
2895
2896 Bugs:
2897
2898 - 'serve' with no --bind should now work on systems where the
2899 C library has IPv6 support, but the kernel does not.
2900 - Compile fixes for GCC 4.1 pre-releases.
2901
2902 Other:
2903 - Better detection when users have not run "rosterify", and
2904 more helpful suggestions on what to do in this case.
2905 - Documentation, translation, error message,
2906 etc. improvements.
2907 - Updates to contrib/mtbrowse.sh, simple shell-based monotone
2908 interface.
2909 - Updates to many other contrib/ files, mostly to maintain
2910 compatibility with monotone changes.
2911
2912Sun Jan 8 01:08:56 PST 2006
2913
2914 0.26pre1 release. Massive rewrites, released for shakedown.
2915 This release is also dedicated to Shweta Narayan.
2916
2917 This release includes massive changes compared to 0.25. The
2918 core versioning code has all been replaced with a completely
2919 different mechanism. Data formats and the netsync protocol
2920 have changed in incompatible ways.
2921
2922 Migration to 0.26pre1 or later is irreversible and requires a
2923 flag day for your project. See UPGRADE for details. Note
2924 that we DO NOT recommend upgrading at this time; see below.
2925
2926 If you have been following the development list for the last
2927 few months, you may have heard about "rosters" -- this is the
2928 name for the new core data structure we use. While the code
2929 is completely different, the user experience should not be
2930 very different. You will never see a roster, unless you are
2931 debugging monotone itself; everything still revolves around
2932 revisions, manifests, and certs.
2933
2934 While this new code has extensive tests, because of these
2935 incompatibilities, it has never been used for real work. The
2936 purpose of this release is to make a version available for the
2937 monotone developers to begin using for day-to-day work, to
2938 shake out bugs.
2939
2940 Let's say that again in caps: THIS CODE IS PROBABLY BUGGY, DO
2941 NOT USE IT IN PRODUCTION UNLESS YOU WANT TO BE A DAREDEVIL.
2942
2943 However, testing of this version with real databases is a good
2944 idea, and we'd very much appreciate hearing about your
2945 experiences.
2946
2947 Some of the many changes:
2948 - New textual format for revisions and manifests; they remain
2949 conceptually the same, but have been tweaked. Manifests
2950 now use the same "basic_io" format as everything else in
2951 monotone, and contain entries for directories, revisions
2952 record file adds slightly differently and record directory
2953 adds for the first time, etc. Because of this format
2954 change, revision hashes are now different; converting
2955 rosters requires a full history rebuild and reissue of certs.
2956 - Directories are now first class. To get rid of a directory
2957 you must remove it; to create a directory, you must add it.
2958 You can add an empty directory.
2959 - Attrs are now first class. The .mt-attrs file is gone;
2960 attributes are now stored directly in the manifest.
2961 - New merge algorithm, based on "multi-*-merge", and more
2962 aggressive, less buggy merge ancestor selection code
2963 - Netsync's core has been largely rewritten. Code is now much
2964 clearer and more reliable, and now includes the ability to
2965 resume interrupted partial transfers. The netsync protocol
2966 version number has been bumped, and netsync now runs on the
2967 IANA-assigned port 4691 by default.
2968 - 100% fewer change_set.cc related bugs. 100% more roster.cc
2969 related bugs. But the idea of touching roster.cc does not
2970 terrify people.
2971
2972Thu Dec 29 23:10:03 PST 2005
2973
2974 0.25 release.
2975
2976 Incompatible command line changes:
2977 - 'monotone revert' now requires an argument. To revert your
2978 entire working copy,
2979 $ monotone revert
2980 no longer works; instead, go to the root of your working
2981 copy and run
2982 $ monotone revert .
2983
2984 New features:
2985 - Netsync now supports IPv6 (where OS support exists)
2986
2987 Bugs fixed:
2988 - 'revert' gives feedback describing what it changes
2989 - Database locking further tweaked, to allow more concurrent
2990 access in situations where this is safe.
2991 - On win32, ticker display was fixed, so that it no longer
2992 prints a new line at each update.
2993 - 'read' can now understand (and migrate) privkey packets
2994 generated by monotone version 0.23 or earlier.
2995 - 'log --diffs <files>' now prints only diffs for the given
2996 files (previously, it would print only revisions in which
2997 the given files changed, but would print all diffs for those
2998 revisions).
2999 - Win9x and WinNT 4 compatibility fixes.
3000
3001 New translations:
3002 - pt_BR
3003
3004Sat Nov 27 22:29:38 PST 2005
3005
3006 0.24 release.
3007
3008 Configuration change (Windows only):
3009 - Configuration directory on Windows has changed. It used to
3010 be some complicated and varying function of %HOME%,
3011 %USERPROFILE%, %HOMEDRIVE%\%HOMEPATH%, whether you were
3012 running in mingw/cygwin, etc. It is now, always,
3013 %APPDATA%\monotone. For instance, if your configuration
3014 file used to be named
3015 ...\Documents and Settings\user\.monotone\monotonerc
3016 it will now be named
3017 ...\Documents and Settings\user\Application Data\monotone\monotonerc
3018 Please rename files appropriately.
3019
3020 Major key management changes:
3021 - Private keys are no longer stored in your database. They
3022 are stored in ~/.monotone/keys/ (Unix, OS X) or
3023 %APPDATA%\monotone\keys\ (Windows). 'db migrate' will
3024 automatically move your keys out of your database and into
3025 their proper location. Consequences:
3026 - 'genkey' no longer requires a database. Simply run it
3027 once when you first start using monotone, even before you
3028 have created a database.
3029 - Running 'genkey' once will suffice to give all databases
3030 on one computer access to your key. No more fiddling with
3031 'read'.
3032 - When you want to make your key available on another
3033 computer, simply copy over the appropriate file from your
3034 'keys' directory to the corresponding directory on the new
3035 computer.
3036 - Private keys also use a more standard on-disk envelope
3037 encoding ("PBE-PKCS5v20(SHA-1,TripleDES/CBC)") instead of
3038 previous ARC4. More secure, and with extra crypto karma.
3039
3040 Netsync changes:
3041 - Command line syntax for 'serve' changed; administrators WILL
3042 have to adjust scripts.
3043 monotone serve my.host.com "*"
3044 becomes
3045 monotone serve --bind=my.host.com "*"
3046 or simply
3047 monotone serve "*"
3048 (to serve on the default port, on all interfaces).
3049 - Speaking of which, we can now bind to all interfaces; run
3050 'serve' without passing --bind, or with passing
3051 --bind=:port, and monotone will listen on all interfaces.
3052 - New option '--key-to-push' for 'push', 'sync', allows
3053 administrator to push a new user's public key into a running
3054 server without restarting it.
3055 - Netsync permission hooks have new defaults that read a
3056 description of allowed access out of a standard,
3057 basic_io-based textfile (the same stanza-based format that
3058 revisions use). Current hooks will continue to work, but
3059 users may prefer to transition to this format; see manual
3060 for details.
3061 - Between these, it is now straightforward to change
3062 permissions and add users without restarting your server.
3063 - Improvements to experimental "usher" facility.
3064
3065 UI improvements:
3066 - New convenience options "add --unknown", "drop --missing",
3067 "revert --missing" do what you'd expect -- add all
3068 non-ignored non-versioned files, drop all
3069 deleted-but-undropped files, and restore all
3070 deleted-but-undropped files, respectively.
3071 - New selector "h:" to select heads of a branch. "h:" means
3072 heads of current branch, "h:mybranch" means heads of
3073 mybranch.
3074 - Similarly, "b:" selector with no argument now refers to
3075 current branch.
3076 - Commit messages now have a blank line at the top so you can
3077 start typing directly.
3078 - No more obscure error messages when multiple monotone
3079 processes attempt to access a single database at the same
3080 time; we now fail early with a more sensible error message.
3081 (Concurrent access has never caused database corruption;
3082 this simply makes the corruption prevention less frustrating
3083 for the user.)
3084 - New handlers for SIGTERM, SIGINT to rollback database
3085 transactions. Not visible to users (unless you're really
3086 looking carefully). (Again, killing monotone has never been
3087 able to cause database corruption; this simply causes the
3088 transactions to be rolled back immediately, rather than the
3089 next time monotone runs, which improves robustness in some
3090 theoretical way.)
3091
3092 Changes in 'automate':
3093 - New command 'automate keys' to get information on existing
3094 keys in basic_io format.
3095
3096 Updated translations:
3097 - fr
3098
3099 Smaller changes:
3100 - Improved handling of multibyte characters in message
3101 displays.
3102 - Fixes to Botan's memory allocator, to avoid pathological
3103 slowdowns in some rare cases.
3104 - Fix bug in delta-storage code; we were not being as aggressive
3105 about delta-compressing files and manifests as we should
3106 have been.
3107 - Minor bugs fixed, error messages improved.
3108
3109 - Upgrading from 0.23: You must run 'db migrate' and
3110 provide your password, for each database.
3111
3112Fri Sep 30 02:50:05 PDT 2005
3113
3114 0.23 release.
3115
3116 Possibly incompatible changes:
3117 - hook_note_commit and hook_note_netsync_revision_received
3118 take a new argument containing the text of the revision that
3119 was received. (Timothy Brownawell <tbrownaw@gmail.com>)
3120 - 'cat FILENAME' now acts like the old 'cat file REV
3121 FILENAME'; use new commands 'automate get_revision',
3122 'automate get_manifest', 'automate get_file' to fetch
3123 objects by hash. (Grahame Bowland <grahame@angrygoats.net>)
3124
3125 General improvements:
3126 - .mt-ignore support (Martin Dvorak
3127 <jezek2@advel.cz>, Timothy Brownawell <tbrownaw@gmail.com>)
3128 - much work on making monotone more i18n friendly (Benoît
3129 Dejean <benoit@placenet.org>, Matt Johnston
3130 <matt@ucc.asn.au>)
3131 - support for more interactive merge tools:
3132 - FileMerge.app (comes with OS X) (Marcel van der Boom
3133 <marcel@hsdev.com>)
3134 - TortoiseMerge (Win32; comes with TortoiseSVN) (Matthew
3135 Gregan <kinetik@orcon.net.nz>)
3136 - rename and drop now actually perform the specified rename or
3137 deletion when the argument --execute is passed. (Richard
3138 Levitte <richard@levitte.org>)
3139 - 'help' command, same as --help (Matt Johnston
3140 <matt@ucc.asn.au>).
3141 - 'usher' support: experimental method for proxying multiple
3142 netsync servers through a single port (similar concept to
3143 vhosts) (Timothy Brownawell <tbrownaw@gmail.com>)
3144 - support long passphrases (Matt Johnston <matt@ucc.asn.au>)
3145 - Faster binary file detection (Eric Anderson
3146 <anderse-monotone@cello.hpl.hp.com>)
3147 - netsync speedups:
3148 - when handling large files (Eric Anderson
3149 <anderse-monotone@cello.hpl.hp.com>)
3150 - when handling many branches (Marcel van der Boom
3151 <marcel@hsdev.com>)
3152 - new system to allow crash logs to contain not just execution
3153 traces, but also dumps of data being handled when the error
3154 was detected -- greatly improves debuggability of user
3155 crashes.
3156 - complete rework of path handling code, for clarity,
3157 robustness, and speed. No user visible changes, except for
3158 the many bugs fixed. (Special thanks to Matthew Gregan
3159 <kinetik@orcon.net.nz> and Grahame Bowland
3160 <grahame@angrygoats.net>.)
3161 - however, if you have non-normalized paths in your history
3162 (symptom: fresh pulls with 0.18 work, but fresh pulls with
3163 0.19 do not), then 0.23 will report an error and refuse to
3164 handle the affected revisions. Since it is believed this
3165 only affects one project, and to conserve core developer
3166 time, implementing a migration was put off for now. If
3167 this causes problems or for more details, please send an
3168 email to monotone-devel@nongnu.org.
3169 - as always, many small bug fixes, speedups, and improved
3170 messages.
3171
3172 New translations:
3173 - fr (Benoît Dejean <benoit@placenet.org>)
3174 - ja (Satoru SATOH <ss@gnome.gr.jp>)
3175
3176 Other new monotone-related projects since 0.22:
3177 - mtsh by Timothy Brownawell:
3178 https://netfiles.uiuc.edu/brownawe/www/mtsh/
3179 GTK+ wrapper for monotone focusing on working copy
3180 operations -- add/drop/revert/rename/commit/update/diff and
3181 browsing. Has a mechanism for per-file commit comments.
3182
3183 - "dumb server" support by Nathaniel Smith (share your
3184 monotone repositories via HTTP/FTP, no netsync daemon
3185 needed):
3186 http://viewmtn.angrygoats.net//branch.psp?branch=net.venge.monotone.dumb
3187 Still needs a command-line frontend to be usable, among
3188 other things. Help wanted. In python.
3189
3190 - m7 by Larry Hastings <larry@hastings.org>
3191 http://www.midwinter.com/~lch/programming/m7/
3192 Experimental drop-in command-line wrapper for monotone.
3193 Uses certs to add local incrementing version numbers, and an
3194 enhanced annotate front-end.
3195
3196Mon Aug 8 23:23:53 PDT 2005
3197
3198 0.22 release. new crypto library, bug fixes, ui improvements
3199
3200 - switch from crypto++ to botan as underlying crypto library.
3201 this should not cause any user-visible changes; let us know
3202 if it does. special thanks to Matt Johnston
3203 <matt@ucc.asn.au>, Kaushik Veeraraghavan
3204 <kaushikv@gmail.com>, Matthew Gregan
3205 <kinetik@orcon.net.nz>.
3206 - incompatible change to netsync permission hooks: the
3207 get_netsync_anonymous_read_permitted hook has been removed;
3208 instead, get_netsync_read_permitted will be called with a
3209 key name of nil. server administrators should update/review
3210 their configuration
3211 - new option for merge and propagate: --lca. Until we get a
3212 long-term solution to the various 3-way merge problems, this
3213 should be more convenient than using explicit_merge.
3214 - many small improvements to error messages, fixes of minor
3215 annoyances, netsync tickers more accurate, etc.
3216
3217Sun Jul 17 16:48:26 PDT 2005
3218
3219 0.21 release. bug fixes, performance improvements, and ui
3220 improvements.
3221
3222 - fixes a number of major performance bugs in 0.20's netsync
3223 implementation. special thanks to Matt Johnston
3224 <matt@ucc.asn.au>.
3225 - fixes a number of major bugs in 0.20's (rewritten)
3226 cvs_import command.
3227 - configury kluges to work around g++ 4.0/boost 1.32
3228 incompatibilities. special thanks to Christof Petig
3229 <christof@petig-baender.de>, Matthew Gregan
3230 <kinetik@orcon.net.nz>, Jordan Breeding
3231 <jordan.breeding@mac.com>.
3232 - ui enhancements:
3233 - new netsync option "--exclude": branches are included if
3234 they match any of the given globs, unless they match any
3235 of the given --exclude globs. special thanks to Timothy
3236 Brownawell <tbrownaw@gmail.com>.
3237 - new netsync option client "--set-default": makes it easy
3238 to change default server/branches.
3239 - "diff" now takes options "--context" and "--external", to
3240 output context diffs and to invoke an external diff
3241 program for full control over output formatting. new
3242 option "--diff-args" pass arguments to external diff
3243 program; new hook "external_diff" allows further
3244 configuration. special thanks to Vladimir Vukicevic
3245 <vladimirv@gmail.com>.
3246 - b: and t: selectors now match exactly, instead of matching
3247 as substrings. globbing is supported for inexact
3248 matching. special thanks to Brian Downing
3249 <bdowning@lavos.net>, Jordan Breeding
3250 <jordan.breeding@mac.com>.
3251 - new command 'db kill_tag_locally'. special thanks to Jordan
3252 Breeding <jordan.breeding@mac.com>.
3253 - now uses sqlite3 prepared statements. special thanks to
3254 Derek Scherger <derek@echologic.com>.
3255 - 'db migrate' is now a complete no-op if there is no
3256 migration to do; automated scripts can now call it
3257 optimistically and cheaply to guarantee up-to-dateness.
3258 - new hash correctness tests. special thanks to Kaushik
3259 Veeraraghavan <kaushikv@gmail.com>.
3260
3261 - upgrading from 0.20: you must run 'monotone db
3262 migrate' once against each of your databases, to add
3263 new sql indexes.
3264
3265Tue Jul 5 23:57:10 PDT 2005
3266
3267 0.20 release. features, ui improvements, performance
3268 improvements, and bug fixes.
3269
3270 - major changes in netsync UI: serve/sync/push/pull now take a
3271 list of globs; clients can request arbitrary sets of
3272 branches, not just predefined "collections". write
3273 permissions are now granted on a per-db level (they were
3274 before anyway).
3275 - where you used to say, e.g., "monotone pull
3276 net.venge.monotone", you should instead say
3277 "monotone pull net.venge.monotone*". This may
3278 require shell-quoting.
3279 - 'get_netsync_write_permitted' hooks must be changed
3280 to take only one argument, the 'identity'.
3281 'get_netsync_{read,anonymous_read}_permitted' hooks
3282 now take a branch argument instead of a collection,
3283 and will be called for each branch that a client
3284 requests.
3285 - 0.19 clients cannot talk to 0.20 servers, and vice-versa.
3286 - special thanks to Timothy Brownawell
3287 <tbrownaw@gmail.com>, Richard Levitte
3288 <richard@levitte.org>.
3289 - other major changes:
3290 - cvs_import re-written; many bugs fixed. now
3291 supports tags.
3292 - many minor netsync changes:
3293 - netsync traffic is now cryptographically authenticated
3294 against corruption and man-in-the-middle attacks.
3295 special thanks to Ethan Blanton <elb@elitists.net>,
3296 Matt Johnston <matt@ucc.asn.au>.
3297 - new hooks that are called when server receives data:
3298 note_netsync_*_received. special thanks to Timothy
3299 Brownawell <tbrownaw@gmail.com>.
3300 - ancestry graphs that pass outside the given branch
3301 are now synchronized correctly. special thanks to
3302 Timothy Brownawell <tbrownaw@gmail.com>.
3303 - UI improvements:
3304 - 'log' options changed: --depth has become --last;
3305 new options --no-merges, --diffs, --brief.
3306 - 'status' has new option --brief. special thanks to
3307 Derek Scherger <derek@echologic.com>.
3308 - 'serve' has new option --pid-file. special thanks
3309 to Matthew Gregan <kinetik@orcon.net.nz>.
3310 - all commands taking restrictions now take option
3311 --depth, to limit recursion through subdirectories.
3312 special thanks to Joel Reed <joelwreed@comcast.com>.
3313 - merge command all take --author, --date now.
3314 - 'checkout', 'update' take --revision, instead of
3315 using positional arguments. special thanks to Derek
3316 Scherger <derek@echologic.com>, Richard Levitte
3317 <richard@levitte.org>.
3318 - 'commit' takes new --message-file option.
3319 - new features:
3320 - new commands: "db kill_branch_locally", "db
3321 kill_revision_locally", useful for correcting some
3322 mistakes. special thanks to Brian Campbell
3323 <brian.p.campbell@dartmouth.edu>, Sebastian Spaeth
3324 <Sebastian@sspaeth.de>.
3325 - new file attribute 'manual_merge', to prevent invocation of
3326 merger on binary files. hook added to guess correct
3327 value at 'add' time. special thanks to Riccardo
3328 Ghetta <birrachiara@tin.it>.
3329 - new 'earlier than', 'later than' selectors. special
3330 thanks to Riccardo Ghetta <birrachiara@tin.it>.
3331 - new automate commands:
3332 - 'stdio', for efficient use by
3333 front-ends. special thanks to Timothy Brownawell
3334 <tbrownaw@gmail.com>.
3335 - 'certs', for fetching certs on a revision in a
3336 parseable (basic io-based) format. special thanks
3337 to Grahame Bowland <grahame@angrygoats.net>.
3338 - 'inventory' output changed incompatibly; should be
3339 much more usable now, and stable. special thanks to
3340 Derek Scherger <derek@echologic.com>.
3341 - better memory/performance when handling large files.
3342 special thanks to Eric Anderson
3343 <anderse-monotone@cello.hpl.hp.com>, Timothy Brownawell
3344 <tbrownaw@gmail.com>, Matt Johnston <matt@ucc.asn.au>,
3345 Matthew Gregan <kinetik@orcon.net.nz>.
3346 - new text mode browser in contrib/mtbrowse.sh, by Henry
3347 Nestler <Henry@BigFoot.de>.
3348 - improved zsh completion in contrib/monotone.zsh_completion,
3349 by Joel Reed <joelwreed@comcast.com>.
3350
3351 - upgrading from 0.19: database and working copies are
3352 fully compatible. netsync clients and servers need
3353 to be upgraded together, as described above. the
3354 many ui changes may require script updates.
3355
3356Tue May 3 00:31:37 PDT 2005
3357
3358 0.19 release. performance improvements, features, ui
3359 improvements, and bug fixes.
3360
3361 - many operations sped up by another factor of 2 or better.
3362 - special thanks to Matt Johnston <matt@ucc.asn.au>.
3363 - first steps towards automated benchmarking. Thanks
3364 to Timothy Brownawell <tbrownaw@gmail.com>.
3365 - new major features:
3366 - "annotate" command; still requires optimization.
3367 Thanks to Emile Snyder <emile@alumni.reed.edu>.
3368 - "inodeprints" for fast change detection in large
3369 working dirs now fully supported; see manual for
3370 details.
3371 - new minor features:
3372 - new selector "c:name=value" for selecting on
3373 arbitrary certs. Thanks to Richard Levitte
3374 <richard@levitte.org>.
3375 - new hooks to automatically initialize attributes on
3376 add; monotone now automatically sets execute bit on
3377 executables. Thanks to Joel Reed
3378 <joelwreed@comcast.net>.
3379 - new automate command "select", to do selector
3380 expansion. Thanks to Richard Levitte
3381 <richard@levitte.org>.
3382 - new automate commands "graph", "parents",
3383 "children", "ancestors", to easily inspect history.
3384 Special thanks to Sebastian Spaeth
3385 <Sebastian@SSpaeth.de>.
3386 - new command "db kill_rev_locally". Thanks to
3387 Sebastian Spaeth <Sebastian@sspaeth.de>.
3388 - new arguments to "commit": --author, --date; useful
3389 for patch attribution and importing history.
3390 - new automate command "inventory" (output format will
3391 change in next release, however). Thanks to Derek
3392 Scherger <derek@echologic.com>.
3393 - ui improvements:
3394 - netsync progress ticker in kilobytes/megabytes.
3395 Thanks to Matt Johnston <matt@ucc.asn.au> and
3396 Sebastian Spaeth <Sebastian@sspaeth.de>.
3397 - tickers do not cause annoying scrolling when wider
3398 than window. Special thanks to Matthew Gregan
3399 <kinetik@orcon.net.nz>.
3400 - warn users when a commit creates divergence, and
3401 when an update ignores it. Thanks to Jeremy Cowgar
3402 <jeremy@cowgar.com>.
3403 - support for command-specific options (there is still
3404 no rule that such options must appear after the
3405 command on the command line, though). Thanks to
3406 Richard Levitte <richard@levitte.org>.
3407 - bug fixes:
3408 - many cvs_import bugs fixed. Special thanks to Jon
3409 Bright <jon@siliconcircus.com>, Emile Snyder
3410 <emile@alumni.reed.edu>, Hansjoerg Lipp
3411 <hjlipp@web.de>, Matthew Gregan
3412 <kinetik@orcon.net.nz>.
3413 - windows/unix working copy line ending conversion now
3414 works correctly. Thanks to Emile Snyder
3415 <emile@alumni.reed.edu>.
3416 - many fixes to i18n-ized filename support
3417 - "drop" and "rename" now affect file attributes as
3418 well. Thanks to Richard Levitte
3419 <richard@levitte.org> and Joel Reed
3420 <joelwreed@comcast.com>.
3421 - better error reporting in netsync. Thanks to
3422 Grahame Bowland <grahame@angrygoats.net>.
3423 - only set working directory's default branch on some
3424 commands (update, commit). Thanks to Florian Weimer
3425 <fw@deneb.enyo.de>.
3426 - "db check" now sets exit status correctly, for use
3427 in scripts. Thanks to Derek Scherger
3428 <derek@echologic.com>.
3429 - many others...
3430 - fantastic emacs integration in contrib/monotone.el. Thanks
3431 to Harley Gorrell <harley@panix.com>.
3432 - 45 new integration tests. total line coverage: ~84%.
3433
3434 - upgrading from 0.18: database and working copies are
3435 fully compatible. NOTE that the configuration file
3436 is now ~/.monotone/monotonerc, rather than old
3437 ~/.monotonerc. Simply create ~/.monotone, and
3438 rename any existing configuration file.
3439
3440Sun Apr 10 17:49:25 PDT 2005
3441
3442 0.18 release. performance improvements, features, and bug fixes.
3443 This release is dedicated to Shweta Narayan.
3444
3445 - most operations sped up by a factor of 2 or better; many sped up
3446 by up several orders of magnitude.
3447 - special thanks to Matt Johnston <matt@ucc.asn.au>, Derek
3448 Scherger <derek@echologic.com>, Linus Torvalds
3449 <torvalds@osdl.org>.
3450 - new concept: "database vars". Used in several features below.
3451 - new features:
3452 - new file "MT/log" can be edited while you work,
3453 sets default changelog. (no change in behaviour if
3454 you do not edit it.) Thanks to Jeremy Cowgar
3455 <jeremy@cowgar.com>.
3456 - monotone now stores default netsync
3457 server/collection, initialized on first use of
3458 netsync.
3459 - you no longer need to manually import server
3460 keys, monotone will fetch the key from the server on
3461 first netsync.
3462 - monotone keeps track of keys of servers you have
3463 previously synced with, to prevent man-in-the-middle
3464 attacks.
3465 - several powerful new "automate" commands added.
3466 - new command 'ls known', lists files that are under version
3467 control. Thanks to Florian Weimer <fw@deneb.enyo.de>.
3468 - preliminary "inodeprints" functionality -- speeds up diff,
3469 status, etc. No UI or documentation yet -- in a working
3470 copy, 'touch MT/inodeprints' to enable, then commit or
3471 update to populate cache.
3472 - UI improvements:
3473 - Added short options -r, -b, -k, -m.
3474 - default to 'dot' ticker-style when stderr is
3475 not a tty, thanks to Derek Scherger
3476 <derek@echologic.com>.
3477 - New "-@/--xargs" option, helpful when using new
3478 automate commands. Thanks to Richard Levitte
3479 <richard@levitte.org>.
3480 - New "--depth" argument to 'log'. Thanks to Richard
3481 Levitte <richard@levitte.org>.
3482 - 'db info' gives statistics on space usage.
3483 - new command 'dropkey'. Thanks to Jeremy Cowgar
3484 <jeremy@cowgar.com>.
3485 - robustness improvement: if monotone crashes in a working
3486 directory and --dump and --debug were not specified, saves
3487 debug dump to "MT/debug" for analysis, instead of
3488 discarding.
3489 - new contributed scripts: CIA (cia.navi.cx) notification,
3490 email notification, Bash completion.
3491 - 33 new integration tests. total line coverage: ~82%.
3492 - many bug fixes
3493 - Special thanks to Matt Johnston <matt@ucc.asn.au>,
3494 for going above and beyond to track down the last
3495 release blocker.
3496
3497 - upgrading from 0.17 requires only a 'db migrate'.
3498
3499Fri Mar 18 15:38:52 PST 2005
3500
3501 0.17 release. bug fixes and features.
3502
3503 - many, many robustness improvements
3504 - more careful checking everywhere
3505 - much more thorough test suite
3506 - all revisions subject to careful checks before
3507 entering database
3508 - not yet fully optimized; "pull" may be very
3509 slow and use lots of cpu
3510 - support for "epochs", to safely manage future
3511 rebuilds, hash migration, etc.
3512 - new "db check" command, thanks to Derek Scherger
3513 <derek@echologic.com>.
3514 - now uses sqlite3, thanks to Christof Petig
3515 <christof@petig-baender.de>.
3516 - removes most former size limitations
3517 - "restrictions" support, thanks to Derek Scherger
3518 <derek@echologic.com>.
3519 - most commands now take a list of files to limit
3520 their actions to
3521 - monotone can now be run from anywhere in the working
3522 directory (not just the root)
3523 - new command "monotone setup" required to create a
3524 working directory for a new project
3525 - important security fix -- don't use shell when calling
3526 external merge commands.
3527 - format change for "MT/options", ".mt-attrs"; you may have to
3528 edit these files
3529 - new command "attr" for managing .mt-attrs.
3530 - builds merkle tries in-memory -- netsync starts up many
3531 times faster
3532 - start of new "automate" interface, for shell scripts and
3533 others.
3534 - new command "cdiff": generates context diffs.
3535 - remove most of now-obsolete manifest/file cert support.
3536 - 60+ new integration tests.
3537 - many portability fixes
3538 - in particular, major win32 cleanups, thanks to Jon
3539 Bright <jon@siliconcircus.com>. win32 is once again
3540 fully and natively supported.
3541 - many bug fixes
3542
3543 - several incompatible changes: see file UPGRADE for
3544 migration information
3545
3546Thu Dec 30 01:37:54 EST 2004
3547
3548 0.16 release. bug fixes.
3549
3550 - 50+ new integration tests
3551 - many NetBSD portability fixes
3552 - release build on gcc 3.4 / FC3
3553 - masses of changeset bugs in 0.15 fixed
3554
3555 - some bogus changesets were generated
3556 in the 0.16 development cycle. you will
3557 need to rebuild revision graph.
3558
3559
3560Sun Nov 7 14:06:03 EST 2004
3561
3562 0.15 release. major changes.
3563
3564 - overhauled the internal representation of changes. see
3565 README.changesets for details
3566 - fixed bugs in merkle trie synchronization code
3567 - fixed echoing and progress UI bugs
3568 (helps when using in emacs)
3569 - upgraded cryptopp to 5.2.1
3570 - fixed bug 8715, diff hunk coordinate reporting
3571 - added figures, new tutorial to manual
3572 - improve accuracy of log command
3573 - several build, configure, and linkage fixes
3574 - some OSX / PPC portability fixes
3575
3576Sat Jul 31 15:38:02 EDT 2004
3577
3578 0.14 release. bug fixes.
3579
3580 - some compile fixes for g++ 3.4
3581 - made --dump=FILE option for saving traces,
3582 otherwise failures just print reason (no trace)
3583 - some things disabled, as scheduled for replacement
3584 by upcoming changeset branch work
3585 - disabled "disapprove" command due to bad semantics
3586 - removed "bump" and .mt-nonce machinery
3587 - several critical rename-merging bugs fixed
3588 - renames vs. deletes
3589 - renames vs. deltas
3590 - parallel renames
3591 - bugs fixed from savannah bug tracker:
3592 - 9223 argv overflow
3593 - 9075 empty commits
3594 - 8919 rename --verbose to --debug
3595 - 8958 rename debug to db execute
3596 - 8920 empty passphrase message
3597 - 8917 connection refused message
3598 - 8913 testresult argument
3599 - 8912 passphrase read on serve
3600 - 8472 approve into branch
3601 - 8428 duplicate key warning
3602 - 8928 nonce uses too many bits
3603
3604Thu May 20 22:26:27 EDT 2004
3605
3606 0.13 release. bug fixes.
3607
3608 - remove (file|manifest) in several commands
3609 - "list missing" command
3610 - fixed bugs:
3611 - (critical) empty data netsync crash
3612 - mkstemp, platform lua
3613 - runtime error reporting chatter
3614 - non-posix database names
3615 - non-posix dirnames
3616 - non-posix merge names
3617 - 2-way merge algorithm and hook
3618 - single-character filenames
3619 - multiple password reads
3620 - .svn ignore pattern
3621
3622Sun May 2 21:03:38 EDT 2004
3623
3624 0.12 release. win32 port, bug fixes and optimizations.
3625
3626 - ported to native win32 (mingw)
3627 - implemented human friendly version selectors
3628 - added post-commit hook for change notification
3629 - removed spirit-based parsers, reduced compile costs
3630 - many netsync bugs removed, pipeline performance improved
3631 - removed old, deprecated networking system
3632 - several minor CVS import bugs fixed
3633 - upgraded bundled netxx
3634
3635Sun Mar 28 12:41:07 EST 2004
3636
3637 0.11 release. bug fixes and optimizations.
3638
3639 NOTE: this release expands the sqlite page size. YOU WILL NEED
3640 to dump existing databases before upgrading and reload it
3641 after upgrading, otherwise monotone will complain that the
3642 database image appears malformed. this condition cannot
3643 unfortunately be distinguished from a real malformed image on
3644 disk. for example:
3645
3646 $ monotone --db=my.db db dump >dump.sql
3647 $ <upgrade to new monotone>
3648 $ mv my.db my.db.backup
3649 $ monotone --db=my.db db load <dump.sql
3650
3651 - fixed bugs:
3652 - aliasing bug on debian (-O2 now works)
3653 - netsync ppc portability / checksums
3654 - sha1 whitespace bug
3655 - netsync broken formatter
3656 - broken symlink handling
3657 - merger execution pessimism
3658 - LCA bitset calculation pessimism
3659 - static object initialization order
3660 - CVS single-version import
3661 - CVS first-version changelog
3662 - CVS branch inference and topology
3663 - cryptographic SSE2 paths enabled on linux/x86.
3664 - builds against boost 1.31.0.
3665 - removed boost::socket
3666 - removed documentation about old networking system.
3667 - "officially" deprecated old networking system.
3668 - enable building with system-local libraries.
3669 - upgraded bundled sqlite.
3670 - changed sqlite page size from 1k -> 8k
3671
3672Mon Mar 1 00:32:07 EST 2004
3673
3674 0.10 release. new "netsync" protocol implemented, allowing
3675 direct monotone-to-monotone database synchronization. random
3676 number underflow problem fixed. more tests added. database
3677 schema changed, must migrate schema. added new QA logic to
3678 update and merge algorithms (testresult / approval).
3679
3680Thu Jan 1 18:23:06 EST 2004
3681
3682 0.9 release. support international users (non-ASCII character
3683 sets, locales). some corrections to update algorithm. line
3684 merging algorithm reimplemented. support working copy
3685 MT/monotonerc file. broke format compatibility with MT/work
3686 files; commit any pending work before upgrading. permit
3687 spaces, colons, other "funny" characters in filenames. support
3688 HTTP 1.1, HTTP proxies, handle some corner cases in ancestry
3689 graph and database faults.
3690
3691Fri Nov 21 20:25:26 EST 2003
3692
3693 0.8 release. row size increased to 16mb. more performance
3694 improvements in cvs importer. cvs branch tags imported now.
3695 minor UI improvements. new commands: SQL dump and load, vcheck
3696 for enhanced collision detection, queue addtree for recursive
3697 queueing. improved networking scalability. historical rename
3698 certs and .mt-attrs file format changed to accomodate upcoming
3699 i18n work.
3700
3701Sun Nov 2 23:38:09 EST 2003
3702
3703 0.7 release. many critical merge and patch set calculation
3704 bugs fixed. groups merged with URLs, "monotone db migrate"
3705 necessary. directory renames and explicit rename certs
3706 supported. added SMTP support. incorporated adns library,
3707 avoiding gethostbyname(). new queue commands.
3708
3709Sat Oct 18 22:10:09 EDT 2003
3710
3711 0.6 release. more stability and bug fixing, including fix to
3712 some silent failures in LCA calculation. some minor new
3713 features: persistent attributes (eg. 'the execute bit'),
3714 rename and log commands. performance of cvs importer greatly
3715 improved, lua system upgraded to 5.0, much expanded
3716 documentation.
3717
3718Sat Sep 27 11:50:08 EDT 2003
3719
3720 0.5 release. stability and bug fixing. many UI issues
3721 addressed, including SHA1 completion, persistent options, new
3722 revert command and new diff modes. database migration,
3723 inspection and debugging interfaces added. LCS algorithm and
3724 line-merger overhauled. several multi-depot bugs
3725 fixed. existing depot databases should be migrated (depot.cgi
3726 migratedb).
3727
3728Thu Sep 4 15:40:07 EDT 2003
3729
3730 0.4 release. monotone is now self-hosting. database
3731 compatibility broken since 0.3. depot uses RSA signatures now,
3732 not mac keys. many bugs removed. depot database compatibility
3733 broken. database schemas should now remain stable (or be
3734 provided with safe schema-upgrading function).
3735
3736Mon Aug 25 18:00:37 EDT 2003
3737
3738 0.3 release. database compatibility broken. packet format
3739 compatibility broken. dropped boost sandbox library dependency.
3740 redid networking to support private HTTP+CGI depots along with
3741 netnews. wrote depot. added 'propagate' command to move changes
3742 between branches asymmetrically. rewrote testsuite in autotest.
3743 cleaned up command line processing. expanded testsuite. improved
3744 user-friendly error reporting.
3745
3746Fri Aug 8 10:20:01 EDT 2003
3747
3748 0.2 release. database compatibility broken. dropped many
3749 library dependencies. hand-reimplemented xdelta, parts of
3750 nana. incorporated subset of cryptopp and sqlite into
3751 sources. added RCS and CVS importer. switched to piecewise
3752 reconstruction. generally much more robust storage system.
3753 scalability tests against real world CVS archives show
3754 performance gap with CVS closing, but still present.
3755
3756Sun Apr 6 20:20:42 EDT 2003
3757
3758 initial release

Archive Download this file

Branches

Tags

Quick Links:     www.monotone.ca    -     Downloads    -     Documentation    -     Wiki    -     Code Forge    -     Build Status