monotone

monotone Mtn Source Tree

Root/NEWS

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

Archive Download this file

Branches

Tags

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