monotone

monotone Mtn Source Tree

Root/NEWS

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

Archive Download this file

Branches

Tags

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