Below is the file 'NEWS' from this revision. You can also download the file.
Sun Jan 8 01:08:56 PST 2006
0.26pre1 release. Massive rewrites, released for shakedown.
This release is also dedicated to Shweta Narayan.
This release includes massive changes compared to 0.25. The
core versioning code has all been replaced with a completely
different mechanism. Data formats and the netsync protocol
have changed in incompatible ways.
Migration to 0.26pre1 or later is irreversible and requires a
flag day for your project. See UPGRADE for details. Note
that we DO NOT recommend upgrading at this time; see below.
If you have been following the development list for the last
few months, you may have heard about "rosters" -- this is the
name for the new core data structure we use. While the code
is completely different, the user experience should not be
very different. You will never see a roster, unless you are
debugging monotone itself; everything still revolves around
revisions, manifests, and certs.
While this new code has extensive tests, because of these
incompatibilities, it has never been used for real work. The
purpose of this release is to make a version available for the
monotone developers to begin using for day-to-day work, to
shake out bugs.
Let's say that again in caps: THIS CODE IS PROBABLY BUGGY, DO
NOT USE IT IN PRODUCTION UNLESS YOU WANT TO BE A DAREDEVIL.
However, testing of this version with real databases is a good
idea, and we'd very much appreciate hearing about your
experiences.
Some of the many changes:
- New textual format for revisions and manifests; they remain
conceptually the same, but have been tweaked. Manifests
now use the same "basic_io" format as everything else in
monotone, and contain entries for directories, revisions
record file adds slightly differently and record directory
adds for the first time, etc. Because of this format
change, revision hashes are now different; converting
rosters requires a full history rebuild and reissue of certs.
- Directories are now first class. To get rid of a directory
you must remove it; to create a directory, you must add it.
You can add an empty directory.
- Attrs are now first class. The .mt-attrs file is gone;
attributes are now stored directly in the manifest.
- New merge algorithm, based on "multi-*-merge", and more
aggressive, less buggy merge ancestor selection code
- Netsync's core has been largely rewritten. Code is now much
clearer and more reliable, and now includes the ability to
resume interrupted partial transfers. The netsync protocol
version number has been bumped, and netsync now runs on the
IANA-assigned port 4691 by default.
- 100% fewer change_set.cc related bugs. 100% more roster.cc
related bugs. But the idea of touching roster.cc does not
terrify people.
Thu Dec 29 23:10:03 PST 2005
0.25 release.
Incompatible command line changes:
- 'monotone revert' now requires an argument. To revert your
entire working copy,
$ monotone revert
no longer works; instead, go to the root of your working
copy and run
$ monotone revert .
New features:
- Netsync now supports IPv6 (where OS support exists)
Bugs fixed:
- 'revert' gives feedback describing what it changes
- Database locking further tweaked, to allow more concurrent
access in situations where this is safe.
- On win32, ticker display was fixed, so that it no longer
prints a new line at each update.
- 'read' can now understand (and migrate) privkey packets
generated by monotone version 0.23 or earlier.
- 'log --diffs <files>' now prints only diffs for the given
files (previously, it would print only revisions in which
the given files changed, but would print all diffs for those
revisions).
- Win9x and WinNT 4 compatibility fixes.
New translations:
- pt_BR
Sat Nov 27 22:29:38 PST 2005
0.24 release.
Configuration change (Windows only):
- Configuration directory on Windows has changed. It used to
be some complicated and varying function of %HOME%,
%USERPROFILE%, %HOMEDRIVE%\%HOMEPATH%, whether you were
running in mingw/cygwin, etc. It is now, always,
%APPDATA%\monotone. For instance, if your configuration
file used to be named
...\Documents and Settings\user\.monotone\monotonerc
it will now be named
...\Documents and Settings\user\Application Data\monotone\monotonerc
Please rename files appropriately.
Major key management changes:
- Private keys are no longer stored in your database. They
are stored in ~/.monotone/keys/ (Unix, OS X) or
%APPDATA%\monotone\keys\ (Windows). 'db migrate' will
automatically move your keys out of your database and into
their proper location. Consequences:
- 'genkey' no longer requires a database. Simply run it
once when you first start using monotone, even before you
have created a database.
- Running 'genkey' once will suffice to give all databases
on one computer access to your key. No more fiddling with
'read'.
- When you want to make your key available on another
computer, simply copy over the appropriate file from your
'keys' directory to the corresponding directory on the new
computer.
- Private keys also use a more standard on-disk envelope
encoding ("PBE-PKCS5v20(SHA-1,TripleDES/CBC)") instead of
previous ARC4. More secure, and with extra crypto karma.
Netsync changes:
- Command line syntax for 'serve' changed; administrators WILL
have to adjust scripts.
monotone serve my.host.com "*"
becomes
monotone serve --bind=my.host.com "*"
or simply
monotone serve "*"
(to serve on the default port, on all interfaces).
- Speaking of which, we can now bind to all interfaces; run
'serve' without passing --bind, or with passing
--bind=:port, and monotone will listen on all interfaces.
- New option '--key-to-push' for 'push', 'sync', allows
administrator to push a new user's public key into a running
server without restarting it.
- Netsync permission hooks have new defaults that read a
description of allowed access out of a standard,
basic_io-based textfile (the same stanza-based format that
revisions use). Current hooks will continue to work, but
users may prefer to transition to this format; see manual
for details.
- Between these, it is now straightforward to change
permissions and add users without restarting your server.
- Improvements to experimental "usher" facility.
UI improvements:
- New convenience options "add --unknown", "drop --missing",
"revert --missing" do what you'd expect -- add all
non-ignored non-versioned files, drop all
deleted-but-undropped files, and restore all
deleted-but-undropped files, respectively.
- New selector "h:" to select heads of a branch. "h:" means
heads of current branch, "h:mybranch" means heads of
mybranch.
- Similarly, "b:" selector with no argument now refers to
current branch.
- Commit messages now have a blank line at the top so you can
start typing directly.
- No more obscure error messages when multiple monotone
processes attempt to access a single database at the same
time; we now fail early with a more sensible error message.
(Concurrent access has never caused database corruption;
this simply makes the corruption prevention less frustrating
for the user.)
- New handlers for SIGTERM, SIGINT to rollback database
transactions. Not visible to users (unless you're really
looking carefully). (Again, killing monotone has never been
able to cause database corruption; this simply causes the
transactions to be rolled back immediately, rather than the
next time monotone runs, which improves robustness in some
theoretical way.)
Changes in 'automate':
- New command 'automate keys' to get information on existing
keys in basic_io format.
Updated translations:
- fr
Smaller changes:
- Improved handling of multibyte characters in message
displays.
- Fixes to Botan's memory allocator, to avoid pathological
slowdowns in some rare cases.
- Fix bug in delta-storage code; we were not being as aggressive
about delta-compressing files and manifests as we should
have been.
- Minor bugs fixed, error messages improved.
- Upgrading from 0.23: You must run 'db migrate' and
provide your password, for each database.
Fri Sep 30 02:50:05 PDT 2005
0.23 release.
Possibly incompatible changes:
- hook_note_commit and hook_note_netsync_revision_received
take a new argument containing the text of the revision that
was received. (Timothy Brownawell <tbrownaw@gmail.com>)
- 'cat FILENAME' now acts like the old 'cat file REV
FILENAME'; use new commands 'automate get_revision',
'automate get_manifest', 'automate get_file' to fetch
objects by hash. (Grahame Bowland <grahame@angrygoats.net>)
General improvements:
- .mt-ignore support (Martin Dvorak
<jezek2@advel.cz>, Timothy Brownawell <tbrownaw@gmail.com>)
- much work on making monotone more i18n friendly (Benoît
Dejean <benoit@placenet.org>, Matt Johnston
<matt@ucc.asn.au>)
- support for more interactive merge tools:
- FileMerge.app (comes with OS X) (Marcel van der Boom
<marcel@hsdev.com>)
- TortoiseMerge (Win32; comes with TortoiseSVN) (Matthew
Gregan <kinetik@orcon.net.nz>)
- rename and drop now actually perform the specified rename or
deletion when the argument --execute is passed. (Richard
Levitte <richard@levitte.org>)
- 'help' command, same as --help (Matt Johnston
<matt@ucc.asn.au>).
- 'usher' support: experimental method for proxying multiple
netsync servers through a single port (similar concept to
vhosts) (Timothy Brownawell <tbrownaw@gmail.com>)
- support long passphrases (Matt Johnston <matt@ucc.asn.au>)
- Faster binary file detection (Eric Anderson
<anderse-monotone@cello.hpl.hp.com>)
- netsync speedups:
- when handling large files (Eric Anderson
<anderse-monotone@cello.hpl.hp.com>)
- when handling many branches (Marcel van der Boom
<marcel@hsdev.com>)
- new system to allow crash logs to contain not just execution
traces, but also dumps of data being handled when the error
was detected -- greatly improves debuggability of user
crashes.
- complete rework of path handling code, for clarity,
robustness, and speed. No user visible changes, except for
the many bugs fixed. (Special thanks to Matthew Gregan
<kinetik@orcon.net.nz> and Grahame Bowland
<grahame@angrygoats.net>.)
- however, if you have non-normalized paths in your history
(symptom: fresh pulls with 0.18 work, but fresh pulls with
0.19 do not), then 0.23 will report an error and refuse to
handle the affected revisions. Since it is believed this
only affects one project, and to conserve core developer
time, implementing a migration was put off for now. If
this causes problems or for more details, please send an
email to monotone-devel@nongnu.org.
- as always, many small bug fixes, speedups, and improved
messages.
New translations:
- fr (Benoît Dejean <benoit@placenet.org>)
- ja (Satoru SATOH <ss@gnome.gr.jp>)
Other new monotone-related projects since 0.22:
- mtsh by Timothy Brownawell:
https://netfiles.uiuc.edu/brownawe/www/mtsh/
GTK+ wrapper for monotone focusing on working copy
operations -- add/drop/revert/rename/commit/update/diff and
browsing. Has a mechanism for per-file commit comments.
- "dumb server" support by Nathaniel Smith (share your
monotone repositories via HTTP/FTP, no netsync daemon
needed):
http://viewmtn.angrygoats.net//branch.psp?branch=net.venge.monotone.dumb
Still needs a command-line frontend to be usable, among
other things. Help wanted. In python.
- m7 by Larry Hastings <larry@hastings.org>
http://www.midwinter.com/~lch/programming/m7/
Experimental drop-in command-line wrapper for monotone.
Uses certs to add local incrementing version numbers, and an
enhanced annotate front-end.
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