Below is the file 'NEWS' from this revision. You can also download the file.
Mon Aug 8 23:23:53 PDT 2005
0.22 release. new crypto library, bug fixes, ui improvements
- switch from crypto++ to botan as underlying crypto library.
this should not cause any user-visible changes; let us know
if it does. special thanks to Matt Johnston
<matt@ucc.asn.au>, Kaushik Veeraraghavan
<kaushikv@gmail.com>, Matthew Gregan
<kinetik@orcon.net.nz>.
- incompatible change to netsync permission hooks: the
get_netsync_anonymous_read_permitted hook has been removed;
instead, get_netsync_read_permitted will be called with a
key name of nil. server administrators should update/review
their configuration
- new option for merge and propagate: --lca. Until we get a
long-term solution to the various 3-way merge problems, this
should be more convenient than using explicit_merge.
- many small improvements to error messages, fixes of minor
annoyances, netsync tickers more accurate, etc.
Sun Jul 17 16:48:26 PDT 2005
0.21 release. bug fixes, performance improvements, and ui
improvements.
- fixes a number of major performance bugs in 0.20's netsync
implementation. special thanks to Matt Johnston
<matt@ucc.asn.au>.
- fixes a number of major bugs in 0.20's (rewritten)
cvs_import command.
- configury kluges to work around g++ 4.0/boost 1.32
incompatibilities. special thanks to Christof Petig
<christof@petig-baender.de>, Matthew Gregan
<kinetik@orcon.net.nz>, Jordan Breeding
<jordan.breeding@mac.com>.
- ui enhancements:
- new netsync option "--exclude": branches are included if
they match any of the given globs, unless they match any
of the given --exclude globs. special thanks to Timothy
Brownawell <tbrownaw@gmail.com>.
- new netsync option client "--set-default": makes it easy
to change default server/branches.
- "diff" now takes options "--context" and "--external", to
output context diffs and to invoke an external diff
program for full control over output formatting. new
option "--diff-args" pass arguments to external diff
program; new hook "external_diff" allows further
configuration. special thanks to Vladimir Vukicevic
<vladimirv@gmail.com>.
- b: and t: selectors now match exactly, instead of matching
as substrings. globbing is supported for inexact
matching. special thanks to Brian Downing
<bdowning@lavos.net>, Jordan Breeding
<jordan.breeding@mac.com>.
- new command 'db kill_tag_locally'. special thanks to Jordan
Breeding <jordan.breeding@mac.com>.
- now uses sqlite3 prepared statements. special thanks to
Derek Scherger <derek@echologic.com>.
- 'db migrate' is now a complete no-op if there is no
migration to do; automated scripts can now call it
optimistically and cheaply to guarantee up-to-dateness.
- new hash correctness tests. special thanks to Kaushik
Veeraraghavan <kaushikv@gmail.com>.
- upgrading from 0.20: you must run 'monotone db
migrate' once against each of your databases, to add
new sql indexes.
Tue Jul 5 23:57:10 PDT 2005
0.20 release. features, ui improvements, performance
improvements, and bug fixes.
- major changes in netsync UI: serve/sync/push/pull now take a
list of globs; clients can request arbitrary sets of
branches, not just predefined "collections". write
permissions are now granted on a per-db level (they were
before anyway).
- where you used to say, e.g., "monotone pull
net.venge.monotone", you should instead say
"monotone pull net.venge.monotone*". This may
require shell-quoting.
- 'get_netsync_write_permitted' hooks must be changed
to take only one argument, the 'identity'.
'get_netsync_{read,anonymous_read}_permitted' hooks
now take a branch argument instead of a collection,
and will be called for each branch that a client
requests.
- 0.19 clients cannot talk to 0.20 servers, and vice-versa.
- special thanks to Timothy Brownawell
<tbrownaw@gmail.com>, Richard Levitte
<richard@levitte.org>.
- other major changes:
- cvs_import re-written; many bugs fixed. now
supports tags.
- many minor netsync changes:
- netsync traffic is now cryptographically authenticated
against corruption and man-in-the-middle attacks.
special thanks to Ethan Blanton <elb@elitists.net>,
Matt Johnston <matt@ucc.asn.au>.
- new hooks that are called when server receives data:
note_netsync_*_received. special thanks to Timothy
Brownawell <tbrownaw@gmail.com>.
- ancestry graphs that pass outside the given branch
are now synchronized correctly. special thanks to
Timothy Brownawell <tbrownaw@gmail.com>.
- UI improvements:
- 'log' options changed: --depth has become --last;
new options --no-merges, --diffs, --brief.
- 'status' has new option --brief. special thanks to
Derek Scherger <derek@echologic.com>.
- 'serve' has new option --pid-file. special thanks
to Matthew Gregan <kinetik@orcon.net.nz>.
- all commands taking restrictions now take option
--depth, to limit recursion through subdirectories.
special thanks to Joel Reed <joelwreed@comcast.com>.
- merge command all take --author, --date now.
- 'checkout', 'update' take --revision, instead of
using positional arguments. special thanks to Derek
Scherger <derek@echologic.com>, Richard Levitte
<richard@levitte.org>.
- 'commit' takes new --message-file option.
- new features:
- new commands: "db kill_branch_locally", "db
kill_revision_locally", useful for correcting some
mistakes. special thanks to Brian Campbell
<brian.p.campbell@dartmouth.edu>, Sebastian Spaeth
<Sebastian@sspaeth.de>.
- new file attribute 'manual_merge', to prevent invocation of
merger on binary files. hook added to guess correct
value at 'add' time. special thanks to Riccardo
Ghetta <birrachiara@tin.it>.
- new 'earlier than', 'later than' selectors. special
thanks to Riccardo Ghetta <birrachiara@tin.it>.
- new automate commands:
- 'stdio', for efficient use by
front-ends. special thanks to Timothy Brownawell
<tbrownaw@gmail.com>.
- 'certs', for fetching certs on a revision in a
parseable (basic io-based) format. special thanks
to Grahame Bowland <grahame@angrygoats.net>.
- 'inventory' output changed incompatibly; should be
much more usable now, and stable. special thanks to
Derek Scherger <derek@echologic.com>.
- better memory/performance when handling large files.
special thanks to Eric Anderson
<anderse-monotone@cello.hpl.hp.com>, Timothy Brownawell
<tbrownaw@gmail.com>, Matt Johnston <matt@ucc.asn.au>,
Matthew Gregan <kinetik@orcon.net.nz>.
- new text mode browser in contrib/mtbrowse.sh, by Henry
Nestler <Henry@BigFoot.de>.
- improved zsh completion in contrib/monotone.zsh_completion,
by Joel Reed <joelwreed@comcast.com>.
- upgrading from 0.19: database and working copies are
fully compatible. netsync clients and servers need
to be upgraded together, as described above. the
many ui changes may require script updates.
Tue May 3 00:31:37 PDT 2005
0.19 release. performance improvements, features, ui
improvements, and bug fixes.
- many operations sped up by another factor of 2 or better.
- special thanks to Matt Johnston <matt@ucc.asn.au>.
- first steps towards automated benchmarking. Thanks
to Timothy Brownawell <tbrownaw@gmail.com>.
- new major features:
- "annotate" command; still requires optimization.
Thanks to Emile Snyder <emile@alumni.reed.edu>.
- "inodeprints" for fast change detection in large
working dirs now fully supported; see manual for
details.
- new minor features:
- new selector "c:name=value" for selecting on
arbitrary certs. Thanks to Richard Levitte
<richard@levitte.org>.
- new hooks to automatically initialize attributes on
add; monotone now automatically sets execute bit on
executables. Thanks to Joel Reed
<joelwreed@comcast.net>.
- new automate command "select", to do selector
expansion. Thanks to Richard Levitte
<richard@levitte.org>.
- new automate commands "graph", "parents",
"children", "ancestors", to easily inspect history.
Special thanks to Sebastian Spaeth
<Sebastian@SSpaeth.de>.
- new command "db kill_rev_locally". Thanks to
Sebastian Spaeth <Sebastian@sspaeth.de>.
- new arguments to "commit": --author, --date; useful
for patch attribution and importing history.
- new automate command "inventory" (output format will
change in next release, however). Thanks to Derek
Scherger <derek@echologic.com>.
- ui improvements:
- netsync progress ticker in kilobytes/megabytes.
Thanks to Matt Johnston <matt@ucc.asn.au> and
Sebastian Spaeth <Sebastian@sspaeth.de>.
- tickers do not cause annoying scrolling when wider
than window. Special thanks to Matthew Gregan
<kinetik@orcon.net.nz>.
- warn users when a commit creates divergence, and
when an update ignores it. Thanks to Jeremy Cowgar
<jeremy@cowgar.com>.
- support for command-specific options (there is still
no rule that such options must appear after the
command on the command line, though). Thanks to
Richard Levitte <richard@levitte.org>.
- bug fixes:
- many cvs_import bugs fixed. Special thanks to Jon
Bright <jon@siliconcircus.com>, Emile Snyder
<emile@alumni.reed.edu>, Hansjoerg Lipp
<hjlipp@web.de>, Matthew Gregan
<kinetik@orcon.net.nz>.
- windows/unix working copy line ending conversion now
works correctly. Thanks to Emile Snyder
<emile@alumni.reed.edu>.
- many fixes to i18n-ized filename support
- "drop" and "rename" now affect file attributes as
well. Thanks to Richard Levitte
<richard@levitte.org> and Joel Reed
<joelwreed@comcast.com>.
- better error reporting in netsync. Thanks to
Grahame Bowland <grahame@angrygoats.net>.
- only set working directory's default branch on some
commands (update, commit). Thanks to Florian Weimer
<fw@deneb.enyo.de>.
- "db check" now sets exit status correctly, for use
in scripts. Thanks to Derek Scherger
<derek@echologic.com>.
- many others...
- fantastic emacs integration in contrib/monotone.el. Thanks
to Harley Gorrell <harley@panix.com>.
- 45 new integration tests. total line coverage: ~84%.
- upgrading from 0.18: database and working copies are
fully compatible. NOTE that the configuration file
is now ~/.monotone/monotonerc, rather than old
~/.monotonerc. Simply create ~/.monotone, and
rename any existing configuration file.
Sun Apr 10 17:49:25 PDT 2005
0.18 release. performance improvements, features, and bug fixes.
This release is dedicated to Shweta Narayan.
- most operations sped up by a factor of 2 or better; many sped up
by up several orders of magnitude.
- special thanks to Matt Johnston <matt@ucc.asn.au>, Derek
Scherger <derek@echologic.com>, Linus Torvalds
<torvalds@osdl.org>.
- new concept: "database vars". Used in several features below.
- new features:
- new file "MT/log" can be edited while you work,
sets default changelog. (no change in behaviour if
you do not edit it.) Thanks to Jeremy Cowgar
<jeremy@cowgar.com>.
- monotone now stores default netsync
server/collection, initialized on first use of
netsync.
- you no longer need to manually import server
keys, monotone will fetch the key from the server on
first netsync.
- monotone keeps track of keys of servers you have
previously synced with, to prevent man-in-the-middle
attacks.
- several powerful new "automate" commands added.
- new command 'ls known', lists files that are under version
control. Thanks to Florian Weimer <fw@deneb.enyo.de>.
- preliminary "inodeprints" functionality -- speeds up diff,
status, etc. No UI or documentation yet -- in a working
copy, 'touch MT/inodeprints' to enable, then commit or
update to populate cache.
- UI improvements:
- Added short options -r, -b, -k, -m.
- default to 'dot' ticker-style when stderr is
not a tty, thanks to Derek Scherger
<derek@echologic.com>.
- New "-@/--xargs" option, helpful when using new
automate commands. Thanks to Richard Levitte
<richard@levitte.org>.
- New "--depth" argument to 'log'. Thanks to Richard
Levitte <richard@levitte.org>.
- 'db info' gives statistics on space usage.
- new command 'dropkey'. Thanks to Jeremy Cowgar
<jeremy@cowgar.com>.
- robustness improvement: if monotone crashes in a working
directory and --dump and --debug were not specified, saves
debug dump to "MT/debug" for analysis, instead of
discarding.
- new contributed scripts: CIA (cia.navi.cx) notification,
email notification, Bash completion.
- 33 new integration tests. total line coverage: ~82%.
- many bug fixes
- Special thanks to Matt Johnston <matt@ucc.asn.au>,
for going above and beyond to track down the last
release blocker.
- upgrading from 0.17 requires only a 'db migrate'.
Fri Mar 18 15:38:52 PST 2005
0.17 release. bug fixes and features.
- many, many robustness improvements
- more careful checking everywhere
- much more thorough test suite
- all revisions subject to careful checks before
entering database
- not yet fully optimized; "pull" may be very
slow and use lots of cpu
- support for "epochs", to safely manage future
rebuilds, hash migration, etc.
- new "db check" command, thanks to Derek Scherger
<derek@echologic.com>.
- now uses sqlite3, thanks to Christof Petig
<christof@petig-baender.de>.
- removes most former size limitations
- "restrictions" support, thanks to Derek Scherger
<derek@echologic.com>.
- most commands now take a list of files to limit
their actions to
- monotone can now be run from anywhere in the working
directory (not just the root)
- new command "monotone setup" required to create a
working directory for a new project
- important security fix -- don't use shell when calling
external merge commands.
- format change for "MT/options", ".mt-attrs"; you may have to
edit these files
- new command "attr" for managing .mt-attrs.
- builds merkle tries in-memory -- netsync starts up many
times faster
- start of new "automate" interface, for shell scripts and
others.
- new command "cdiff": generates context diffs.
- remove most of now-obsolete manifest/file cert support.
- 60+ new integration tests.
- many portability fixes
- in particular, major win32 cleanups, thanks to Jon
Bright <jon@siliconcircus.com>. win32 is once again
fully and natively supported.
- many bug fixes
- several incompatible changes: see file UPGRADE for
migration information
Thu Dec 30 01:37:54 EST 2004
0.16 release. bug fixes.
- 50+ new integration tests
- many NetBSD portability fixes
- release build on gcc 3.4 / FC3
- masses of changeset bugs in 0.15 fixed
- some bogus changesets were generated
in the 0.16 development cycle. you will
need to rebuild revision graph.
Sun Nov 7 14:06:03 EST 2004
0.15 release. major changes.
- overhauled the internal representation of changes. see
README.changesets for details
- fixed bugs in merkle trie synchronization code
- fixed echoing and progress UI bugs
(helps when using in emacs)
- upgraded cryptopp to 5.2.1
- fixed bug 8715, diff hunk coordinate reporting
- added figures, new tutorial to manual
- improve accuracy of log command
- several build, configure, and linkage fixes
- some OSX / PPC portability fixes
Sat Jul 31 15:38:02 EDT 2004
0.14 release. bug fixes.
- some compile fixes for g++ 3.4
- made --dump=FILE option for saving traces,
otherwise failures just print reason (no trace)
- some things disabled, as scheduled for replacement
by upcoming changeset branch work
- disabled "disapprove" command due to bad semantics
- removed "bump" and .mt-nonce machinery
- several critical rename-merging bugs fixed
- renames vs. deletes
- renames vs. deltas
- parallel renames
- bugs fixed from savannah bug tracker:
- 9223 argv overflow
- 9075 empty commits
- 8919 rename --verbose to --debug
- 8958 rename debug to db execute
- 8920 empty passphrase message
- 8917 connection refused message
- 8913 testresult argument
- 8912 passphrase read on serve
- 8472 approve into branch
- 8428 duplicate key warning
- 8928 nonce uses too many bits
Thu May 20 22:26:27 EDT 2004
0.13 release. bug fixes.
- remove (file|manifest) in several commands
- "list missing" command
- fixed bugs:
- (critical) empty data netsync crash
- mkstemp, platform lua
- runtime error reporting chatter
- non-posix database names
- non-posix dirnames
- non-posix merge names
- 2-way merge algorithm and hook
- single-character filenames
- multiple password reads
- .svn ignore pattern
Sun May 2 21:03:38 EDT 2004
0.12 release. win32 port, bug fixes and optimizations.
- ported to native win32 (mingw)
- implemented human friendly version selectors
- added post-commit hook for change notification
- removed spirit-based parsers, reduced compile costs
- many netsync bugs removed, pipeline performance improved
- removed old, deprecated networking system
- several minor CVS import bugs fixed
- upgraded bundled netxx
Sun Mar 28 12:41:07 EST 2004
0.11 release. bug fixes and optimizations.
NOTE: this release expands the sqlite page size. YOU WILL NEED
to dump existing databases before upgrading and reload it
after upgrading, otherwise monotone will complain that the
database image appears malformed. this condition cannot
unfortunately be distinguished from a real malformed image on
disk. for example:
$ monotone --db=my.db db dump >dump.sql
$ <upgrade to new monotone>
$ mv my.db my.db.backup
$ monotone --db=my.db db load <dump.sql
- fixed bugs:
- aliasing bug on debian (-O2 now works)
- netsync ppc portability / checksums
- sha1 whitespace bug
- netsync broken formatter
- broken symlink handling
- merger execution pessimism
- LCA bitset calculation pessimism
- static object initialization order
- CVS single-version import
- CVS first-version changelog
- CVS branch inference and topology
- cryptographic SSE2 paths enabled on linux/x86.
- builds against boost 1.31.0.
- removed boost::socket
- removed documentation about old networking system.
- "officially" deprecated old networking system.
- enable building with system-local libraries.
- upgraded bundled sqlite.
- changed sqlite page size from 1k -> 8k
Mon Mar 1 00:32:07 EST 2004
0.10 release. new "netsync" protocol implemented, allowing
direct monotone-to-monotone database synchronization. random
number underflow problem fixed. more tests added. database
schema changed, must migrate schema. added new QA logic to
update and merge algorithms (testresult / approval).
Thu Jan 1 18:23:06 EST 2004
0.9 release. support international users (non-ASCII character
sets, locales). some corrections to update algorithm. line
merging algorithm reimplemented. support working copy
MT/monotonerc file. broke format compatibility with MT/work
files; commit any pending work before upgrading. permit
spaces, colons, other "funny" characters in filenames. support
HTTP 1.1, HTTP proxies, handle some corner cases in ancestry
graph and database faults.
Fri Nov 21 20:25:26 EST 2003
0.8 release. row size increased to 16mb. more performance
improvements in cvs importer. cvs branch tags imported now.
minor UI improvements. new commands: SQL dump and load, vcheck
for enhanced collision detection, queue addtree for recursive
queueing. improved networking scalability. historical rename
certs and .mt-attrs file format changed to accomodate upcoming
i18n work.
Sun Nov 2 23:38:09 EST 2003
0.7 release. many critical merge and patch set calculation
bugs fixed. groups merged with URLs, "monotone db migrate"
necessary. directory renames and explicit rename certs
supported. added SMTP support. incorporated adns library,
avoiding gethostbyname(). new queue commands.
Sat Oct 18 22:10:09 EDT 2003
0.6 release. more stability and bug fixing, including fix to
some silent failures in LCA calculation. some minor new
features: persistent attributes (eg. 'the execute bit'),
rename and log commands. performance of cvs importer greatly
improved, lua system upgraded to 5.0, much expanded
documentation.
Sat Sep 27 11:50:08 EDT 2003
0.5 release. stability and bug fixing. many UI issues
addressed, including SHA1 completion, persistent options, new
revert command and new diff modes. database migration,
inspection and debugging interfaces added. LCS algorithm and
line-merger overhauled. several multi-depot bugs
fixed. existing depot databases should be migrated (depot.cgi
migratedb).
Thu Sep 4 15:40:07 EDT 2003
0.4 release. monotone is now self-hosting. database
compatibility broken since 0.3. depot uses RSA signatures now,
not mac keys. many bugs removed. depot database compatibility
broken. database schemas should now remain stable (or be
provided with safe schema-upgrading function).
Mon Aug 25 18:00:37 EDT 2003
0.3 release. database compatibility broken. packet format
compatibility broken. dropped boost sandbox library dependency.
redid networking to support private HTTP+CGI depots along with
netnews. wrote depot. added 'propagate' command to move changes
between branches asymmetrically. rewrote testsuite in autotest.
cleaned up command line processing. expanded testsuite. improved
user-friendly error reporting.
Fri Aug 8 10:20:01 EDT 2003
0.2 release. database compatibility broken. dropped many
library dependencies. hand-reimplemented xdelta, parts of
nana. incorporated subset of cryptopp and sqlite into
sources. added RCS and CVS importer. switched to piecewise
reconstruction. generally much more robust storage system.
scalability tests against real world CVS archives show
performance gap with CVS closing, but still present.
Sun Apr 6 20:20:42 EDT 2003
initial release