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

Archive Download this file

Branches

Tags

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