monotone

monotone Mtn Source Tree

Root/NEWS

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

Archive Download this file

Branches

Tags

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