monotone

monotone Mtn Source Tree

Root/NEWS

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

Archive Download this file

Branches

Tags

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