Commit graph

22 commits

Author SHA1 Message Date
dan
ab0530311a Fix a regression introduced between 0.29 and 0.30 detected when
handling large repositories like NetBSD src.  Problem found by riz@,
fix from mainline a:njs/d:2006-09-22T07:01:26, tested by me.

bump rev to nb1

ChangeLog:

2006-09-21  Nathaniel Smith  <njs@pobox.com>

        * lru_writeback_cache.hh (clean_insert): Correct the cache
        overflow logic so as to _actually_ never remove the last element.
        Add an invariant to verify this.
        (insert_dirty): Add an invariant here too.
2006-09-22 11:14:05 +00:00
jmmv
a16ab89c38 Fix build with gcc 3.x (dunno why it compiled with 4.x...). From riz@. 2006-09-20 13:10:10 +00:00
jmmv
4182437402 Update to 0.30. I think this is the first release that passes the full
test suite out of the box!

OK'ed by wiz@ during freeze.

        0.30 release.  Speed improvements, bug fixes, and improved
        infrastructure.

        Several internal data formats have changed with this release;
        migration is straight-forward, but slightly more complicated
        than usual:
          -- The formats used to store some cached data in the
             database have changed.  To upgrade your databases, you
             must run:
               $ mtn -d mydb.mtn db migrate
               $ mtn -d mydb.mtn db regenerate_rosters
          -- The metadata stored in _MTN in each workspace has been
             rearranged slightly.  To upgrade your workspaces, you
             must run
               $ mtn migrate_workspace
             in each workspace.
        All of these operations are completely lossless, and 0.30
        remains compatible with earlier versions with regards to
        netsync.

        Speed improvements:

        - Algorithm used to find branch heads rewritten, to use vastly
          less memory and cpu.  This not only makes 'mtn heads'
          faster, but also 'mtn commit', 'mtn update', and other
          commands, which were spending most of their time in this
          code.

        - The format used in the database to store the roster cache
          was rewritten.  This makes initial pull approximately twice
          as fast, and somewhat improves the speed of restricted log,
          annotate, and so on.

        - The xdelta algorithm was further optimized.

        - A memory leak in Botan was fixed, which was causing
          excessive memory and CPU time to be spent during 'mtn
          checkout'.

        - Monotone has fast-paths for doing character set conversion
          when the system it is running on uses plain ASCII.  These
          fast-paths now know that "646" is another name used for
          ASCII, and systems that use this name (like some BSDs) now
          benefit from the fast-paths.

        - Miscellaneous other improvements.

        Workspace format changes:

        - It is now possible to write down a multi-parent (merge)
          workspace.  However, monotone will still refuse to work with
          such a workspace, and there is no way to create one.  This
          change merely sets up infrastructure for further changes.

        - _MTN/revision no longer contains only the parent revision
          id; if you depended on this in scripts, use 'mtn automate
          get_base_revision_id' instead.  Also, _MTN/work has been
          removed.

        UI changes:

        - 'mtn status' now includes the branch name and parent
          revision id in its output.

        - The output of 'mtn annotate' and 'mtn annotate --brief' has
          been switched.  The more human-readable output is now the
          default.

        - 'mtn pluck' now gives an error message if the requested
          operation would have no effect.

        - On command line syntax errors, usage information is now
          printed to stderr instead of stdout.  (Output requested with
          --help still goes to stdout.)  This should make it easier to
          find bugs in scripts.

        Bug fixes:

        - While changelog messages have always been defined to UTF-8,
          we were not properly converting messages from the user's
          locale.  This has now been fixed.

        - An off-by-one error that caused some operations to abort
          with an error message about "cancel_size <
          pending_writes_size" has been fixed.

        - In 0.29, --help output was not localized.  This has been
          fixed.

        - In 0.29, setting merger = "emacs" would not work unless
          EDITOR was also set to "emacs" (and similar for vi).  This
          has been fixed.

        - A rare invariant violation seen when performing certain
          sequences of renames/adds in the workspace has been fixed.

        - If a user failed to resolve the conflicts in a text file, we
          would continue asking them to resolve conflicts in remaining
          files, even though the merge could not succeed.  We now exit
          immediately on failure.

        - Work around some g++ 3.3 brokenness.

        Documentation changes:

        - Imported *-merge documents into the manual (they still need
          to be cleaned up to fit in better).

        Changes to automate:

        - Bug fix in 'attributes': this command is supposed to list
          attributes that were removed from a file in the current
          revision; instead, it was listing all attributes that had
          ever been removed from that file.  Now fixed.

        - New command 'get_corresponding_path': given a revision A, a
          path P, and a revision B, looks up the file with name P in
          revision A, and states what path it had in revision B.

        - New command 'get_content_changed': given a revision A and a
          path P, gives the ancestor of A in which P was last
          modified.

        - New command 'get_option': Fetches variables from
          _MTN/options (e.g., the current workspace's branch and
          database).

        - New command 'genkey': an automate-friendly way to generate a
          new monotone key.
2006-09-18 15:36:34 +00:00
jmmv
d6b3061287 Update monotone and monotone-server to 0.29:
0.29 release.  Code cleanups and bug fixes.

        New features:

        - The output of 'mtn status' has been changed significantly; the
          output formerly used by 'mtn status --brief' has become the
          default.  For output similar to the old 'mtn status', see
          'mtn automate get_revision'.

        - It is now significantly easier to control what merger
          monotone uses to resolve conflicts; for instance, to use
          emacs to resolve conflicts, add:
             merge = "emacs"
          to your .monotonerc file.  To override temporarily, you can
          also use the environment variable MTN_MERGE, which takes the
          same strings.  Currently recognized strings are "kdiff3",
          "xxdiff", "opendiff", "tortoisemerge", "emacs", "vim", and
          "meld".

        - Formerly, monotone's sync-over-ssh support required that an
          absolute path be used, with a URL like:
            ssh://venge.net/home/njs/my-db.mtn
          The following syntaxes are now supported as well:
            ssh://venge.net/~/my-db.mtn
            ssh://venge.net/~njs/my-db.mtn

        Bugs fixed:

        - The bug where monotone would sometimes respond to a control-C
          (or several other signals) by locking up and refusing to exit,
          has been fixed.

        - Monotone now properly respects SIGPIPE.  In particular, this
          means that 'mtn log | less' should now exit promptly when
          'less' is exited.

        - 'mtn log' now flushes its output after each message; this
          makes 'mtn log <FILES>' significantly more usable.

        - 'mtn log <FILES>' formerly listed irrelevant revisions (in
          particular, any revision which contained a delete of any files
          or directories, was always included).  This has been fixed.

        - If, during an update, two files both had conflicts, which,
          when resolved, resulting the two files becoming identical, the
          update would error out.  This has been fixed.

        - If _MTN/log exists and does not end in a newline, we now add a
          newline before using the log message.  This removes a problem
          where the string "MTN:" would end up appended to the last line
          of the log message.

        - We no longer buffer up an arbitrarily large number of pending
          writes in the database.  This improves speed and memory usage
          for 'commit', and fixes the problem where 'cvs_import' would
          run out of memory.

        - Monotone's tree walking code (used by 'ls unknown', 'ls
          missing', and friends) now uses much less memory, especially
          on reiserfs.

        Automate changes:

        - 'mtn automate stdio' now uses a configurable block size,
          controlled by command-line option --automate-stdio-size.  This
          is mostly useful for testing speed/memory trade-offs.

        - 'automate attributes' has a new format, which includes more
          information.

        Code cleanup:

        - We now use boost::program_options to parse command line
          options, rather than popt.  The only user-visible change
          should be that --option="" no longer works as a way to set
          some option to the empty string; use --option "".  (This
          change also removes a lot of orphaned and historically buggy
          code from monotone.)

        Other:

        - zsh completion script significantly revised and updated (see
          contrib/monotone.zsh_completion).
2006-08-21 16:23:10 +00:00
jmmv
77958e6828 Update to 0.28:
0.28 release. Cherrypicking, a new testsuite, and some fixes
        and enhancements.

        New features:

        - Cherrypicking with the new "pluck" command. This takes (a restricted
          subset of) the changes in a revision, or between two
          revisions, and applies them to your workspace.  That this
          has happened is not recorded in history; it as if you
          happened to make some very similar changes by hand in your
          workspace.
        - New automate commands, "automate tags" and "automate branches".
        - "diff" now knows how to find enclosing function (or
          whatever) bodies, just like GNU diff's "-p" option.
          -- The regex that defines "enclosing function" can be chosen
             on a per-file basis by a hook function; the default hook
             knows about LaTeX, Texinfo, and most programming
             languages.
          -- This is enabled by default; use --no-show-encloser to
             disable.

        Enhancements:

        - When netsync fails due to permission errors, the server returns a
          semi-intelligible message before dropping the connection.
        - When merging a branch with 3 or more heads, the order in which to
          merge the heads will now automatically be chosen to minimize
          the amount of repeated work that must be done.
        - Crash dumps are now written to $CONFDIR/dump when no workspace is
          available
        - Path validation routines are faster.
        - Inodeprints should be slightly more robust now.
        - New hook get_mtn_command, used to determine the path to the
          mtn binary on a remote host, when using ssh support.
        - "diff" now accepts "-u" and "-c" as short for "--unified"
          (the default) and "--context", respectively.

        Bug fixes:

        - "revert --missing" now works when run in a subdirectory.
        - "revert --missing" now works without any additional files
          being specified.  (You don't have to say "mtn revert
          --missing .".)
        - Fix an edge case where monotone would crash if there was a
          content conflict in a merge for which there was no lca.
        - Fix a case where netsync would sometimes hang during refinement.
        - "mtn help" and "mtn --help" now exit with return code 0.

        Build environment:

        - automake 1.9 is now required.
        - The testsuite has been rewritten, and should be much faster now. It
          also no longer relies on the presence of a *nix userland.
        - Add workaround for gcc 4.1.[01] bug causing "multiple
          definition" errors.

        Internal:

        - Restrictions have been split into path_restrictions and
          node_restrictions, and generally cleaned up more.
2006-07-22 19:02:36 +00:00
jmmv
f6d77e48a4 Update to 0.27. OK'ed by wiz@ during the freeze.
0.27 release.  Minor bug fixes and enhancements, plus ssh
        support.

        Major new features:

        - Monotone can now push/pull/synchronize over arbitrary
          bidirectional streams, not just raw TCP.
          - File-to-file synchronization is enabled out of the box,
            e.g.:
              $ mtn -d db1.mtn sync file:/path/to/db2.mtn
          - SSH synchronization is enabled out of the box, e.g.:
              $ mtn -d local.mtn sync ssh://njs@venge.net/home/njs/remote.mtn
            Note that this requires mtn be installed on the remote
            computer, and locks the remote database while running; it
            is not ideal for groups accessing a shared database.
          - New protocols can be defined with Lua hooks -- for
            example, someone could in principle make "$ mtn sync
            xmpp://njs@jabber.org" do something interesting.
          - See section "Other Transports" under "Advanced Uses" in the
            for more details.

        Minor new features:

        - Selectors now support escaping, e.g., b:foo\/bar can be used
          to refer to a branch with name "foo/bar" (normally / is a
          metacharacter that separates multiple selectors).
        - Visual C++ can now build monotone on Windows.  (Mostly
          important because it allows better Windows debugging.)
        - --quiet now turns tickers off, and does not turn warnings
          off.  New option --reallyquiet disables warnings as well.
        - New command 'automate common_ancestors'.
        - 'ls branches' now takes a pattern, e.g.:
            $ mtn ls branches "*contrib*"

        Speed improvements:

        - Bug in select() loop fixed, server should no longer pause in
          processing other clients while busy with one, but multiplex
          fairly.
        - The database has a new write buffer which gives significant
          speed improvements in initial pulls by cancelling redundant
          database writes.
        - There's been a fair bit of performance tuning all around.

        Bug fixes:

        - Merge tools that exit in failure are now detected.
        - Better reporting of operating system errors on Win32.
        - Passphrases stored in ~/.monotonerc are no longer written to
          the log file.  (Passphrases entered at the terminal were
          never written to the log file.)
        - Fix sql injection bugs in selectors, making it safe to
          expose slectors in web interfaces etc.
        - Files marked with the mtn:execute attr now respect umask.
        - 'automate' commands on Win32 now disable newline translation
          on their output; this is especially important for 'automate
          stdio'.
        - 'db check' now calls the sqlite "PRAGMA integrity_check", to
          validate the integrity of things like sqlite indices.
        - 'mtn annotate nonexistent-file' now gives a proper error
          message, instead of an assertion error.
        - 'mtn revert --missing' now works correctly when run in a
          subdirectory.
        - 'automate inventory' no longer fails when _MTN/work contains
          patch stanzas.

        Other:

        - Many, many internal code cleanups
          - Including changes to somewhat reduce the size of the
            binary
        - New tutorial on using packets added to the manual
        - Updated translations, improved error messages, etc.

        Reliability considerations:

        - In the two months since 0.26 was released, zero serious bugs
          have been reported in the new code.
2006-06-18 12:52:33 +00:00
jmmv
4695233db0 Properly fix headers in html files within the html directory. 2006-04-14 09:59:54 +00:00
jmmv
e419137afd Avoid the need for perl during the build. 2006-04-14 08:58:58 +00:00
jmmv
98e046636e Update to 0.26:
Sat Apr  8 19:33:35 PDT 2006

        0.26 release.  Major enhancements and internal rewrites.
        Please read these notes carefully, as significant changes are
        described.  In particular, you _cannot_ upgrade to 0.26
        without some attention to the migration, especially if you are
        working on a project with other people.  See UPGRADE for
        details of this procedure.

        The changes are large enough that there were 3 pre-releases of
        this code; the changes that occurred in each can be seen
        below.  However, for the convenience of those following
        releases, all changes since 0.25 will be summarized in these
        release notes.  There is no need to read the pre-release notes
        individually.

        Major changes since 0.25:

        - The most user-visible change is that the default name of the
          monotone binary has changed to 'mtn'.  So, for example, you
          would now run 'mtn checkout', 'mtn diff', 'mtn commit',
          etc., instead of 'monotone checkout', 'monotone diff',
          'monotone commit'.
          - Similarly, the name of the workspace bookkeeping directory
            has changed from "MT" to "_MTN".  As workspaces will
            generally be recreated when migrating to this release,
            this should not cause any problems.
          - Similarly, built-in attrs like 'execute' have had 'mtn:'
            prepended to their names.  For example, executable files
            should now have the attr 'mtn:execute' set to 'true' on
            them.  The migration code will automatically add this
            prefix; no user intervention is needed.
          - Similarly, the name of the ignore file has changed from
            '.mt-ignore' to '.mtn-ignore'.  The migration code will
            automatically rename this file; no user intervention is
            needed.
          - Similarly, the recommended suffix for monotone db files is
            now '.mtn'.
          These changes are all purely cosmetic, and have no affect on
          functionality.

        - The most developer-visible change is that the data
          structure for representing trees has been completely
          replaced, and all related code rewritten.  The new data
          structure is called a 'roster'.  You don't really need to
          know this name; unless you are hacking on monotone or using
          various debug operations, you will never see a roster.
          It's mostly useful to know that when someone says something
          about 'roster-enabled monotone' or the like, they're
          referring to this body of new code.

          This change has a number of consequences:
          - The textual format for revisions and manifests changed.
            There is no conceptual change, they still contain the same
            information and work the same way.  The formats were
            merely cleaned up to correct various problems experience
            showed us, and allow various enhancements now and in the
            future.  However, this change means that a flag-day
            migration is required.  See UPGRADE for details.
          - Directories are now first-class objects.  You can add an
            empty directory, must drop a directory if you want it to
            go away, etc.
          - Attrs are now first-class objects.  '.mt-attrs' no longer
            exists; attrs are now described directly in the manifest,
            and changes to them appear directly in revisions.  The
            migration code will automatically convert existing
            .mt-attrs files to the new first-class attrs.  If you have
            custom attrs, those may require special handling -- if
            this is the case, then the upgrader will tell you.
          - The merge code has been rewritten completely.  The
            interface is currently the same (though this rewrite makes
            it easier to improve the interface going forward); if you
            have found merging in monotone to be easy in the past,
            then you will not notice anything different.  If you have
            run into problems, then the new merger should make your
            life substantially simpler.  It has full support for
            renames (of both directories and files), intelligent
            merging of attrs, improved handling of file content
            merges.  Is the first known merger implementation based on
            a provably correct algorithm (the "multi-*-merge"
            algorithm), has exhaustive automated tests, and generally
            should give accurate, conservative merges.
          - The new code is generally faster, though not yet as
            fast as it could be.

        Netsync changes:

        - The default netsync port has changed 5253 to 4691.  4691 is
          our official IANA-assigned port.  Please adjust firewalls
          appropriately.

        - Netsync code has also been largely reworked; new code should
          provide better opportunities for

        - The protocol is incompatible with earlier versions of
          monotone.  This should not be a surprise, since the data it
          carries is also incompatible (see above)...

        New features:

        - New option --brief to 'annotate', gives somewhat more
          friendly output.

        - Several enhancements to log:
          - New option --next, to display descendent revisions
            (rather than ancestor revisions).
          - When 'log -r' is given an ambiguous selector, it now just
            logs all matching revisions, instead of requiring the
            selector be disambiguated.
          - New option --no-files.

        - New command 'show_conflicts', performs a dry run merge.

        - New command 'ls changed'.

        - 'rename' (and its alias 'mv') now accept a broader range of
          syntax:
            mtn rename foo some_dir
              -> renames foo to some_dir/foo
            mtn rename foo bar baz some_dir
              -> moves foo, bar, and baz to some_dir/foo,
              some_dir/bar, and some_dir/baz

        - New hook 'validate_commit_message', which may be used to
          verify that all commit messages meet arbitrary user-defined
          rules.

        - New option --log, to log monotone's output to a file.

        - New option 'drop --recursive', to remove a directory and its
          contents in one swoop.

        - The root dir may now be renamed.  This is a somewhat exotic
          feature, but has some interesting uses related to splitting
          up or joining together projects; see new commands
          'pivot_root', 'merge_into_dir'.

        Minor bug fixes:

        - 'serve' with no --bind argument should now work on systems
          where the C library has IPv6 support, but the kernel does
          not.

        - Stricter checking on the internal version of filenames to
          ensure that they are valid UTF-8.

        - If the database is in the workspace, then it is always
          ignored.

        - Monotone no longer errors out when using a French (fr)
          locale with a non-Unicode codeset.

        Other changes:

        - Packet commands ('rdata', 'fdata', etc.) have been moved to
          'automate'.

        - Database storage now uses sqlite's blob support; database
          files should be ~1/4 smaller as a result.

        - Monotone now uses sqlite 3.3; this means that older versions
          of the command line client (e.g., an 'sqlite3' command built
          against sqlite version 3.2) cannot be used to poke at a
          monotone 0.26 database.  Solution is to upgrade your sqlite3
          program.  Hopefully this is irrelevant to most users...

        - Translations updated, and 3 new translations added (de, it,
          sv).

        Reliability considerations:

        - This new codebase has received much less testing under real
          world conditions than the codebase used in 0.25, simply
          because it is newer.  It has been in active use for monotone
          development since 8 January 2006, and only a small number of
          bugs have been found; all bugs found so far have been very
          minor, and none stood any danger of corrupting data.
          Furthermore, we are much more confident in the theoretical
          underpinnings of the new approach than the old, and the test
          suite attempts to exhaustively exercise all new code paths.

          However, none of this is or can be a substitute for real
          world experience.  We advise caution in upgrading to this
          version of monotone, and suggest that (especially) those who
          upgrade aggressively should pay extra attention to the
          monotone mailing list before and after doing so.

Wed Mar 29 05:20:10 PST 2006

        0.26pre3 release.  This release may be considered a "release
        candidate", in that while we need to write some tests and make
        sure some bugs are fixed, all features are in and we hope that
        no further bug fixes will be needed either.  It is still a
        pre-release for testing.  Do not package it.  DO NOT USE THIS
        RELEASE UNLESS YOU WANT TO BE A DAREDEVIL.

        But, PLEASE PLEASE TEST this release.  There are some
        non-trivial changes since 0.26pre2, and this is your last
        chance!

        Major changes since 0.26pre2:

        - The name of the monotone binary has changed to 'mtn'.
          - Similarly, the name of the bookkeeping directory in
            workspaces has changed from 'MT' to '_MTN' (if you have an
            existing 0.26-line workspace, just rename the MT directory
            to _MTN).
          - Similarly, the name of the ignore file has changed from
            ".mt-ignore" to ".mtn-ignore".  'rosterify' will rename
            these automatically (if you have already rosterified, you
            get to rename them by hand).
          - Similarly, the recommended suffix for monotone db files is
            now ".mtn".

        - We now perform stricter checking to make sure that filenames
          are valid UTF-8.  It is in principle possible that this
          stricter checking will cause histories that used to work to
          break; if you have non-ascii filenames, it is strongly
          recommended to test with this release.

        - Root dir renaming is now supported.  See new commands
          'pivot_root', 'merge_into_dir'.
          - As a side-effect, it is now possible to run 'rosterify' on
            histories in which two independent lines of history were
            merged.

        - The security fix released in 0.25.2 has been forward-ported
          to this release; this prevents some security exposure to
          people running monotone as a client on case-insensitive file
          systems.

        Minor change since 0.26pre2:

        - Database now uses sqlite blobs for storage; should be ~1/4
          smaller.
        - New command: show_conflicts, does a dry-run merge.
        - New option 'drop --recursive', to remove a directory and all
          its contents in one swoop.
        - Changes to 'log':
          - New option --no-files
          - Including merges is again the default (i.e., it now acts
            like 0.25, and not like 0.26pre2).
          - When 'log -r' is given an ambiguous selector, it now just
            logs all matching revisions, instead of requiring the
            selector be disambiguated.
        - New option --log, to log monotone output to a file.
        - Netsync changes:
          - Was sending far too much data in some cases; now does not.
          - Several bugs that caused it to lock up fixed
          - Tweak to allow 'usher' proxy to transparently redirect
            based on client's protocol version, to ease migration
            between incompatible protocol versions.
        - Packet commands have been moved to 'automate'.
        - Fixed bugs in 'db kill_rev_locally', should no longer leave
          an inconsistent db behind.
        - Translation updates

        Other projects receiving notable work:

        - Monotone's "dumb server" support (repo distribution over
          HTTP/FTP/SFTP etc.) has been ported to 0.26, a first command
          line version written, etc.
        - The 'usher' netsync proxy used for hosting many databases on
          a single machine has received significant cleanups, and the
          'webhost' project to provide a simple interface to shared
          monotone hosting providers has received even more work.

Sat Feb 11 13:32:51 PST 2006

        0.26pre2 release.  Inching towards 0.26.  If you are using
        0.25 or earlier, then make sure to read the very important
        notes for 0.26pre1, below.  In particular, like 0.26pre1, this
        is a pre-release for testing.  Do not package it.  DO NOT USE
        THIS RELEASE UNLESS YOU WANT TO BE A DAREDEVIL.

        (Though, in fact, in a month of usage, only one bug has been
        found in the new history code, and it was both minor and
        harmless.  It has additionally been fixed.)

        Database changes:

        - SQLite 3.3.3 has been imported.  3.3 introduces a new database
          format that is not backwards compatible with earlier 3.x releases.
          New databases will be created using this new format.  Existing
          databases remain compatible, and are not converted automatically.
          Existing databases can be converted by performing a database
          vacuum ('monotone db execute vacuum').

        New features:

        - New hook validate_commit_message -- use to verify that all
          commit messages meet arbitrary user-defined rules.

        UI improvements:

        - rename (and mv) commands now accept a broader range of
          syntax:
            monotone rename foo some_dir
              -> renames foo to some_dir/foo
            monotone rename foo bar baz some_dir
              -> moves foo, bar, and baz to some_dir/foo,
                 some_dir/bar, and some_dir/baz
        - Print a warning if it looks like a user has made a quoting
          mistake on push/pull/sync/serve (windows cmd.exe has
          confusing rules here).
        - New command "ls changed".
        - New option "--next" to log, which displays descendents of
          the start revision.
        - Updating to an arbitrary revision now works again (as it did
          in 0.25 and earlier).  This allows one to, for instance,
          switch a working copy to another head, or back up to an
          earlier version, while preserving uncommitted changes.
        - New option --brief to annotate, gives somewhat more friendly
          output.
        - Fixed bug that made ticker output from netsync inaccurate.
        - In 'log', --no-merges is now the default, use --merges to
          override.
        - If the database is in the working copy, then it is always
          ignored.

        Bugs:

        - 'serve' with no --bind should now work on systems where the
          C library has IPv6 support, but the kernel does not.
        - Compile fixes for GCC 4.1 pre-releases.

        Other:
        - Better detection when users have not run "rosterify", and
          more helpful suggestions on what to do in this case.
        - Documentation, translation, error message,
          etc. improvements.
        - Updates to contrib/mtbrowse.sh, simple shell-based monotone
          interface.
        - Updates to many other contrib/ files, mostly to maintain
          compatibility with monotone changes.

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.
2006-04-10 17:45:51 +00:00
jmmv
e3dfc3d30f Update to 0.25.2:
0.25.2 release.  Important security fix for Windows and OS X
        users.

        With versions of monotone prior to this release, a person with
        commit access could commit a malicious file with a name like
        "mt/monotonerc".  When anybody else then checked out this
        revision on a system with a case-folding filesystem --
        usually, this means, "on Windows or OS X" -- then their
        monotone would run arbitrary Lua code stored in this file.

        The _only_ change in this release as compared to 0.25 is that
        the existing checks against files in MT are now extended to
        check for mt, Mt, and mT.

        All users on Windows and OS X, or otherwise checking out
        versioned source on a case-insensitive filesystem, are
        recommended to upgrade immediately.  Binaries used only for
        serving, or only on case-insensitive filesystems (i.e., most
        Unix users), are not affected.

        (0.25.1 was never released in source form.  The original
        0.25 build for Windows was found to have problems on NT 4, and
        0.25.1 was Windows-only rebuild with NT 4 compatible
        libraries.)
2006-03-09 20:30:16 +00:00
jmmv
6634354573 Update to 0.25:
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
2005-12-31 11:33:47 +00:00
dan
69534c8b6e Update to 0.24
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.
2005-11-29 00:27:12 +00:00
jmmv
9e1829f058 Update to 0.23:
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.
2005-09-30 13:18:24 +00:00
jmmv
d7f7d9454d Update monotone and monotone-server to 0.22 (from 0.19):
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.
2005-08-09 22:02:30 +00:00
rillig
a630ec9ff1 Added a patch that #includes <unistd.h> for non-Win32 systems. Approved
by xtraeme.
2005-05-09 23:50:05 +00:00
jmmv
cdc1fcf365 Update to 0.19:
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.
2005-05-04 12:17:59 +00:00
jmmv
4555b3af98 Update to 0.18:
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 Jeremey 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'.
2005-04-12 11:32:32 +00:00
jmmv
2175877868 Update to 0.17:
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
2005-03-21 22:50:20 +00:00
agc
4a3d2f7ce2 Add RMD160 digests. 2005-02-23 22:24:08 +00:00
jmmv
17658ba0e6 Update to 0.16, which includes mostly important 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.
2005-01-01 16:41:43 +00:00
jmmv
30055dce44 Changes in the package, coming from a monotone package I started creating
yesterday w/o having checked for this one:
- Beautify DESCR.
- Take maintainership.
- Handle monotone.info properly.
- Mark the package as C/C++.
- Use boost's toolset.mk to get the compiler name.
- Simplify patches by using CPPFLAGS.
- Add missing dependencies.

While here, update to 0.15:
- 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.
2004-11-28 10:35:45 +00:00
drochner
3e530bcf25 import monotone-0.14, another distributed revision control system 2004-08-15 14:38:38 +00:00