monotone

monotone Mtn Source Tree

Root/NEWS

1Mon Feb 25 15:55:36 UTC 2008
2
3 0.39 release.
4
5 Changes
6
7 - 'mtn di' is now an alias for 'mtn diff'.
8
9 - 'automate db_set' has been renamed to 'automate set_db_variable'.
10
11 - 'automate db_get' has been replaced by 'automate get_db_variables'
12 which returns all database variables similar to 'list vars' in
13 basic_io format, optionally restricted by domain.
14
15 - The REVID argument of 'automate get_revision' is now mandatory;
16 to retrieve the current workspace revision, use the new command
17 'automate get_current_revision'
18
19 - messages describing conflicts from all of the various merge commands
20 have been reworked and should be much more informative.
21
22 - mtn show_conflicts now outputs much more detailed and descriptive
23 messages, however it may report content conflicts that will be
24 resolved automatically by the line merger.
25
26 - The internal copy of PCRE has been updated to version 7.6.
27 If you use the '--with-system-pcre' configure switch, it
28 will insist on at least this version.
29
30 - "emacs" has been removed from the list of dumb terminal types;
31 tickers should now default to --ticker=count with emacs terminals
32
33 - extensive section on merge conflicts and ways to resolve them
34 added to the manual.
35
36 Bugs fixed
37
38 - for changes near the beginning of a file, mtn's unified diff
39 output sometimes contained too many leading context lines.
40
41 - the path handling of 'mtn revert' was improved and fixed two bugs:
42 now a restricted revert on a node "dir1/file1" reverts only the
43 content changes in "file1", but leaves renames of any of its
44 ancestor nodes untouched; furthermore, if "dir0/" was renamed to
45 "dir1" and "dir1/file1" was dropped, mtn now re-creates file1 at the
46 proper place ("dir1/") and leaves no missing files around because
47 of the non-existing "dir0/".
48
49 - a few changes needed to build with gcc 4.3.
50
51 New features
52
53 - 'automate drop_db_variables' which drops one database variable
54 (like the 'unset' command) or all variables within a given domain.
55
56 - 'automate inventory' now accepts the options '--no-ignored',
57 '--no-unknown', '--no-unchanged' and '--no-corresponding-renames'.
58 Please consult the monotone documentation for more information about
59 these new options.
60 In addition, 'automate inventory' no longer recurses into ignored
61 directories. The typical case of listing files that need attention
62 now runs at least four times faster.
63
64 - 'automate get_current_revision' which outputs the revision text of
65 changes in the current workspace
66
67Wed Dec 12 21:21:15 UTC 2007
68
69 0.38 release.
70
71 Changes
72
73 - mtn log now prints a single dot for a project's root
74 directory instead of an empty string.
75
76 - mtn now warns if changes to a file will be ignored because
77 the file has been deleted on one side of a merge.
78
79 - mtn now errors if your chosen private key doesn't match the public
80 key of the same name in your database.
81
82 - mtn now checks for your key before a merge action takes place to
83 ensure that any manually merged file isn't lost in an error case
84
85 Bugs fixed
86
87 - a bug introduced in 0.37 prevented an external merger from being
88 executed unless the MTN_MERGE environment variable was set
89
90 - mtn read successfully reads revision data, and cert packets again
91
92 - mtn consistently supports certs with empty values
93 (fixed 'ls certs' and 'read')
94
95 Internal
96
97 - Update Botan to 1.7.2.
98
99 - Moved the gzip implementation out of the Botan directory.
100
101 Other
102
103 - Added the scripts of the following Lua-based contributed
104 Monotone extension commands to contrib/command/:
105 "mtn base", "mtn fuse", "mtn revision", "mtn conflicts".
106
107 - Added a hooks version of the contributed ciabot script,
108 contrib/ciabot_monotone_hookversion.lua
109
110 - The monotone manual is now licensed under the GPL rather than
111 the GFDL.
112
113Fri Oct 25 22:35:33 UTC 2007
114
115 0.37 release.
116
117 Changes
118
119 - mtn db kill_rev_locally now checks for an existing workspace
120 before the revision is killed and tries to apply the changes
121 of this particular revision back to the workspace to allow
122 easy re-committing afterwards
123
124 - the "--brief" switch for mtn annotate has been renamed to
125 "--revs-only" for clarity
126
127 - mtn help now lists the commands (and their aliases) available
128 within a group, so its easier to get an overview which commands
129 are available at all
130
131 - the "MTN_MERGE=diffutils" merger (provided by std_hooks.lua)
132 was improved. It now accepts a MTN_MERGE_DIFFUTILS environment
133 variable which can be used to control its behaviour
134 through comma-separated "key[=value]" entries. Currently
135 supported entries are "partial" for doing a partial
136 batch/non-modal 3-way merge conflict "resolution" which uses
137 embedded content conflict markers and "diff3opts=[...]" and
138 "sdiffopts=[...]" for passing arbitrary options to the used
139 "diff3" and "sdiff" tools. When used in combination with "mtn
140 merge_into_workspace" this way one especially can achieve a
141 CVS/SVN style non-modal workspace-based merging.
142
143 - There is a new revision selector: "p:REV" selects the
144 parent(s) of revision REV. For example, if a revision has
145 one parent,
146
147 mtn diff -r p:REV -r REV
148
149 will show the changes made in that revision.
150
151 - Monotone now uses the Perl-Compatible Regular Expression
152 (PCRE) library for all regular expressions, instead of the
153 boost::regex library. This means that external Boost
154 libraries are no longer required to build or use Monotone.
155 If building from source, you will still need the Boost headers
156 available somewhere. See INSTALL for details.
157
158 PCRE's syntax for regular expressions is a superset of
159 boost::regex's syntax; it is unlikely that any existing
160 .mtn-ignore files or other user uses of regexps will break.
161 The manual now contains detailed documentation of the regexp
162 syntax, borrowed from PCRE itself.
163
164 - the format of "mtn automate inventory" has changed to basic_io.
165 This fixes a couple of corner cases where the old format
166 returned wrong information and introduces new capabilities like
167 restricted output, recognized attribute changes, and more.
168 For a complete overview on the new format, please take a look
169 in the appropriate manual section.
170
171 Bugs fixed
172
173 - mtn automate heads called without a branch argument now properly
174 returns the head revisions of the workspace's branch if called
175 over mtn automate stdio
176
177 - mtn commit no longer crashes if it creates a revision whose
178 roster already exists, i.e. was left behind by the command
179 `mtn db kill_rev_locally REV` (savannah #18990)
180
181 Documentation changes
182
183 - the documentation of the "--revs-only" (formerly "--brief")
184 switch for the annotate command didn't match its actual
185 behavior, this has been fixed
186
187 - documentation for the "ssh_agent_add" command was missing
188 and has been added
189
190 Other
191
192 - contrib/usher.cc has been removed. Please use the
193 net.venge.monotone.contrib.usher branch instead.
194
195 Internal
196
197 - Update SQLite to 3.4.1.
198
199 - Update Lua to 5.1.2 plus latest bug fixes.
200
201 - Update Botan to 1.5.10.
202
203 - Internal use of regular expressions has been almost eliminated.
204 (Regular expressions are still used for .mtn-ignore and the
205 --show-encloser feature of mtn diff, and are still available to
206 Lua hooks.)
207
208
209
210Fri Aug 3 06:08:36 UTC 2007
211
212 0.36 release.
213
214 Changes
215
216 - The help command is now able to show documentation on subcommands
217 (such as 'attr set').
218
219 - The help command now shows a brief abstract of each command,
220 instead of only listing their names.
221
222 - The command `list changed` now outputs the new path of any
223 renamed item making it easier to copy and paste these paths
224 for external program usage.
225
226 - `automate attributes` has been renamed to `automate get_attributes`,
227 also a bug has been fixed there so resurrected attributes are now
228 properly outputted as "new" and not "changed".
229
230 New features
231
232 - Two new commands to set and drop attributes over automate:
233 `automate set_attribute` and `automate drop_attribute`
234
235 - There is a new function available to the lua hooks,
236 'server_request_sync(what, address, include, exclude)', which will
237 initate a netsync connection to the server at "address", with the
238 given include and exclude patterns, and will sync, push, or pull,
239 as given in the "what" argument. If called from a monotone instance
240 which is not acting as a server, this function will do nothing.
241
242 - There is a new hook available,
243 'get_netsync_key(server, include, exclude)', which is called to
244 determine which key to use for netsync operations. Note that the
245 server calls this once at startup with the address it is listening
246 on, "*", and "" as arguments, rather than for each connection.
247
248 Other
249
250 - Giving the --confdir argument will automatically set the key store
251 directory to keys/ under that directory, unless --keydir is also
252 given. This is a bugfix.
253
254 - Fixed a regression in 0.35 that resulted in some databases
255 becoming significantly larger when storing new revisions. Existing
256 databases with this problem can be fixed by pulling into a fresh
257 database using 0.36.
258
259 - contrib/lua-mode.el, a Lua mode for GNU emacs.
260
261 - contrib/monotone-buildbot-notification.lua, a netsync hook to have a
262 server notify a buildbot when new changes have arrived. Useful for
263 anyone who uses a buildbot with monotone as source.
264
265 - contrib/monotone-cluster-push.lua, a netsync hook script to have
266 arriving changes be forwarded to other servers automatically. It
267 uses the new internal lua function 'server_request_sync'.
268
269 - contrib/mtn_makepermissions, a simple script to create
270 read-permissions and write-permissions from files in the directories
271 read-permissions.d and write-permissions.d, Debian style.
272
273 - contrib/Monotone.pm, a first attempt to write a Perl module to
274 interface with 'monotone automate stdio'.
275
276 - contrib/monotone-import.pl has been removed since monotone now has
277 an internal import command.
278
279 Internal
280
281 - Commands are now defined as a tree of commands instead of a
282 plain list, which allows the help system to look up information
283 of a command at an level in the tree.
284
285 - The command class, the automate class and all the associated
286 macros have been cleaned up.
287
288 - All C++ files now depend on base.hh, which includes the few things
289 that are used virtually everywhere. 'make distcheck' will check for
290 the presence of base.hh in all source files and will protest if
291 it's not there. This is explained further in HACKING.
292
293 - Update the internal SQLite to version 3.4.0.
294
295 - Updated Visual C building system, which now also builds the test
296 programs. The script visualc/runtests.bat can be used to run the
297 tests.
298
299 - Monotone can now be built successfully with Boost 1.34. Older
300 versions of monotone would sometimes seem to work depending on
301 the compiler used, but would have bugs in path normalization.
302
303 - Monotone now requires Boost 1.33 or later.
304
305 - The Boost filesystem library is no longer required.
306
307 - The Boost unit test system is no longer required.
308
309
310
311Mon May 7 14:08:44 UTC 2007
312
313 0.35 release.
314
315 Changes
316
317 - 'mkdir --no-respect-ignore PATH' now really skips any
318 ignore directives from .mtn-ignore or Lua hooks
319
320 - Private keys are now stored more safely, using file
321 permissions.
322
323 - The editable log summary (what you get in an editor when
324 committing without -m) now includes information about which
325 branch the commit applies to.
326
327 - The status command and the editable log summary now show
328 the same details about the change.
329
330 New features
331
332 - 'automate identify', an automate version of 'mtn identify'.
333
334 - 'automate roots', prints the roots of the revision graph,
335 i.e. all revisions that have no parents.
336
337 Other
338
339 - You can't drop the workspace root any more.
340
341 Internal
342
343 - Update the internal Lua to version 5.1.2.
344
345 - Added build files for Mac OS X.
346
347 - Update the internal SQLite to version 3.3.17.
348
349 - Code cleanup of app_state.
350
351
352
353Sun Apr 1 08:23:34 UTC 2007
354
355 0.34 release.
356
357 The internal data format has changed with this release;
358 migration is straight-forward. To upgrade your databases,
359 you must run:
360 $ mtn -d mydb.mtn db migrate
361 All of these operations are completely lossless, and 0.34
362 remains compatible with earlier versions all the way back
363 to 0.26 with regards to netsync.
364
365 Changes
366
367 - Text is now output at best of the environment's possibilities,
368 transliterating them or substituting '?' as needed.
369
370 - The lua hook get_author() now takes a second argument, a
371 key identity, in case someone wants to create an author based
372 on that and not only the branch name.
373
374 - The command 'chkeypass' became 'passphrase'.
375
376 - The commands 'drop', 'rename' and 'pivot_root' default to
377 always perform the operation in the file system as well.
378 They do not accept '--execute' any more, but will instead
379 take '--bookkeep-only' in case the user only wants to affect
380 bookkeeping files.
381
382 New features
383
384 - New hook note_mtn_startup(), which is called when monotone is
385 started.
386
387 - New Lua support function spawn_pipe(), which is used to run
388 a command and get back its standard input and standard output
389 file handles as well as the pid.
390
391 - Monotone will automatically add a monotone key in a resident
392 ssh-agent when it's first used, and will then use ssh-agent
393 for all subsequent signing. Thus, you will only need to give
394 the password once in one session.
395 - New command 'ssh_agent_export' to export a monotone key into
396 an SSH key.
397 - New command 'ssh_agent_add' to add a monotone key explicitly
398 to a resident ssh-agent.
399
400 - New command 'clone' that combines 'pull' and 'checkout'.
401
402 - 'automate put_file' and 'automate put_revision' stores a file
403 and a revision in the database.
404
405 - 'automate cert', an automate version of 'mtn cert'.
406 - 'automate db_set', an automate version of 'mtn set'.
407 - 'automate db_get', an automate version of 'mtn ls vars' with
408 a twist.
409
410 Other
411
412 - contrib/ciabot_monotone_hookversion.py now uses a real
413 basic_io parser and thus should send more precise
414 information to the cia server. Furthermore, it has become
415 more careful with creating zombies.
416
417 - contrib/monotone-log-of-pulled-revs-hook.lua, a lua hook
418 to display information about incoming revisions.
419
420 - contrib/monotone-mirror-postaction-push.sh, a post action
421 script that should be executed by contrib/monotone-mirror.sh
422 to automatically push data on to other servers.
423
424 - contrib/monotone-mirror.lua, a lua hook that executes
425 contrib/monotone-mirror.sh after any netsync session is done.
426
427 - contrib/monotone-mirror.sh now takes keydir and keyid
428 configuration and has better protection against overlapping
429 duplicate runs.
430
431 - contrib/monotone.bash_completion now handles signals.
432
433 - contrib/monotone.el now includes a commit button.
434
435 Internal
436
437 - Date and time display has now been reimplemented internally
438 to avoid Boost more. This means that we have lowered our
439 dependency from Boost 1.33.0 to 1.32.0.
440
441 - Lots of code cleanup.
442
443 - The heights cache got an index, making the processing faster.
444
445 - Update the internal SQLite to version 3.3.13.
446
447 - Algorithm to find uncommon ancestors has been rewritten, so
448 'pull' and 'regenerate_caches' should be faster.
449
450
451Wed Feb 28 22:02:43 UTC 2007
452
453 0.33 release.
454
455 The internal data format has changed with this release;
456 migration is straight-forward. To upgrade your databases,
457 you must run:
458 $ mtn -d mydb.mtn db migrate
459 All of these operations are completely lossless, and 0.33
460 remains compatible with earlier versions with regards to
461 netsync.
462
463 Changes
464
465 - "mtn ls unknown" no longer recurses into unknown directories.
466
467 - update will fail rather than clobbering unversioned files
468 that exist in the workspace.
469
470 - update will detect directories with unversioned files before
471 attempting to drop them and will refuse to run rather than
472 corrupting the workspace. such unversioned files must be
473 removed manually.
474
475 - the character set and line separator conversion hooks
476 (get_system_linesep, get_charset_conv and get_linesep_conv)
477 have been removed. Similar functionality (probably based on
478 file type attributes) is planned and will be added in a future
479 release.
480
481 - update will switch to the branch of a given revision if it
482 differs from the current workspace branch.
483
484 - add will now accept combinations of --unknown, --recursive and
485 --no-respect-ignore.
486
487 - import now imports unknown directory trees properly.
488
489 - use SQLite 3.3.12.
490
491 - schema migrator rebuilt and will now properly detect and report
492 if the database used is created by a newer monotone than the one
493 currently used.
494
495 - removed the man page mtn.1, as it hadn't been updated for a long
496 time.
497
498 New features
499
500 - "mtn merge_into_workspace" (still to be documented). This command
501 will allow you to review and fix up a merge in your workspace
502 before committing it to the repository. However, the conflict
503 resolution interface remains the same as that of the 'merge'
504 command for now (i.e. monotone will invoke your specified merge
505 tool on all files with conflicts and you must resolve them as they
506 are presented). Work on in-workspace conflict presentation and
507 resolution is planned for the future.
508
509 - "mtn log" will now print an ASCII revision graph alongside the
510 usual log text.
511
512 Speed improvements
513
514 - "mtn annotate file" should run even faster now. it exploits
515 the fact that we store deltas of rosters. by peeking at
516 these deltas, it can avoid reconstruction of whole rosters
517 in many cases.
518
519 Other
520
521 - contrib/monotone-mirror.sh and
522 contrib/monotone-mirror-postaction-update.sh, two scripts
523 to mirror and update directories automatically.
524
525 - contrib/monotone-run-script-post-netsync.lua, to automatically
526 update a directory as soon as new revisions or certs arrive for
527 a given branch.
528
529 - contrib/monotone.bash_completion had some improvemens.
530
531 - contrib/monotone.el had some improvements.
532
533 Internal
534
535 - Internally, the concept of "projects" has been introduced. It
536 currently doesn't mean anything, but will be used later, with
537 policy branches and similar.
538
539
540
541Wed Dec 27 09:57:48 UTC 2006
542
543 0.32 release.
544
545 Changes
546
547 - "mtn serve" no longer takes patterns on the command line.
548 Use the permissions hooks instead.
549
550 - the name of the option that denoted the revision from which
551 "mtn log" should start logging was renamed from "--revision"
552 to "--from"
553
554 - author selectors no longer have implicit wildcarding
555
556 - if you manually add entries to MTN/log while you are
557 working, in preparation for an eventual commit, you will now
558 be required to remove a "magic" template line from the file
559 before the commit will succeed. This, like the test for an
560 empty log file, helps to prevent accidents.
561
562 - the "db regenerate_caches" migration command replaces the
563 previous "db regenerate_rosters", generalising the task of
564 rebuilding or generating cached data that may be added
565 across an upgrade. Like "db migrate", which upgrades the
566 database schema, this command fills in the data for new
567 features. In this release, as well as rosters, it also adds
568 "heights" information used to speed up topology operations.
569
570 Speed improvements
571
572 - "mtn annotate file" and "mtn log file" are generally much
573 faster now, dependant on the number of revisions that
574 changed the file. Both commands as well as "mtn automate
575 toposort" make use of data called "heights" caching the
576 topological order of all revisions. In order to create and
577 use this data, the following must be run once for each db
578 after upgrading:
579
580 $ mtn -d mydb.mtn db regenerate_caches
581
582 New features
583
584 - "mtn automate content_diff"
585
586 - "mtn automate get_file_of" (same as get_file, but expects
587 a file path and optionally a revision)
588
589 - "mtn import" command
590
591 - "mtn log --to"
592
593 - netsync_note_* hooks are given much more information,
594 inlcuding a http/smtp/etc style status code
595
596 - includedirpattern(dir, fileglob) function for hooks
597
598
599 Bugs fixed
600
601 - bug in "automate stdio" that would result in monotone
602 garbling its input in some circumstances fixed
603
604 - "mtn annotate file" and "mtn log file" are generally much
605 faster now, dependant on the number of revisions that
606 changed the file. Both commands as well as "mtn automate
607 toposort" make use of data called "heights" caching the
608 topological order of all revisions.
609
610 - spawn_redirected hook function now understands a blank
611 filename to mean not to redirect that stream
612
613 - "mtn log" is now in proper topological order, also due to
614 the use of cached "heights" data
615
616 - reset options between "automate stdio" commands
617
618 - another compile fix for gcc3
619
620 - bug in localization code where option strings where not
621 always properly translated
622
623
624 Other
625
626 - botan library upgraded to 1.6.0
627
628 - accommodate changes in boost 1.34
629
630 - documentation for "mtn automate get_option"
631
632 - notes/ directory
633
634
635
636Sat Nov 11 11:06:44 PST 2006
637
638 0.31 release. Code cleanups and bug fixes.
639
640 New features:
641
642 - If multiple --message (or -m) arguments are passed to
643 'commit', then they will be concatenated on separate lines.
644
645 - The validate_commit_message hook is now told what branch the
646 commit is on.
647
648 Bugs fixed:
649
650 - The typo that prevented building with gcc 3.3 has been
651 fixed.
652
653 - Attempting to commit without a signing key available now
654 fails earlier.
655
656 - Command-line option parsing has been redone yet again; this
657 should fix a number of bugs caused by the use of
658 boost::program_options. For instance, command line error
659 messages are now l10nized again, "--depth=asdf" now gives a
660 sensible error message instead of crashing, and --key= now
661 works as an alternative to -k "".
662
663 - A bug in the new roster caching logic that caused assertion
664 failures on very large trees has been fixed.
665
666 - A rare bug in the "epoch refinement" phase of the netsync
667 protocol has been fixed.
668
669 - Accidental (and undocumented) change to 'automate inventory'
670 output format reverted; documentation is now correct again.
671
672 - Some obscure error conditions with 'pivot_root' fixed.
673
674 Many fixes to 'automate stdio':
675
676 - IO handling has been rewritten, to remove some
677 obscure bugs and clean up the code.
678
679 - automate commands can now take options (even when used with
680 'automate stdio').
681
682 - The default block size has been increased to 32k (which
683 should considerably reduce overhead).
684
685 - Many automate commands were flushing their output far too
686 often, causing major slowdowns when used with 'automate
687 stdio'; this has been fixed.
688
689 - Syntax errors now cause 'automate stdio' to exit, rather
690 than attempting to provide usage information for the calling
691 program to read.
692
693 Other:
694
695 - New large-coverage random testsuite for delta reconstruction
696 path finding algorithm.
697
698 - Miscellaneous code cleanups and improved error messages.
699
700 - Enhancements to debian packaging.
701
702 - New translation to es (Spanish).
703
704Sun Sep 17 12:27:08 PDT 2006
705
706 0.30 release. Speed improvements, bug fixes, and improved
707 infrastructure.
708
709 Several internal data formats have changed with this release;
710 migration is straight-forward, but slightly more complicated
711 than usual:
712 -- The formats used to store some cached data in the
713 database have changed. To upgrade your databases, you
714 must run:
715 $ mtn -d mydb.mtn db migrate
716 $ mtn -d mydb.mtn db regenerate_rosters
717 -- The metadata stored in _MTN in each workspace has been
718 rearranged slightly. To upgrade your workspaces, you
719 must run
720 $ mtn migrate_workspace
721 in each workspace.
722 All of these operations are completely lossless, and 0.30
723 remains compatible with earlier versions with regards to
724 netsync.
725
726 Speed improvements:
727
728 - Algorithm used to find branch heads rewritten, to use vastly
729 less memory and cpu. This not only makes 'mtn heads'
730 faster, but also 'mtn commit', 'mtn update', and other
731 commands, which were spending most of their time in this
732 code.
733
734 - The format used in the database to store the roster cache
735 was rewritten. This makes initial pull approximately twice
736 as fast, and somewhat improves the speed of restricted log,
737 annotate, and so on.
738
739 - The xdelta algorithm was further optimized.
740
741 - A memory leak in Botan was fixed, which was causing
742 excessive memory and CPU time to be spent during 'mtn
743 checkout'.
744
745 - Monotone has fast-paths for doing character set conversion
746 when the system it is running on uses plain ASCII. These
747 fast-paths now know that "646" is another name used for
748 ASCII, and systems that use this name (like some BSDs) now
749 benefit from the fast-paths.
750
751 - Miscellaneous other improvements.
752
753 Workspace format changes:
754
755 - It is now possible to write down a multi-parent (merge)
756 workspace. However, monotone will still refuse to work with
757 such a workspace, and there is no way to create one. This
758 change merely sets up infrastructure for further changes.
759
760 - _MTN/revision no longer contains only the parent revision
761 id; if you depended on this in scripts, use 'mtn automate
762 get_base_revision_id' instead. Also, _MTN/work has been
763 removed.
764
765 UI changes:
766
767 - 'mtn status' now includes the branch name and parent
768 revision id in its output.
769
770 - The output of 'mtn annotate' and 'mtn annotate --brief' has
771 been switched. The more human-readable output is now the
772 default.
773
774 - 'mtn pluck' now gives an error message if the requested
775 operation would have no effect.
776
777 - On command line syntax errors, usage information is now
778 printed to stderr instead of stdout. (Output requested with
779 --help still goes to stdout.) This should make it easier to
780 find bugs in scripts.
781
782 Bug fixes:
783
784 - While changelog messages have always been defined to UTF-8,
785 we were not properly converting messages from the user's
786 locale. This has now been fixed.
787
788 - An off-by-one error that caused some operations to abort
789 with an error message about "cancel_size <
790 pending_writes_size" has been fixed.
791
792 - In 0.29, --help output was not localized. This has been
793 fixed.
794
795 - In 0.29, setting merger = "emacs" would not work unless
796 EDITOR was also set to "emacs" (and similar for vi). This
797 has been fixed.
798
799 - A rare invariant violation seen when performing certain
800 sequences of renames/adds in the workspace has been fixed.
801
802 - If a user failed to resolve the conflicts in a text file, we
803 would continue asking them to resolve conflicts in remaining
804 files, even though the merge could not succeed. We now exit
805 immediately on failure.
806
807 - Work around some g++ 3.3 brokenness.
808
809 Documentation changes:
810
811 - Imported *-merge documents into the manual (they still need
812 to be cleaned up to fit in better).
813
814 Changes to automate:
815
816 - Bug fix in 'attributes': this command is supposed to list
817 attributes that were removed from a file in the current
818 revision; instead, it was listing all attributes that had
819 ever been removed from that file. Now fixed.
820
821 - New command 'get_corresponding_path': given a revision A, a
822 path P, and a revision B, looks up the file with name P in
823 revision A, and states what path it had in revision B.
824
825 - New command 'get_content_changed': given a revision A and a
826 path P, gives the ancestor of A in which P was last
827 modified.
828
829 - New command 'get_option': Fetches variables from
830 _MTN/options (e.g., the current workspace's branch and
831 database).
832
833 - New command 'genkey': an automate-friendly way to generate a
834 new monotone key.
835
836Sun Aug 20 15:58:08 PDT 2006
837
838 0.29 release. Code cleanups and bug fixes.
839
840 New features:
841
842 - The output of 'mtn status' has been changed significantly; the
843 output formerly used by 'mtn status --brief' has become the
844 default. For output similar to the old 'mtn status', see
845 'mtn automate get_revision'.
846
847 - It is now significantly easier to control what merger
848 monotone uses to resolve conflicts; for instance, to use
849 emacs to resolve conflicts, add:
850 merger = "emacs"
851 to your .monotonerc file. To override temporarily, you can
852 also use the environment variable MTN_MERGE, which takes the
853 same strings. Currently recognized strings are "kdiff3",
854 "xxdiff", "opendiff", "tortoisemerge", "emacs", "vim", and
855 "meld".
856
857 - Formerly, monotone's sync-over-ssh support required that an
858 absolute path be used, with a URL like:
859 ssh://venge.net/home/njs/my-db.mtn
860 The following syntaxes are now supported as well:
861 ssh://venge.net/~/my-db.mtn
862 ssh://venge.net/~njs/my-db.mtn
863
864 Bugs fixed:
865
866 - The bug where monotone would sometimes respond to a control-C
867 (or several other signals) by locking up and refusing to exit,
868 has been fixed.
869
870 - Monotone now properly respects SIGPIPE. In particular, this
871 means that 'mtn log | less' should now exit promptly when
872 'less' is exited.
873
874 - 'mtn log' now flushes its output after each message; this
875 makes 'mtn log <FILES>' significantly more usable.
876
877 - 'mtn log <FILES>' formerly listed irrelevant revisions (in
878 particular, any revision which contained a delete of any files
879 or directories, was always included). This has been fixed.
880
881 - If, during an update, two files both had conflicts, which,
882 when resolved, resulting the two files becoming identical, the
883 update would error out. This has been fixed.
884
885 - If _MTN/log exists and does not end in a newline, we now add a
886 newline before using the log message. This removes a problem
887 where the string "MTN:" would end up appended to the last line
888 of the log message.
889
890 - We no longer buffer up an arbitrarily large number of pending
891 writes in the database. This improves speed and memory usage
892 for 'commit', and fixes the problem where 'cvs_import' would
893 run out of memory.
894
895 - Monotone's tree walking code (used by 'ls unknown', 'ls
896 missing', and friends) now uses much less memory, especially
897 on reiserfs.
898
899 Automate changes:
900
901 - 'mtn automate stdio' now uses a configurable block size,
902 controlled by command-line option --automate-stdio-size. This
903 is mostly useful for testing speed/memory trade-offs.
904
905 - 'automate attributes' has a new format, which includes more
906 information.
907
908 Code cleanup:
909
910 - We now use boost::program_options to parse command line
911 options, rather than popt. The only user-visible change
912 should be that --option="" no longer works as a way to set
913 some option to the empty string; use --option "". (This
914 change also removes a lot of orphaned and historically buggy
915 code from monotone.)
916
917 Other:
918
919 - zsh completion script significantly revised and updated (see
920 contrib/monotone.zsh_completion).
921
922Sat Jul 22 01:39:51 PDT 2006
923
924 0.28 release. Cherrypicking, a new testsuite, and some fixes
925 and enhancements.
926
927 New features:
928
929 - Cherrypicking with the new "pluck" command. This takes (a restricted
930 subset of) the changes in a revision, or between two
931 revisions, and applies them to your workspace. That this
932 has happened is not recorded in history; it as if you
933 happened to make some very similar changes by hand in your
934 workspace.
935 - New automate commands, "automate tags" and "automate branches".
936 - "diff" now knows how to find enclosing function (or
937 whatever) bodies, just like GNU diff's "-p" option.
938 -- The regex that defines "enclosing function" can be chosen
939 on a per-file basis by a hook function; the default hook
940 knows about LaTeX, Texinfo, and most programming
941 languages.
942 -- This is enabled by default; use --no-show-encloser to
943 disable.
944
945 Enhancements:
946
947 - When netsync fails due to permission errors, the server returns a
948 semi-intelligible message before dropping the connection.
949 - When merging a branch with 3 or more heads, the order in which to
950 merge the heads will now automatically be chosen to minimize
951 the amount of repeated work that must be done.
952 - Crash dumps are now written to $CONFDIR/dump when no workspace is
953 available
954 - Path validation routines are faster.
955 - Inodeprints should be slightly more robust now.
956 - New hook get_mtn_command, used to determine the path to the
957 mtn binary on a remote host, when using ssh support.
958 - "diff" now accepts "-u" and "-c" as short for "--unified"
959 (the default) and "--context", respectively.
960
961 Bug fixes:
962
963 - "revert --missing" now works when run in a subdirectory.
964 - "revert --missing" now works without any additional files
965 being specified. (You don't have to say "mtn revert
966 --missing .".)
967 - Fix an edge case where monotone would crash if there was a
968 content conflict in a merge for which there was no lca.
969 - Fix a case where netsync would sometimes hang during refinement.
970 - "mtn help" and "mtn --help" now exit with return code 0.
971
972 Build environment:
973
974 - automake 1.9 is now required.
975 - The testsuite has been rewritten, and should be much faster now. It
976 also no longer relies on the presence of a *nix userland.
977 - Add workaround for gcc 4.1.[01] bug causing "multiple
978 definition" errors.
979
980 Internal:
981
982 - Restrictions have been split into path_restrictions and
983 node_restrictions, and generally cleaned up more.
984
985Sat Jun 17 14:43:12 PDT 2006
986
987 0.27 release. Minor bug fixes and enhancements, plus ssh
988 support.
989
990 Major new features:
991
992 - Monotone can now push/pull/synchronize over arbitrary
993 bidirectional streams, not just raw TCP.
994 - File-to-file synchronization is enabled out of the box,
995 e.g.:
996 $ mtn -d db1.mtn sync file:/path/to/db2.mtn
997 - SSH synchronization is enabled out of the box, e.g.:
998 $ mtn -d local.mtn sync ssh://njs@venge.net/home/njs/remote.mtn
999 Note that this requires mtn be installed on the remote
1000 computer, and locks the remote database while running; it
1001 is not ideal for groups accessing a shared database.
1002 - New protocols can be defined with Lua hooks -- for
1003 example, someone could in principle make "$ mtn sync
1004 xmpp://njs@jabber.org" do something interesting.
1005 - See section "Other Transports" under "Advanced Uses" in the
1006 for more details.
1007
1008 Minor new features:
1009
1010 - Selectors now support escaping, e.g., b:foo\/bar can be used
1011 to refer to a branch with name "foo/bar" (normally / is a
1012 metacharacter that separates multiple selectors).
1013 - Visual C++ can now build monotone on Windows. (Mostly
1014 important because it allows better Windows debugging.)
1015 - --quiet now turns tickers off, and does not turn warnings
1016 off. New option --reallyquiet disables warnings as well.
1017 - New command 'automate common_ancestors'.
1018 - 'ls branches' now takes a pattern, e.g.:
1019 $ mtn ls branches "*contrib*"
1020
1021 Speed improvements:
1022
1023 - Bug in select() loop fixed, server should no longer pause in
1024 processing other clients while busy with one, but multiplex
1025 fairly.
1026 - The database has a new write buffer which gives significant
1027 speed improvements in initial pulls by cancelling redundant
1028 database writes.
1029 - There's been a fair bit of performance tuning all around.
1030
1031 Bug fixes:
1032
1033 - Merge tools that exit in failure are now detected.
1034 - Better reporting of operating system errors on Win32.
1035 - Passphrases stored in ~/.monotonerc are no longer written to
1036 the log file. (Passphrases entered at the terminal were
1037 never written to the log file.)
1038 - Fix sql injection bugs in selectors, making it safe to
1039 expose slectors in web interfaces etc.
1040 - Files marked with the mtn:execute attr now respect umask.
1041 - 'automate' commands on Win32 now disable newline translation
1042 on their output; this is especially important for 'automate
1043 stdio'.
1044 - 'db check' now calls the sqlite "PRAGMA integrity_check", to
1045 validate the integrity of things like sqlite indices.
1046 - 'mtn annotate nonexistent-file' now gives a proper error
1047 message, instead of an assertion error.
1048 - 'mtn revert --missing' now works correctly when run in a
1049 subdirectory.
1050 - 'automate inventory' no longer fails when _MTN/work contains
1051 patch stanzas.
1052
1053 Other:
1054
1055 - Many, many internal code cleanups
1056 - Including changes to somewhat reduce the size of the
1057 binary
1058 - New tutorial on using packets added to the manual
1059 - Updated translations, improved error messages, etc.
1060
1061 Reliability considerations:
1062
1063 - In the two months since 0.26 was released, zero serious bugs
1064 have been reported in the new code.
1065
1066Sat Apr 8 19:33:35 PDT 2006
1067
1068 0.26 release. Major enhancements and internal rewrites.
1069 Please read these notes carefully, as significant changes are
1070 described. In particular, you _cannot_ upgrade to 0.26
1071 without some attention to the migration, especially if you are
1072 working on a project with other people. See UPGRADE for
1073 details of this procedure.
1074
1075 The changes are large enough that there were 3 pre-releases of
1076 this code; the changes that occurred in each can be seen
1077 below. However, for the convenience of those following
1078 releases, all changes since 0.25 will be summarized in these
1079 release notes. There is no need to read the pre-release notes
1080 individually.
1081
1082 Major changes since 0.25:
1083
1084 - The most user-visible change is that the default name of the
1085 monotone binary has changed to 'mtn'. So, for example, you
1086 would now run 'mtn checkout', 'mtn diff', 'mtn commit',
1087 etc., instead of 'monotone checkout', 'monotone diff',
1088 'monotone commit'.
1089 - Similarly, the name of the workspace bookkeeping directory
1090 has changed from "MT" to "_MTN". As workspaces will
1091 generally be recreated when migrating to this release,
1092 this should not cause any problems.
1093 - Similarly, built-in attrs like 'execute' have had 'mtn:'
1094 prepended to their names. For example, executable files
1095 should now have the attr 'mtn:execute' set to 'true' on
1096 them. The migration code will automatically add this
1097 prefix; no user intervention is needed.
1098 - Similarly, the name of the ignore file has changed from
1099 '.mt-ignore' to '.mtn-ignore'. The migration code will
1100 automatically rename this file; no user intervention is
1101 needed.
1102 - Similarly, the recommended suffix for monotone db files is
1103 now '.mtn'.
1104 These changes are all purely cosmetic, and have no affect on
1105 functionality.
1106
1107 - The most developer-visible change is that the data
1108 structure for representing trees has been completely
1109 replaced, and all related code rewritten. The new data
1110 structure is called a 'roster'. You don't really need to
1111 know this name; unless you are hacking on monotone or using
1112 various debug operations, you will never see a roster.
1113 It's mostly useful to know that when someone says something
1114 about 'roster-enabled monotone' or the like, they're
1115 referring to this body of new code.
1116
1117 This change has a number of consequences:
1118 - The textual format for revisions and manifests changed.
1119 There is no conceptual change, they still contain the same
1120 information and work the same way. The formats were
1121 merely cleaned up to correct various problems experience
1122 showed us, and allow various enhancements now and in the
1123 future. However, this change means that a flag-day
1124 migration is required. See UPGRADE for details.
1125 - Directories are now first-class objects. You can add an
1126 empty directory, must drop a directory if you want it to
1127 go away, etc.
1128 - Attrs are now first-class objects. '.mt-attrs' no longer
1129 exists; attrs are now described directly in the manifest,
1130 and changes to them appear directly in revisions. The
1131 migration code will automatically convert existing
1132 .mt-attrs files to the new first-class attrs. If you have
1133 custom attrs, those may require special handling -- if
1134 this is the case, then the upgrader will tell you.
1135 - The merge code has been rewritten completely. The
1136 interface is currently the same (though this rewrite makes
1137 it easier to improve the interface going forward); if you
1138 have found merging in monotone to be easy in the past,
1139 then you will not notice anything different. If you have
1140 run into problems, then the new merger should make your
1141 life substantially simpler. It has full support for
1142 renames (of both directories and files), intelligent
1143 merging of attrs, improved handling of file content
1144 merges. Is the first known merger implementation based on
1145 a provably correct algorithm (the "multi-*-merge"
1146 algorithm), has exhaustive automated tests, and generally
1147 should give accurate, conservative merges.
1148 - The new code is generally faster, though not yet as
1149 fast as it could be.
1150
1151 Netsync changes:
1152
1153 - The default netsync port has changed 5253 to 4691. 4691 is
1154 our official IANA-assigned port. Please adjust firewalls
1155 appropriately.
1156
1157 - Netsync code has also been largely reworked; new code should
1158 provide better opportunities for optimizations going
1159 forward.
1160
1161 - The protocol is incompatible with earlier versions of
1162 monotone. This should not be a surprise, since the data it
1163 carries is also incompatible (see above)...
1164
1165 New features:
1166
1167 - New option --brief to 'annotate', gives somewhat more
1168 friendly output.
1169
1170 - Several enhancements to log:
1171 - New option --next, to display descendent revisions
1172 (rather than ancestor revisions).
1173 - When 'log -r' is given an ambiguous selector, it now just
1174 logs all matching revisions, instead of requiring the
1175 selector be disambiguated.
1176 - New option --no-files.
1177
1178 - New command 'show_conflicts', performs a dry run merge.
1179
1180 - New command 'ls changed'.
1181
1182 - 'rename' (and its alias 'mv') now accept a broader range of
1183 syntax:
1184 mtn rename foo some_dir
1185 -> renames foo to some_dir/foo
1186 mtn rename foo bar baz some_dir
1187 -> moves foo, bar, and baz to some_dir/foo,
1188 some_dir/bar, and some_dir/baz
1189
1190 - New hook 'validate_commit_message', which may be used to
1191 verify that all commit messages meet arbitrary user-defined
1192 rules.
1193
1194 - New option --log, to log monotone's output to a file.
1195
1196 - New option 'drop --recursive', to remove a directory and its
1197 contents in one swoop.
1198
1199 - The root dir may now be renamed. This is a somewhat exotic
1200 feature, but has some interesting uses related to splitting
1201 up or joining together projects; see new commands
1202 'pivot_root', 'merge_into_dir'.
1203
1204 Minor bug fixes:
1205
1206 - 'serve' with no --bind argument should now work on systems
1207 where the C library has IPv6 support, but the kernel does
1208 not.
1209
1210 - Stricter checking on the internal version of filenames to
1211 ensure that they are valid UTF-8.
1212
1213 - If the database is in the workspace, then it is always
1214 ignored.
1215
1216 - Monotone no longer errors out when using a French (fr)
1217 locale with a non-Unicode codeset.
1218
1219 Other changes:
1220
1221 - Packet commands ('rdata', 'fdata', etc.) have been moved to
1222 'automate'.
1223
1224 - Database storage now uses sqlite's blob support; database
1225 files should be ~1/4 smaller as a result.
1226
1227 - Monotone now uses sqlite 3.3; this means that older versions
1228 of the command line client (e.g., an 'sqlite3' command built
1229 against sqlite version 3.2) cannot be used to poke at a
1230 monotone 0.26 database. Solution is to upgrade your sqlite3
1231 program. Hopefully this is irrelevant to most users...
1232
1233 - Translations updated, and 3 new translations added (de, it,
1234 sv).
1235
1236 Reliability considerations:
1237
1238 - This new codebase has received much less testing under real
1239 world conditions than the codebase used in 0.25, simply
1240 because it is newer. It has been in active use for monotone
1241 development since 8 January 2006, and only a small number of
1242 bugs have been found; all bugs found so far have been very
1243 minor, and none stood any danger of corrupting data.
1244 Furthermore, we are much more confident in the theoretical
1245 underpinnings of the new approach than the old, and the test
1246 suite attempts to exhaustively exercise all new code paths.
1247
1248 However, none of this is or can be a substitute for real
1249 world experience. We advise caution in upgrading to this
1250 version of monotone, and suggest that (especially) those who
1251 upgrade aggressively should pay extra attention to the
1252 monotone mailing list before and after doing so.
1253
1254Wed Mar 29 05:20:10 PST 2006
1255
1256 0.26pre3 release. This release may be considered a "release
1257 candidate", in that while we need to write some tests and make
1258 sure some bugs are fixed, all features are in and we hope that
1259 no further bug fixes will be needed either. It is still a
1260 pre-release for testing. Do not package it. DO NOT USE THIS
1261 RELEASE UNLESS YOU WANT TO BE A DAREDEVIL.
1262
1263 But, PLEASE PLEASE TEST this release. There are some
1264 non-trivial changes since 0.26pre2, and this is your last
1265 chance!
1266
1267 Major changes since 0.26pre2:
1268
1269 - The name of the monotone binary has changed to 'mtn'.
1270 - Similarly, the name of the bookkeeping directory in
1271 workspaces has changed from 'MT' to '_MTN' (if you have an
1272 existing 0.26-line workspace, just rename the MT directory
1273 to _MTN).
1274 - Similarly, the name of the ignore file has changed from
1275 ".mt-ignore" to ".mtn-ignore". 'rosterify' will rename
1276 these automatically (if you have already rosterified, you
1277 get to rename them by hand).
1278 - Similarly, the recommended suffix for monotone db files is
1279 now ".mtn".
1280
1281 - We now perform stricter checking to make sure that filenames
1282 are valid UTF-8. It is in principle possible that this
1283 stricter checking will cause histories that used to work to
1284 break; if you have non-ascii filenames, it is strongly
1285 recommended to test with this release.
1286
1287 - Root dir renaming is now supported. See new commands
1288 'pivot_root', 'merge_into_dir'.
1289 - As a side-effect, it is now possible to run 'rosterify' on
1290 histories in which two independent lines of history were
1291 merged.
1292
1293 - The security fix released in 0.25.2 has been forward-ported
1294 to this release; this prevents some security exposure to
1295 people running monotone as a client on case-insensitive file
1296 systems.
1297
1298 Minor change since 0.26pre2:
1299
1300 - Database now uses sqlite blobs for storage; should be ~1/4
1301 smaller.
1302 - New command: show_conflicts, does a dry-run merge.
1303 - New option 'drop --recursive', to remove a directory and all
1304 its contents in one swoop.
1305 - Changes to 'log':
1306 - New option --no-files
1307 - Including merges is again the default (i.e., it now acts
1308 like 0.25, and not like 0.26pre2).
1309 - When 'log -r' is given an ambiguous selector, it now just
1310 logs all matching revisions, instead of requiring the
1311 selector be disambiguated.
1312 - New option --log, to log monotone output to a file.
1313 - Netsync changes:
1314 - Was sending far too much data in some cases; now does not.
1315 - Several bugs that caused it to lock up fixed
1316 - Tweak to allow 'usher' proxy to transparently redirect
1317 based on client's protocol version, to ease migration
1318 between incompatible protocol versions.
1319 - Packet commands have been moved to 'automate'.
1320 - Fixed bugs in 'db kill_rev_locally', should no longer leave
1321 an inconsistent db behind.
1322 - Translation updates
1323
1324 Other projects receiving notable work:
1325
1326 - Monotone's "dumb server" support (repo distribution over
1327 HTTP/FTP/SFTP etc.) has been ported to 0.26, a first command
1328 line version written, etc.
1329 - The 'usher' netsync proxy used for hosting many databases on
1330 a single machine has received significant cleanups, and the
1331 'webhost' project to provide a simple interface to shared
1332 monotone hosting providers has received even more work.
1333
1334Sat Feb 11 13:32:51 PST 2006
1335
1336 0.26pre2 release. Inching towards 0.26. If you are using
1337 0.25 or earlier, then make sure to read the very important
1338 notes for 0.26pre1, below. In particular, like 0.26pre1, this
1339 is a pre-release for testing. Do not package it. DO NOT USE
1340 THIS RELEASE UNLESS YOU WANT TO BE A DAREDEVIL.
1341
1342 (Though, in fact, in a month of usage, only one bug has been
1343 found in the new history code, and it was both minor and
1344 harmless. It has additionally been fixed.)
1345
1346 Database changes:
1347
1348 - SQLite 3.3.3 has been imported. 3.3 introduces a new database
1349 format that is not backwards compatible with earlier 3.x releases.
1350 New databases will be created using this new format. Existing
1351 databases remain compatible, and are not converted automatically.
1352 Existing databases can be converted by performing a database
1353 vacuum ('monotone db execute vacuum').
1354
1355 New features:
1356
1357 - New hook validate_commit_message -- use to verify that all
1358 commit messages meet arbitrary user-defined rules.
1359
1360 UI improvements:
1361
1362 - rename (and mv) commands now accept a broader range of
1363 syntax:
1364 monotone rename foo some_dir
1365 -> renames foo to some_dir/foo
1366 monotone rename foo bar baz some_dir
1367 -> moves foo, bar, and baz to some_dir/foo,
1368 some_dir/bar, and some_dir/baz
1369 - Print a warning if it looks like a user has made a quoting
1370 mistake on push/pull/sync/serve (windows cmd.exe has
1371 confusing rules here).
1372 - New command "ls changed".
1373 - New option "--next" to log, which displays descendents of
1374 the start revision.
1375 - Updating to an arbitrary revision now works again (as it did
1376 in 0.25 and earlier). This allows one to, for instance,
1377 switch a working copy to another head, or back up to an
1378 earlier version, while preserving uncommitted changes.
1379 - New option --brief to annotate, gives somewhat more friendly
1380 output.
1381 - Fixed bug that made ticker output from netsync inaccurate.
1382 - In 'log', --no-merges is now the default, use --merges to
1383 override.
1384 - If the database is in the working copy, then it is always
1385 ignored.
1386
1387 Bugs:
1388
1389 - 'serve' with no --bind should now work on systems where the
1390 C library has IPv6 support, but the kernel does not.
1391 - Compile fixes for GCC 4.1 pre-releases.
1392
1393 Other:
1394 - Better detection when users have not run "rosterify", and
1395 more helpful suggestions on what to do in this case.
1396 - Documentation, translation, error message,
1397 etc. improvements.
1398 - Updates to contrib/mtbrowse.sh, simple shell-based monotone
1399 interface.
1400 - Updates to many other contrib/ files, mostly to maintain
1401 compatibility with monotone changes.
1402
1403Sun Jan 8 01:08:56 PST 2006
1404
1405 0.26pre1 release. Massive rewrites, released for shakedown.
1406 This release is also dedicated to Shweta Narayan.
1407
1408 This release includes massive changes compared to 0.25. The
1409 core versioning code has all been replaced with a completely
1410 different mechanism. Data formats and the netsync protocol
1411 have changed in incompatible ways.
1412
1413 Migration to 0.26pre1 or later is irreversible and requires a
1414 flag day for your project. See UPGRADE for details. Note
1415 that we DO NOT recommend upgrading at this time; see below.
1416
1417 If you have been following the development list for the last
1418 few months, you may have heard about "rosters" -- this is the
1419 name for the new core data structure we use. While the code
1420 is completely different, the user experience should not be
1421 very different. You will never see a roster, unless you are
1422 debugging monotone itself; everything still revolves around
1423 revisions, manifests, and certs.
1424
1425 While this new code has extensive tests, because of these
1426 incompatibilities, it has never been used for real work. The
1427 purpose of this release is to make a version available for the
1428 monotone developers to begin using for day-to-day work, to
1429 shake out bugs.
1430
1431 Let's say that again in caps: THIS CODE IS PROBABLY BUGGY, DO
1432 NOT USE IT IN PRODUCTION UNLESS YOU WANT TO BE A DAREDEVIL.
1433
1434 However, testing of this version with real databases is a good
1435 idea, and we'd very much appreciate hearing about your
1436 experiences.
1437
1438 Some of the many changes:
1439 - New textual format for revisions and manifests; they remain
1440 conceptually the same, but have been tweaked. Manifests
1441 now use the same "basic_io" format as everything else in
1442 monotone, and contain entries for directories, revisions
1443 record file adds slightly differently and record directory
1444 adds for the first time, etc. Because of this format
1445 change, revision hashes are now different; converting
1446 rosters requires a full history rebuild and reissue of certs.
1447 - Directories are now first class. To get rid of a directory
1448 you must remove it; to create a directory, you must add it.
1449 You can add an empty directory.
1450 - Attrs are now first class. The .mt-attrs file is gone;
1451 attributes are now stored directly in the manifest.
1452 - New merge algorithm, based on "multi-*-merge", and more
1453 aggressive, less buggy merge ancestor selection code
1454 - Netsync's core has been largely rewritten. Code is now much
1455 clearer and more reliable, and now includes the ability to
1456 resume interrupted partial transfers. The netsync protocol
1457 version number has been bumped, and netsync now runs on the
1458 IANA-assigned port 4691 by default.
1459 - 100% fewer change_set.cc related bugs. 100% more roster.cc
1460 related bugs. But the idea of touching roster.cc does not
1461 terrify people.
1462
1463Thu Dec 29 23:10:03 PST 2005
1464
1465 0.25 release.
1466
1467 Incompatible command line changes:
1468 - 'monotone revert' now requires an argument. To revert your
1469 entire working copy,
1470 $ monotone revert
1471 no longer works; instead, go to the root of your working
1472 copy and run
1473 $ monotone revert .
1474
1475 New features:
1476 - Netsync now supports IPv6 (where OS support exists)
1477
1478 Bugs fixed:
1479 - 'revert' gives feedback describing what it changes
1480 - Database locking further tweaked, to allow more concurrent
1481 access in situations where this is safe.
1482 - On win32, ticker display was fixed, so that it no longer
1483 prints a new line at each update.
1484 - 'read' can now understand (and migrate) privkey packets
1485 generated by monotone version 0.23 or earlier.
1486 - 'log --diffs <files>' now prints only diffs for the given
1487 files (previously, it would print only revisions in which
1488 the given files changed, but would print all diffs for those
1489 revisions).
1490 - Win9x and WinNT 4 compatibility fixes.
1491
1492 New translations:
1493 - pt_BR
1494
1495Sat Nov 27 22:29:38 PST 2005
1496
1497 0.24 release.
1498
1499 Configuration change (Windows only):
1500 - Configuration directory on Windows has changed. It used to
1501 be some complicated and varying function of %HOME%,
1502 %USERPROFILE%, %HOMEDRIVE%\%HOMEPATH%, whether you were
1503 running in mingw/cygwin, etc. It is now, always,
1504 %APPDATA%\monotone. For instance, if your configuration
1505 file used to be named
1506 ...\Documents and Settings\user\.monotone\monotonerc
1507 it will now be named
1508 ...\Documents and Settings\user\Application Data\monotone\monotonerc
1509 Please rename files appropriately.
1510
1511 Major key management changes:
1512 - Private keys are no longer stored in your database. They
1513 are stored in ~/.monotone/keys/ (Unix, OS X) or
1514 %APPDATA%\monotone\keys\ (Windows). 'db migrate' will
1515 automatically move your keys out of your database and into
1516 their proper location. Consequences:
1517 - 'genkey' no longer requires a database. Simply run it
1518 once when you first start using monotone, even before you
1519 have created a database.
1520 - Running 'genkey' once will suffice to give all databases
1521 on one computer access to your key. No more fiddling with
1522 'read'.
1523 - When you want to make your key available on another
1524 computer, simply copy over the appropriate file from your
1525 'keys' directory to the corresponding directory on the new
1526 computer.
1527 - Private keys also use a more standard on-disk envelope
1528 encoding ("PBE-PKCS5v20(SHA-1,TripleDES/CBC)") instead of
1529 previous ARC4. More secure, and with extra crypto karma.
1530
1531 Netsync changes:
1532 - Command line syntax for 'serve' changed; administrators WILL
1533 have to adjust scripts.
1534 monotone serve my.host.com "*"
1535 becomes
1536 monotone serve --bind=my.host.com "*"
1537 or simply
1538 monotone serve "*"
1539 (to serve on the default port, on all interfaces).
1540 - Speaking of which, we can now bind to all interfaces; run
1541 'serve' without passing --bind, or with passing
1542 --bind=:port, and monotone will listen on all interfaces.
1543 - New option '--key-to-push' for 'push', 'sync', allows
1544 administrator to push a new user's public key into a running
1545 server without restarting it.
1546 - Netsync permission hooks have new defaults that read a
1547 description of allowed access out of a standard,
1548 basic_io-based textfile (the same stanza-based format that
1549 revisions use). Current hooks will continue to work, but
1550 users may prefer to transition to this format; see manual
1551 for details.
1552 - Between these, it is now straightforward to change
1553 permissions and add users without restarting your server.
1554 - Improvements to experimental "usher" facility.
1555
1556 UI improvements:
1557 - New convenience options "add --unknown", "drop --missing",
1558 "revert --missing" do what you'd expect -- add all
1559 non-ignored non-versioned files, drop all
1560 deleted-but-undropped files, and restore all
1561 deleted-but-undropped files, respectively.
1562 - New selector "h:" to select heads of a branch. "h:" means
1563 heads of current branch, "h:mybranch" means heads of
1564 mybranch.
1565 - Similarly, "b:" selector with no argument now refers to
1566 current branch.
1567 - Commit messages now have a blank line at the top so you can
1568 start typing directly.
1569 - No more obscure error messages when multiple monotone
1570 processes attempt to access a single database at the same
1571 time; we now fail early with a more sensible error message.
1572 (Concurrent access has never caused database corruption;
1573 this simply makes the corruption prevention less frustrating
1574 for the user.)
1575 - New handlers for SIGTERM, SIGINT to rollback database
1576 transactions. Not visible to users (unless you're really
1577 looking carefully). (Again, killing monotone has never been
1578 able to cause database corruption; this simply causes the
1579 transactions to be rolled back immediately, rather than the
1580 next time monotone runs, which improves robustness in some
1581 theoretical way.)
1582
1583 Changes in 'automate':
1584 - New command 'automate keys' to get information on existing
1585 keys in basic_io format.
1586
1587 Updated translations:
1588 - fr
1589
1590 Smaller changes:
1591 - Improved handling of multibyte characters in message
1592 displays.
1593 - Fixes to Botan's memory allocator, to avoid pathological
1594 slowdowns in some rare cases.
1595 - Fix bug in delta-storage code; we were not being as aggressive
1596 about delta-compressing files and manifests as we should
1597 have been.
1598 - Minor bugs fixed, error messages improved.
1599
1600 - Upgrading from 0.23: You must run 'db migrate' and
1601 provide your password, for each database.
1602
1603Fri Sep 30 02:50:05 PDT 2005
1604
1605 0.23 release.
1606
1607 Possibly incompatible changes:
1608 - hook_note_commit and hook_note_netsync_revision_received
1609 take a new argument containing the text of the revision that
1610 was received. (Timothy Brownawell <tbrownaw@gmail.com>)
1611 - 'cat FILENAME' now acts like the old 'cat file REV
1612 FILENAME'; use new commands 'automate get_revision',
1613 'automate get_manifest', 'automate get_file' to fetch
1614 objects by hash. (Grahame Bowland <grahame@angrygoats.net>)
1615
1616 General improvements:
1617 - .mt-ignore support (Martin Dvorak
1618 <jezek2@advel.cz>, Timothy Brownawell <tbrownaw@gmail.com>)
1619 - much work on making monotone more i18n friendly (Benoît
1620 Dejean <benoit@placenet.org>, Matt Johnston
1621 <matt@ucc.asn.au>)
1622 - support for more interactive merge tools:
1623 - FileMerge.app (comes with OS X) (Marcel van der Boom
1624 <marcel@hsdev.com>)
1625 - TortoiseMerge (Win32; comes with TortoiseSVN) (Matthew
1626 Gregan <kinetik@orcon.net.nz>)
1627 - rename and drop now actually perform the specified rename or
1628 deletion when the argument --execute is passed. (Richard
1629 Levitte <richard@levitte.org>)
1630 - 'help' command, same as --help (Matt Johnston
1631 <matt@ucc.asn.au>).
1632 - 'usher' support: experimental method for proxying multiple
1633 netsync servers through a single port (similar concept to
1634 vhosts) (Timothy Brownawell <tbrownaw@gmail.com>)
1635 - support long passphrases (Matt Johnston <matt@ucc.asn.au>)
1636 - Faster binary file detection (Eric Anderson
1637 <anderse-monotone@cello.hpl.hp.com>)
1638 - netsync speedups:
1639 - when handling large files (Eric Anderson
1640 <anderse-monotone@cello.hpl.hp.com>)
1641 - when handling many branches (Marcel van der Boom
1642 <marcel@hsdev.com>)
1643 - new system to allow crash logs to contain not just execution
1644 traces, but also dumps of data being handled when the error
1645 was detected -- greatly improves debuggability of user
1646 crashes.
1647 - complete rework of path handling code, for clarity,
1648 robustness, and speed. No user visible changes, except for
1649 the many bugs fixed. (Special thanks to Matthew Gregan
1650 <kinetik@orcon.net.nz> and Grahame Bowland
1651 <grahame@angrygoats.net>.)
1652 - however, if you have non-normalized paths in your history
1653 (symptom: fresh pulls with 0.18 work, but fresh pulls with
1654 0.19 do not), then 0.23 will report an error and refuse to
1655 handle the affected revisions. Since it is believed this
1656 only affects one project, and to conserve core developer
1657 time, implementing a migration was put off for now. If
1658 this causes problems or for more details, please send an
1659 email to monotone-devel@nongnu.org.
1660 - as always, many small bug fixes, speedups, and improved
1661 messages.
1662
1663 New translations:
1664 - fr (Benoît Dejean <benoit@placenet.org>)
1665 - ja (Satoru SATOH <ss@gnome.gr.jp>)
1666
1667 Other new monotone-related projects since 0.22:
1668 - mtsh by Timothy Brownawell:
1669 https://netfiles.uiuc.edu/brownawe/www/mtsh/
1670 GTK+ wrapper for monotone focusing on working copy
1671 operations -- add/drop/revert/rename/commit/update/diff and
1672 browsing. Has a mechanism for per-file commit comments.
1673
1674 - "dumb server" support by Nathaniel Smith (share your
1675 monotone repositories via HTTP/FTP, no netsync daemon
1676 needed):
1677 http://viewmtn.angrygoats.net//branch.psp?branch=net.venge.monotone.dumb
1678 Still needs a command-line frontend to be usable, among
1679 other things. Help wanted. In python.
1680
1681 - m7 by Larry Hastings <larry@hastings.org>
1682 http://www.midwinter.com/~lch/programming/m7/
1683 Experimental drop-in command-line wrapper for monotone.
1684 Uses certs to add local incrementing version numbers, and an
1685 enhanced annotate front-end.
1686
1687Mon Aug 8 23:23:53 PDT 2005
1688
1689 0.22 release. new crypto library, bug fixes, ui improvements
1690
1691 - switch from crypto++ to botan as underlying crypto library.
1692 this should not cause any user-visible changes; let us know
1693 if it does. special thanks to Matt Johnston
1694 <matt@ucc.asn.au>, Kaushik Veeraraghavan
1695 <kaushikv@gmail.com>, Matthew Gregan
1696 <kinetik@orcon.net.nz>.
1697 - incompatible change to netsync permission hooks: the
1698 get_netsync_anonymous_read_permitted hook has been removed;
1699 instead, get_netsync_read_permitted will be called with a
1700 key name of nil. server administrators should update/review
1701 their configuration
1702 - new option for merge and propagate: --lca. Until we get a
1703 long-term solution to the various 3-way merge problems, this
1704 should be more convenient than using explicit_merge.
1705 - many small improvements to error messages, fixes of minor
1706 annoyances, netsync tickers more accurate, etc.
1707
1708Sun Jul 17 16:48:26 PDT 2005
1709
1710 0.21 release. bug fixes, performance improvements, and ui
1711 improvements.
1712
1713 - fixes a number of major performance bugs in 0.20's netsync
1714 implementation. special thanks to Matt Johnston
1715 <matt@ucc.asn.au>.
1716 - fixes a number of major bugs in 0.20's (rewritten)
1717 cvs_import command.
1718 - configury kluges to work around g++ 4.0/boost 1.32
1719 incompatibilities. special thanks to Christof Petig
1720 <christof@petig-baender.de>, Matthew Gregan
1721 <kinetik@orcon.net.nz>, Jordan Breeding
1722 <jordan.breeding@mac.com>.
1723 - ui enhancements:
1724 - new netsync option "--exclude": branches are included if
1725 they match any of the given globs, unless they match any
1726 of the given --exclude globs. special thanks to Timothy
1727 Brownawell <tbrownaw@gmail.com>.
1728 - new netsync option client "--set-default": makes it easy
1729 to change default server/branches.
1730 - "diff" now takes options "--context" and "--external", to
1731 output context diffs and to invoke an external diff
1732 program for full control over output formatting. new
1733 option "--diff-args" pass arguments to external diff
1734 program; new hook "external_diff" allows further
1735 configuration. special thanks to Vladimir Vukicevic
1736 <vladimirv@gmail.com>.
1737 - b: and t: selectors now match exactly, instead of matching
1738 as substrings. globbing is supported for inexact
1739 matching. special thanks to Brian Downing
1740 <bdowning@lavos.net>, Jordan Breeding
1741 <jordan.breeding@mac.com>.
1742 - new command 'db kill_tag_locally'. special thanks to Jordan
1743 Breeding <jordan.breeding@mac.com>.
1744 - now uses sqlite3 prepared statements. special thanks to
1745 Derek Scherger <derek@echologic.com>.
1746 - 'db migrate' is now a complete no-op if there is no
1747 migration to do; automated scripts can now call it
1748 optimistically and cheaply to guarantee up-to-dateness.
1749 - new hash correctness tests. special thanks to Kaushik
1750 Veeraraghavan <kaushikv@gmail.com>.
1751
1752 - upgrading from 0.20: you must run 'monotone db
1753 migrate' once against each of your databases, to add
1754 new sql indexes.
1755
1756Tue Jul 5 23:57:10 PDT 2005
1757
1758 0.20 release. features, ui improvements, performance
1759 improvements, and bug fixes.
1760
1761 - major changes in netsync UI: serve/sync/push/pull now take a
1762 list of globs; clients can request arbitrary sets of
1763 branches, not just predefined "collections". write
1764 permissions are now granted on a per-db level (they were
1765 before anyway).
1766 - where you used to say, e.g., "monotone pull
1767 net.venge.monotone", you should instead say
1768 "monotone pull net.venge.monotone*". This may
1769 require shell-quoting.
1770 - 'get_netsync_write_permitted' hooks must be changed
1771 to take only one argument, the 'identity'.
1772 'get_netsync_{read,anonymous_read}_permitted' hooks
1773 now take a branch argument instead of a collection,
1774 and will be called for each branch that a client
1775 requests.
1776 - 0.19 clients cannot talk to 0.20 servers, and vice-versa.
1777 - special thanks to Timothy Brownawell
1778 <tbrownaw@gmail.com>, Richard Levitte
1779 <richard@levitte.org>.
1780 - other major changes:
1781 - cvs_import re-written; many bugs fixed. now
1782 supports tags.
1783 - many minor netsync changes:
1784 - netsync traffic is now cryptographically authenticated
1785 against corruption and man-in-the-middle attacks.
1786 special thanks to Ethan Blanton <elb@elitists.net>,
1787 Matt Johnston <matt@ucc.asn.au>.
1788 - new hooks that are called when server receives data:
1789 note_netsync_*_received. special thanks to Timothy
1790 Brownawell <tbrownaw@gmail.com>.
1791 - ancestry graphs that pass outside the given branch
1792 are now synchronized correctly. special thanks to
1793 Timothy Brownawell <tbrownaw@gmail.com>.
1794 - UI improvements:
1795 - 'log' options changed: --depth has become --last;
1796 new options --no-merges, --diffs, --brief.
1797 - 'status' has new option --brief. special thanks to
1798 Derek Scherger <derek@echologic.com>.
1799 - 'serve' has new option --pid-file. special thanks
1800 to Matthew Gregan <kinetik@orcon.net.nz>.
1801 - all commands taking restrictions now take option
1802 --depth, to limit recursion through subdirectories.
1803 special thanks to Joel Reed <joelwreed@comcast.com>.
1804 - merge command all take --author, --date now.
1805 - 'checkout', 'update' take --revision, instead of
1806 using positional arguments. special thanks to Derek
1807 Scherger <derek@echologic.com>, Richard Levitte
1808 <richard@levitte.org>.
1809 - 'commit' takes new --message-file option.
1810 - new features:
1811 - new commands: "db kill_branch_locally", "db
1812 kill_revision_locally", useful for correcting some
1813 mistakes. special thanks to Brian Campbell
1814 <brian.p.campbell@dartmouth.edu>, Sebastian Spaeth
1815 <Sebastian@sspaeth.de>.
1816 - new file attribute 'manual_merge', to prevent invocation of
1817 merger on binary files. hook added to guess correct
1818 value at 'add' time. special thanks to Riccardo
1819 Ghetta <birrachiara@tin.it>.
1820 - new 'earlier than', 'later than' selectors. special
1821 thanks to Riccardo Ghetta <birrachiara@tin.it>.
1822 - new automate commands:
1823 - 'stdio', for efficient use by
1824 front-ends. special thanks to Timothy Brownawell
1825 <tbrownaw@gmail.com>.
1826 - 'certs', for fetching certs on a revision in a
1827 parseable (basic io-based) format. special thanks
1828 to Grahame Bowland <grahame@angrygoats.net>.
1829 - 'inventory' output changed incompatibly; should be
1830 much more usable now, and stable. special thanks to
1831 Derek Scherger <derek@echologic.com>.
1832 - better memory/performance when handling large files.
1833 special thanks to Eric Anderson
1834 <anderse-monotone@cello.hpl.hp.com>, Timothy Brownawell
1835 <tbrownaw@gmail.com>, Matt Johnston <matt@ucc.asn.au>,
1836 Matthew Gregan <kinetik@orcon.net.nz>.
1837 - new text mode browser in contrib/mtbrowse.sh, by Henry
1838 Nestler <Henry@BigFoot.de>.
1839 - improved zsh completion in contrib/monotone.zsh_completion,
1840 by Joel Reed <joelwreed@comcast.com>.
1841
1842 - upgrading from 0.19: database and working copies are
1843 fully compatible. netsync clients and servers need
1844 to be upgraded together, as described above. the
1845 many ui changes may require script updates.
1846
1847Tue May 3 00:31:37 PDT 2005
1848
1849 0.19 release. performance improvements, features, ui
1850 improvements, and bug fixes.
1851
1852 - many operations sped up by another factor of 2 or better.
1853 - special thanks to Matt Johnston <matt@ucc.asn.au>.
1854 - first steps towards automated benchmarking. Thanks
1855 to Timothy Brownawell <tbrownaw@gmail.com>.
1856 - new major features:
1857 - "annotate" command; still requires optimization.
1858 Thanks to Emile Snyder <emile@alumni.reed.edu>.
1859 - "inodeprints" for fast change detection in large
1860 working dirs now fully supported; see manual for
1861 details.
1862 - new minor features:
1863 - new selector "c:name=value" for selecting on
1864 arbitrary certs. Thanks to Richard Levitte
1865 <richard@levitte.org>.
1866 - new hooks to automatically initialize attributes on
1867 add; monotone now automatically sets execute bit on
1868 executables. Thanks to Joel Reed
1869 <joelwreed@comcast.net>.
1870 - new automate command "select", to do selector
1871 expansion. Thanks to Richard Levitte
1872 <richard@levitte.org>.
1873 - new automate commands "graph", "parents",
1874 "children", "ancestors", to easily inspect history.
1875 Special thanks to Sebastian Spaeth
1876 <Sebastian@SSpaeth.de>.
1877 - new command "db kill_rev_locally". Thanks to
1878 Sebastian Spaeth <Sebastian@sspaeth.de>.
1879 - new arguments to "commit": --author, --date; useful
1880 for patch attribution and importing history.
1881 - new automate command "inventory" (output format will
1882 change in next release, however). Thanks to Derek
1883 Scherger <derek@echologic.com>.
1884 - ui improvements:
1885 - netsync progress ticker in kilobytes/megabytes.
1886 Thanks to Matt Johnston <matt@ucc.asn.au> and
1887 Sebastian Spaeth <Sebastian@sspaeth.de>.
1888 - tickers do not cause annoying scrolling when wider
1889 than window. Special thanks to Matthew Gregan
1890 <kinetik@orcon.net.nz>.
1891 - warn users when a commit creates divergence, and
1892 when an update ignores it. Thanks to Jeremy Cowgar
1893 <jeremy@cowgar.com>.
1894 - support for command-specific options (there is still
1895 no rule that such options must appear after the
1896 command on the command line, though). Thanks to
1897 Richard Levitte <richard@levitte.org>.
1898 - bug fixes:
1899 - many cvs_import bugs fixed. Special thanks to Jon
1900 Bright <jon@siliconcircus.com>, Emile Snyder
1901 <emile@alumni.reed.edu>, Hansjoerg Lipp
1902 <hjlipp@web.de>, Matthew Gregan
1903 <kinetik@orcon.net.nz>.
1904 - windows/unix working copy line ending conversion now
1905 works correctly. Thanks to Emile Snyder
1906 <emile@alumni.reed.edu>.
1907 - many fixes to i18n-ized filename support
1908 - "drop" and "rename" now affect file attributes as
1909 well. Thanks to Richard Levitte
1910 <richard@levitte.org> and Joel Reed
1911 <joelwreed@comcast.com>.
1912 - better error reporting in netsync. Thanks to
1913 Grahame Bowland <grahame@angrygoats.net>.
1914 - only set working directory's default branch on some
1915 commands (update, commit). Thanks to Florian Weimer
1916 <fw@deneb.enyo.de>.
1917 - "db check" now sets exit status correctly, for use
1918 in scripts. Thanks to Derek Scherger
1919 <derek@echologic.com>.
1920 - many others...
1921 - fantastic emacs integration in contrib/monotone.el. Thanks
1922 to Harley Gorrell <harley@panix.com>.
1923 - 45 new integration tests. total line coverage: ~84%.
1924
1925 - upgrading from 0.18: database and working copies are
1926 fully compatible. NOTE that the configuration file
1927 is now ~/.monotone/monotonerc, rather than old
1928 ~/.monotonerc. Simply create ~/.monotone, and
1929 rename any existing configuration file.
1930
1931Sun Apr 10 17:49:25 PDT 2005
1932
1933 0.18 release. performance improvements, features, and bug fixes.
1934 This release is dedicated to Shweta Narayan.
1935
1936 - most operations sped up by a factor of 2 or better; many sped up
1937 by up several orders of magnitude.
1938 - special thanks to Matt Johnston <matt@ucc.asn.au>, Derek
1939 Scherger <derek@echologic.com>, Linus Torvalds
1940 <torvalds@osdl.org>.
1941 - new concept: "database vars". Used in several features below.
1942 - new features:
1943 - new file "MT/log" can be edited while you work,
1944 sets default changelog. (no change in behaviour if
1945 you do not edit it.) Thanks to Jeremy Cowgar
1946 <jeremy@cowgar.com>.
1947 - monotone now stores default netsync
1948 server/collection, initialized on first use of
1949 netsync.
1950 - you no longer need to manually import server
1951 keys, monotone will fetch the key from the server on
1952 first netsync.
1953 - monotone keeps track of keys of servers you have
1954 previously synced with, to prevent man-in-the-middle
1955 attacks.
1956 - several powerful new "automate" commands added.
1957 - new command 'ls known', lists files that are under version
1958 control. Thanks to Florian Weimer <fw@deneb.enyo.de>.
1959 - preliminary "inodeprints" functionality -- speeds up diff,
1960 status, etc. No UI or documentation yet -- in a working
1961 copy, 'touch MT/inodeprints' to enable, then commit or
1962 update to populate cache.
1963 - UI improvements:
1964 - Added short options -r, -b, -k, -m.
1965 - default to 'dot' ticker-style when stderr is
1966 not a tty, thanks to Derek Scherger
1967 <derek@echologic.com>.
1968 - New "-@/--xargs" option, helpful when using new
1969 automate commands. Thanks to Richard Levitte
1970 <richard@levitte.org>.
1971 - New "--depth" argument to 'log'. Thanks to Richard
1972 Levitte <richard@levitte.org>.
1973 - 'db info' gives statistics on space usage.
1974 - new command 'dropkey'. Thanks to Jeremy Cowgar
1975 <jeremy@cowgar.com>.
1976 - robustness improvement: if monotone crashes in a working
1977 directory and --dump and --debug were not specified, saves
1978 debug dump to "MT/debug" for analysis, instead of
1979 discarding.
1980 - new contributed scripts: CIA (cia.navi.cx) notification,
1981 email notification, Bash completion.
1982 - 33 new integration tests. total line coverage: ~82%.
1983 - many bug fixes
1984 - Special thanks to Matt Johnston <matt@ucc.asn.au>,
1985 for going above and beyond to track down the last
1986 release blocker.
1987
1988 - upgrading from 0.17 requires only a 'db migrate'.
1989
1990Fri Mar 18 15:38:52 PST 2005
1991
1992 0.17 release. bug fixes and features.
1993
1994 - many, many robustness improvements
1995 - more careful checking everywhere
1996 - much more thorough test suite
1997 - all revisions subject to careful checks before
1998 entering database
1999 - not yet fully optimized; "pull" may be very
2000 slow and use lots of cpu
2001 - support for "epochs", to safely manage future
2002 rebuilds, hash migration, etc.
2003 - new "db check" command, thanks to Derek Scherger
2004 <derek@echologic.com>.
2005 - now uses sqlite3, thanks to Christof Petig
2006 <christof@petig-baender.de>.
2007 - removes most former size limitations
2008 - "restrictions" support, thanks to Derek Scherger
2009 <derek@echologic.com>.
2010 - most commands now take a list of files to limit
2011 their actions to
2012 - monotone can now be run from anywhere in the working
2013 directory (not just the root)
2014 - new command "monotone setup" required to create a
2015 working directory for a new project
2016 - important security fix -- don't use shell when calling
2017 external merge commands.
2018 - format change for "MT/options", ".mt-attrs"; you may have to
2019 edit these files
2020 - new command "attr" for managing .mt-attrs.
2021 - builds merkle tries in-memory -- netsync starts up many
2022 times faster
2023 - start of new "automate" interface, for shell scripts and
2024 others.
2025 - new command "cdiff": generates context diffs.
2026 - remove most of now-obsolete manifest/file cert support.
2027 - 60+ new integration tests.
2028 - many portability fixes
2029 - in particular, major win32 cleanups, thanks to Jon
2030 Bright <jon@siliconcircus.com>. win32 is once again
2031 fully and natively supported.
2032 - many bug fixes
2033
2034 - several incompatible changes: see file UPGRADE for
2035 migration information
2036
2037Thu Dec 30 01:37:54 EST 2004
2038
2039 0.16 release. bug fixes.
2040
2041 - 50+ new integration tests
2042 - many NetBSD portability fixes
2043 - release build on gcc 3.4 / FC3
2044 - masses of changeset bugs in 0.15 fixed
2045
2046 - some bogus changesets were generated
2047 in the 0.16 development cycle. you will
2048 need to rebuild revision graph.
2049
2050
2051Sun Nov 7 14:06:03 EST 2004
2052
2053 0.15 release. major changes.
2054
2055 - overhauled the internal representation of changes. see
2056 README.changesets for details
2057 - fixed bugs in merkle trie synchronization code
2058 - fixed echoing and progress UI bugs
2059 (helps when using in emacs)
2060 - upgraded cryptopp to 5.2.1
2061 - fixed bug 8715, diff hunk coordinate reporting
2062 - added figures, new tutorial to manual
2063 - improve accuracy of log command
2064 - several build, configure, and linkage fixes
2065 - some OSX / PPC portability fixes
2066
2067Sat Jul 31 15:38:02 EDT 2004
2068
2069 0.14 release. bug fixes.
2070
2071 - some compile fixes for g++ 3.4
2072 - made --dump=FILE option for saving traces,
2073 otherwise failures just print reason (no trace)
2074 - some things disabled, as scheduled for replacement
2075 by upcoming changeset branch work
2076 - disabled "disapprove" command due to bad semantics
2077 - removed "bump" and .mt-nonce machinery
2078 - several critical rename-merging bugs fixed
2079 - renames vs. deletes
2080 - renames vs. deltas
2081 - parallel renames
2082 - bugs fixed from savannah bug tracker:
2083 - 9223 argv overflow
2084 - 9075 empty commits
2085 - 8919 rename --verbose to --debug
2086 - 8958 rename debug to db execute
2087 - 8920 empty passphrase message
2088 - 8917 connection refused message
2089 - 8913 testresult argument
2090 - 8912 passphrase read on serve
2091 - 8472 approve into branch
2092 - 8428 duplicate key warning
2093 - 8928 nonce uses too many bits
2094
2095Thu May 20 22:26:27 EDT 2004
2096
2097 0.13 release. bug fixes.
2098
2099 - remove (file|manifest) in several commands
2100 - "list missing" command
2101 - fixed bugs:
2102 - (critical) empty data netsync crash
2103 - mkstemp, platform lua
2104 - runtime error reporting chatter
2105 - non-posix database names
2106 - non-posix dirnames
2107 - non-posix merge names
2108 - 2-way merge algorithm and hook
2109 - single-character filenames
2110 - multiple password reads
2111 - .svn ignore pattern
2112
2113Sun May 2 21:03:38 EDT 2004
2114
2115 0.12 release. win32 port, bug fixes and optimizations.
2116
2117 - ported to native win32 (mingw)
2118 - implemented human friendly version selectors
2119 - added post-commit hook for change notification
2120 - removed spirit-based parsers, reduced compile costs
2121 - many netsync bugs removed, pipeline performance improved
2122 - removed old, deprecated networking system
2123 - several minor CVS import bugs fixed
2124 - upgraded bundled netxx
2125
2126Sun Mar 28 12:41:07 EST 2004
2127
2128 0.11 release. bug fixes and optimizations.
2129
2130 NOTE: this release expands the sqlite page size. YOU WILL NEED
2131 to dump existing databases before upgrading and reload it
2132 after upgrading, otherwise monotone will complain that the
2133 database image appears malformed. this condition cannot
2134 unfortunately be distinguished from a real malformed image on
2135 disk. for example:
2136
2137 $ monotone --db=my.db db dump >dump.sql
2138 $ <upgrade to new monotone>
2139 $ mv my.db my.db.backup
2140 $ monotone --db=my.db db load <dump.sql
2141
2142 - fixed bugs:
2143 - aliasing bug on debian (-O2 now works)
2144 - netsync ppc portability / checksums
2145 - sha1 whitespace bug
2146 - netsync broken formatter
2147 - broken symlink handling
2148 - merger execution pessimism
2149 - LCA bitset calculation pessimism
2150 - static object initialization order
2151 - CVS single-version import
2152 - CVS first-version changelog
2153 - CVS branch inference and topology
2154 - cryptographic SSE2 paths enabled on linux/x86.
2155 - builds against boost 1.31.0.
2156 - removed boost::socket
2157 - removed documentation about old networking system.
2158 - "officially" deprecated old networking system.
2159 - enable building with system-local libraries.
2160 - upgraded bundled sqlite.
2161 - changed sqlite page size from 1k -> 8k
2162
2163Mon Mar 1 00:32:07 EST 2004
2164
2165 0.10 release. new "netsync" protocol implemented, allowing
2166 direct monotone-to-monotone database synchronization. random
2167 number underflow problem fixed. more tests added. database
2168 schema changed, must migrate schema. added new QA logic to
2169 update and merge algorithms (testresult / approval).
2170
2171Thu Jan 1 18:23:06 EST 2004
2172
2173 0.9 release. support international users (non-ASCII character
2174 sets, locales). some corrections to update algorithm. line
2175 merging algorithm reimplemented. support working copy
2176 MT/monotonerc file. broke format compatibility with MT/work
2177 files; commit any pending work before upgrading. permit
2178 spaces, colons, other "funny" characters in filenames. support
2179 HTTP 1.1, HTTP proxies, handle some corner cases in ancestry
2180 graph and database faults.
2181
2182Fri Nov 21 20:25:26 EST 2003
2183
2184 0.8 release. row size increased to 16mb. more performance
2185 improvements in cvs importer. cvs branch tags imported now.
2186 minor UI improvements. new commands: SQL dump and load, vcheck
2187 for enhanced collision detection, queue addtree for recursive
2188 queueing. improved networking scalability. historical rename
2189 certs and .mt-attrs file format changed to accomodate upcoming
2190 i18n work.
2191
2192Sun Nov 2 23:38:09 EST 2003
2193
2194 0.7 release. many critical merge and patch set calculation
2195 bugs fixed. groups merged with URLs, "monotone db migrate"
2196 necessary. directory renames and explicit rename certs
2197 supported. added SMTP support. incorporated adns library,
2198 avoiding gethostbyname(). new queue commands.
2199
2200Sat Oct 18 22:10:09 EDT 2003
2201
2202 0.6 release. more stability and bug fixing, including fix to
2203 some silent failures in LCA calculation. some minor new
2204 features: persistent attributes (eg. 'the execute bit'),
2205 rename and log commands. performance of cvs importer greatly
2206 improved, lua system upgraded to 5.0, much expanded
2207 documentation.
2208
2209Sat Sep 27 11:50:08 EDT 2003
2210
2211 0.5 release. stability and bug fixing. many UI issues
2212 addressed, including SHA1 completion, persistent options, new
2213 revert command and new diff modes. database migration,
2214 inspection and debugging interfaces added. LCS algorithm and
2215 line-merger overhauled. several multi-depot bugs
2216 fixed. existing depot databases should be migrated (depot.cgi
2217 migratedb).
2218
2219Thu Sep 4 15:40:07 EDT 2003
2220
2221 0.4 release. monotone is now self-hosting. database
2222 compatibility broken since 0.3. depot uses RSA signatures now,
2223 not mac keys. many bugs removed. depot database compatibility
2224 broken. database schemas should now remain stable (or be
2225 provided with safe schema-upgrading function).
2226
2227Mon Aug 25 18:00:37 EDT 2003
2228
2229 0.3 release. database compatibility broken. packet format
2230 compatibility broken. dropped boost sandbox library dependency.
2231 redid networking to support private HTTP+CGI depots along with
2232 netnews. wrote depot. added 'propagate' command to move changes
2233 between branches asymmetrically. rewrote testsuite in autotest.
2234 cleaned up command line processing. expanded testsuite. improved
2235 user-friendly error reporting.
2236
2237Fri Aug 8 10:20:01 EDT 2003
2238
2239 0.2 release. database compatibility broken. dropped many
2240 library dependencies. hand-reimplemented xdelta, parts of
2241 nana. incorporated subset of cryptopp and sqlite into
2242 sources. added RCS and CVS importer. switched to piecewise
2243 reconstruction. generally much more robust storage system.
2244 scalability tests against real world CVS archives show
2245 performance gap with CVS closing, but still present.
2246
2247Sun Apr 6 20:20:42 EDT 2003
2248
2249 initial release

Archive Download this file

Branches

Tags

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