monotone

monotone Mtn Source Tree

Root/NEWS

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

Archive Download this file

Branches

Tags

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