monotone

monotone Mtn Source Tree

Root/NEWS

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

Archive Download this file

Branches

Tags

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