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

Archive Download this file

Branches

Tags

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