24 commits
Author | SHA1 | Message | Date | |
---|---|---|---|---|
wiz
|
7feebf9ca0 |
Update to 1.1:
Sun May 4 09:55:54 UTC 2014 1.1 release. Changes - '_MTN/wanted-testresults' must now have 1 hex-encoded signing key hash in lowercase per line. New features - 'automate atttributes' now also works without a workspace and returns the attributes for a specific file from the revision's manifest - New 'erase_descendants' automate command which returns all input revisions, except those that are a descendant of another revision in the input. - New 'min(A)' selector is now available which returns all revisions selected by A which are not descendants of other revisions selected by A. - New 'not(A)' selector is now available which returns all revisions not selected by 'A'. - All certs for a revision are now output by 'mtn log' with 'suspend', 'testresult', and custom certs placed under a a new 'Other certs' heading. - New conflict 'dropped/modified' allows explicitly resolving the case of a file that is dropped on one side of a merge, and modified on the other. Previously, the modifications were always lost; now you have the option of re-adding the file with the modifications during merge conflict resolution. - New attribute 'mtn:resolve_conflict' allows specifying a persistent 'drop' conflict resolution for a dropped/modified conflict. This is useful in the case where the conflict will occur again in the future, for example when a file that is maintained in an upstream branch is not needed, and therefore dropped, in a local branch. Bugs fixed - Monotone now compiles against Botan 1.10.x (as well as most of the testing releases in 1.9.y). - Struct file_handle got renamed to avoid clash with newer glibc's fcntl.h. - Monotone now compiles just fine with gcc's option "-Werror=format-security." - Fixed renaming across devices, for example if parts of the workspace are on NFS. - Fixed recursive file removal on Solaris. - Fixed a failure to revert some files when inodeprints is enabled. - Fix an early abort in netsync on Windows, which caused problems transferring large files. - Work around a 64-bit issue with mktime on Mac OS X for dates in 1901 and before. - Allow an ssh_agent socket path including dashes. - Monotone now works with Lua 5.2, even if it doesn't have backwards-compatibility compiled in. - Various fixes for compatibility with newer boost versions. - mtn add and mtn list are now more consistent in their use of --recursive and --unknown options. - Produce a meaningful error message when trying to disapprove a root. - Allow monotone to compile on platforms where MAXPATHLEN isn't defined (i.e. GNU/Hurd). - Allow monotone to compile on C++11-enabled g++ and clang++. - Allow the test suite to run on systems behind a broken DNS resolver and in cases where names cannot be resolved at all. - Allow the test suite to run from directories containing spaces and lots of other minor tweaks to the test suite making its results more reliable. Internal - The performance and memory usage of regular expressions has been improved throughout. This affects any use of the ".mtn-ignore" file such as "mtn ls unknown" and "mtn add", and any calls to "regex.search" in Lua hooks. Other - 'mtn diff' now outputs old and new revision IDs in the diff header when both are specified. - Additional Vim syntax files and an output colorization script in contrib. |
||
jmmv
|
1b4a9884c6 |
Update to 1.0; oked by wiz@:
Changes - The database scheme was changed; please execute 'mtn db migrate' on all your local and remote databases. - In 'mtn conflicts resolve_first interactive', the result file name now defaults to _MTN/resolutions/<left_path>. (fixes monotone issue 103) - The French monotone translation has been updated and is now part of the main distribution again. Many thanks to Steve Petruzzello <dlist@bluewin.ch> for the outstanding work! - get_netsync_(read|write)_permitted have been extended to not only read the files read-permissions and write-permissions, but also the files in the subdirectories read-permissions.d and write-permissions.d. - monotone now also tracks the workspaces of databases which do not reside in a "managed" location. - automate now resets the locale to "POSIX" internally. This means that all scripts can expect the same untranslated messages from mtn automate, regardless of the locale of the calling process. - The hook 'get_netsync_key' has been split up into two separate hooks, one for client usage ('get_netsync_client_key', with the same arguments as the original 'get_netsync_key') and one for server usage ('get_netsync_server_key', with a single table argument containing all the given '--bind' options). Please review your custom hooks accordingly. - Short options ('-b', '-d', ...) are no longer completed. This fixes an invariant failure originating from wrong option usage. (closes monotone issue 141) New Features - 'mtn conflicts store' now outputs a count of the conflicts, and the name of the conflicts file. (fixes monotone issue 108) - New 'mtn list workspaces' command which outputs all the known workspaces for a specific database. (closes monotone issue 129) Bugs fixed - The internal line merger will actually preserve your line endings now, instead of changing everything to "\n". - Improved the help and fixed the argument indexing in 'conflicts resolve_first' (fixes monotone issue 101) - A regression from 0.48 prevented monotone from ordering the diff output of individual files alphabetically. (fixes monotone issue 102) - 'mtn privkey' did not recognize private keys solely available in the key store. This has been fixed. - Added compatibility with Botan 1.9.9 and newer. (fixes monotone issue 104) - 'mtn pull' and 'mtn sync' would always say that your workspace has not been updated. Now, it only does that when you used the '--update' option and there were no updates. (fixes monotone issue 106) - 'mtn automate remote' and 'mtn automate remote_stdio' now use a given database given by an alias to read, store and validate a remote server's key fingerprint (fixes monotone issue 95) - monotone gives a proper error message now if a netsync URI with the 'mtn' scheme misses the required host part (fixes monotone issue 110) - Whenever a binary file was removed and one would try to get a diff using mtn diff, it would report that "/dev/null is binary". This has been changed to it reports the actual name of the removed file instead. (fixes monotone issue 111) - monotone no longer wrongly falls back on a :memory: database when no database option is given. It also prints out an informational message for commands like 'setup' and 'clone' that fall back on the configured default database, again, if no database is specified for these commands. (fixes monotone issue 113) - If 'mtn serve' is called with one or more '--bind' options, then the arguments to these options can now be specified again as follows: '<ip-or-host>' to listen to IP or host on the default port '<ip-or-host>:<port>' to listen to IP or host on the specified port - or ':<port>' to listen on all interfaces on the specified port (fixes monotone issue 119) - monotone no longer enforces ".mtn" as file extension for managed databases. A new Lua hook, get_default_database_glob(), is used instead to determine a pattern which matches accepted database filenames and this pattern by default accept files ending with both, ".mtn" and ".db". (fixes monotone issue 128) - monotone now gives a proper error message when an incomplete or partial identifier contains non-hex digits. (fixes monotone issue 143) - Performance of "mtn ls changed" has been improved and is now comparable to "mtn status". (fixes monotone issue 120) Internal - The source tree has been reorganized. Sources, tests and documentation now reside in specific directories and many smaller improvements in terms of source code cleanup, developer documentation and general build infrastructure accompany this big change. Other - Added a new directory extra/, which contains monotone hooks and related scripts that have been shown to work. Most of these get installed, usually somewhere under $(prefix)/share/monotone. Please read extra/README for further information. - Added the mtn-cleanup Perl script that returns a workspace to its pristine state with the minimum amount of change. This script is in the extra/bin directory. |
||
jmmv
|
cae55b11dd |
Update to 0.99:
Changes - The database scheme was changed; please execute 'mtn db migrate' on all your local and remote databases. - Normal and automate sync, push, and pull now take a --dry-run option; no data is transferred, but the connection is made and a summary of what would be transferred is output. - The changelog editor format was simplified; user entered text is back at the top of file and the instructions have been reduced. The edited text is saved now even if a commit is canceled. - Selectors are much more powerful now and selector functions to calculate common sets of revisions have been introduced. The characters '(', ')', and ';' need to be quoted if mean literally (just like '/') because of this. See section 3.2 in the documentation for details. (fixes monotone bug #18302). - The SERVER [BRANCH] call syntax for network-related commands has been deprecated in favour of the existing, universal URI syntax. Additionally, file:// and ssh:// URIs are now parsed for include and exclude patterns just as the native mtn:// URIs. The possibility to specify include patterns by using 'include=' and exclude patterns by using 'exclude=' in the query string has been removed. Patterns are separated by ';' and will be treated as include patterns unless prefixed with '-'. Where you could previously specify 'mtn://host/?include=foo,exclude=bar', you would now give 'mtn://host/?foo;-bar' instead. The URI parser was made a bit more standards compliant and treats the scheme and host in a case insensitive manner. The path and query parts are now automatically URL-decoded. We deviate from RFC 3986 however by recognizing the authority part in scheme-less URLs, where the standard would force us to recognize a path instead. For example, for the URL 'code.monotone.ca/monotone' we'd normally parse 'code.monotone.ca/monotone' as path, but our implementation parses 'code.monotone.ca' as authority and '/monotone' as path, so you are not forced to type 'mtn://' on command line, just as you are not forced to type 'http://' in your browser. Monotone's native scheme / protocol 'mtn' is by the way set as default in cases like this. The format for the server part of the 'default-server', 'known-server', 'server-include' and 'server-exclude' database variables has been changed and now always includes the complete (normalized) URI resource, consisting of the used protocol, user, host, port and path parts. Older entries in existing databases which do not match the new format are preserved and not changed by monotone. Please check the manual section 5.3 for more details on the URI syntax. - Naturally, the 'clone' command now also accepts mtn:// URIs, though the use of branch globs is forbidden unless a branch is specified separately with the new --branch option. To avoid confusion with an existing workspace, clone no longer looks for and loads the options of such a workspace, therefor it now also falls back to the configured default database and no longer to the database used in the workspace if no explicit database is given. - Server defaults for netsync operations are now only saved if the exchange was successful. The progress messages which have been issued for this previously have been removed, since they would come up now unexpectedly and would clutter the output of commands such as 'clone', 'automate remote' and 'automate remote_stdio'. - The following characters have been deprecated in branch names ?,;*%+{}[]!^ as they denote either meta characters in monotone's URI syntax or are used in globs to resolve branch patterns. Furthermore, branch names should no longer start with a dash (-), since this character is used to denote an exclude pattern in the aforementioned URI syntax. monotone warns on the creation of branches which violate these restrictions and gives further directions. - The 'cert' command can now operate on multiple revisions at once. - The command 'db kill_rev_locally' has been renamed to 'local kill_revision', and 'db kill_tag_locally' and 'db kill_branch_certs_locally' have been replaced with a more flexible command 'local kill_certs'. - The 'import' command now keeps the created bookkeeping root if --dry-run is not specified. This makes it possible to re-use the import directory as workspace and is also more closely to what our documentation states, when it says that import is basically "setup with a twist". - On Win32 native, the option '--no-format-dates' which disables the localized date format, is now the default for 'commit', since dates are not parseable on Win32 native. - The automate commands sync, push, and pull now output information about each transferred revision, cert and key, in basic_io format. - monotone no longer passes syntactically correct, but non-existent revision ids through the selector machinery. The most visible place for this change is 'automate select', which no longer echoes every possible 40 hex-byte string. - The 'automate genkey' command has been renamed to 'automate generate_key' New features - Options can now be overridden; you can specify '--no-unknown --unknown' on the command line and effectively get back the original state in the application. Similarly, you can specify '--no-unknown' in the 'get_default_command_options' hook and then override that with '--unknown' on the command line. - New global options: --no-ignore-suspend-certs undo previous --ignore-suspend-certs --use-default-key undo previous --key --allow-default-confdir undo previous --no-default-confdir --allow-workspace undo previous --no-workspace --interactive undo previous --non-interactive --no-standard-rcfiles replaces --norc --standard-rcfiles undo previous --no-standard-rcfiles --no-builtin-rcfile replaces --nostd --builtin-rcfile undo previous --no-builtin-rcfile --clear-rcfiles undo previous --rcfile --verbose [-v] increase verbosity (opposite of --quiet) - Global options now hidden: --roster-cache-performance-log - New command options: add --no-recursive undo previous --recursive --respect-ignore undo previous --no-respect-ignore --no-unknown undo previous --unknown bisect *, checkout, pivot_root, pluck, update, automate update --no-move-conflicting-paths undo previous --move-conflicting-paths diff --without-header undo previous --with-header --show-encloser undo previous --no-show-encloser disapprove, suspend --no-update undo previous --update drop --no-recursive undo previous --recursive explicit_merge, merge, merge_into_dir propagate --no-resolve-conflicts undo previous --resolve-conflicts --no-update undo previous --update log --no-brief undo previous --brief --no-diffs undo previous --diffs --clear-from undo previous --from --files undo previous --no-files --graph undo previous --no-graph --merges undo previous --no-merges --clear-to undo previous --to import --no-dry-run undo previous --dry-run --respect-ignore undo previous --no-respect-ignore mkdir --respect-ignore undo previous --no-respect-ignore serve --no-pid-file undo previous --pid-file sync, pull, push, automate remote_stdio, automate remote automate pull, automate push, automate sync --no-set-default undo previous --set-default sync, pull, push, automate pull, automate push, automate sync --dry-run just report what would be sent/received automate inventory --corresponding-renames undo previous --no-corresponding-renames --ignored undo previous --no-ignored --unchanged undo previous --no-unchanged --unknown undo previous --no-unknown automate content_diff --without-header undo previous --with-header automate show_conflicts --no-ignore-suspend-certs undo previous --ignore-suspend-certs automate log --clear-from undo previous --from --merges undo previous --no-merges --clear-to undo previous --to - Command options now hidden: (several commands) --no-prefix serve --stdio --no-transport-auth (all netsync/remote commands) --min-netsync-version --max-netsync-version - Deprecated options: --norc use --no-standard-rcfiles --nostd use --no-builtin-rcfile --reallyquiet use --quiet --quiet --debug use --verbose - To aid command line typing, partial option names are tried to be expanded; if the expansion leads to multiple possibilities, all matches and an accompanying short description of the particular expansion are displayed. Two types of expansions are available: simple prefix matching and word abbreviation matching. Single-word options like '--update' are easier to expand from prefixes, as they're unique after a few characters, in this example '--up' already matches. Multi-word options like for example '--ignore-suspend-certs' might collide however with single-worded ones and are best expanded from abbreviations, in this case '--isc'. - The 'disapprove' command now accepts a revision range in addition to a single revision. - A new 'manpage' command has been added which dumps the monotone command help including all global and command specific options in standard troff format. If this command is used interactively, its output is automatically processed through nroff and less, in case both are available on your system. If not, you can change the default command by overwriting the 'get_man_page_formatter_command' hook. The 'manpage' command is also used to create a static version of mtn(1) which is now installed with the rest of monotone's docs. - New 'k:' selector type to query revisions where at least one certificate was signed with the given key. - New automate command 'log' which behaves identical to the normal 'log' command, except that it only outputs the revision ids. - New automate command 'checkout' which works just as its non-automate counterpart. - Monotone now tracks file size information (hence the previously mentioned schema change). File sizes are currently only queryable via the automation interface, directly for specific files via 'get_file_size' or as part of the extended manifest (see below), but these information may become visible as part of the user UI later on as well. - New automate command 'get_extended_manifest_of', which prints a beefed-up manifest format with file size and extensive marking information. This can be used to easily determine when specific nodes have been changed or moved at last. - New automate commands 'put_public_key', 'get_public_key' and 'drop_public_key'. (closes monotone bug #30345) Bugs fixed - The 'mv' command now warns when a source is being renamed onto itself or one of its children (fixes monotone bug #29484). - The 'mv' command now also handles this usage properly, where 'foo' is a directory: $ mv foo bar $ mtn mv --bookkeep-only foo bar - monotone no longer asks to pick a branch from a set of branches of a revision in which all but one branch have been suspended (fixes monotone bug #29843) - The annotate command no longer fails if it should print out empty or untrusted date cert values (fixes monotone bug #30150) - monotone now tries harder to find the cancel hint in a commit message and only aborts if it can't find it anywhere (fixes monotone bug #30215) - The import command no longer warns about not being able to write out _MTN/options on --dry-run (fixes monotone bug #30225) - 'automate remote' and 'automate remote_stdio' can now be used without transport authentication (e.g. on file:// or ssh:// transports) as well as anonymously over netsync (fixes monotone bug #30237) - monotone does no longer warn about missing implicit includes when dealing with restricted file sets (fixes monotone bug #30291) - The 'passphrase' and 'dropkey' commands now handle private keys in old-style key files (without the hash part in the file name) properly. monotone also makes it very sure now that the key file of a private key which is about to be deleted really and only contains the key which should be deleted and nothing else (fixes monotone bug #30376) - monotone no longer throws an unrecoverable error if a public or private key is addressed with some non-existing key id (fixes monotone bug #30462) - A globish that contains a bracket pair with an empty sub-pattern such as "{,.foo}", "{.foo,}" or even "{.foo,,.bar}" now correctly expands the empty target, so e.g. the branch pattern "net.venge.monotone{,.*}" now matches "net.venge.monotone" and "net.venge.monotone.*" as expected. (fixes monotone bug #30655) - A regression in 0.48 made a path-restricted 'mtn log' show revisions, in which not the picked path(s), but one of its parents were changed. This has been fixed. - 'mtn trusted' will no longer accept single bogus revision ids, but instead validates if the given revision really exists in the current database. - 'mtn read' (and also 'mtn automate read_packets') now tests public and private key data more thoroughly and aborts if it encounters invalid data. - 'mtn conflicts store' now gives a proper error message when run outside a workspace (fixes monotone bug #30473) - monotone did not properly parse URIs which missed a scheme or which did not mark the start of the authority with a double slash. This has been fixed. (fixes monotone issue 94) |
||
jmmv
|
5b567ebf3d |
Update monotone to 0.47:
Changes - The default '<unknown>' author used by the git_export command has changed to 'Unknown <unknown>' and must be changed in existing author map files. The old '<unknown>' author will be rejected by the new validate_git_author lua hook. - The 'git_export' command now validates all git author and committer values using a new 'validate_git_author' lua hook before they are written to the output stream. The export will fail if any value is rejected by this hook. - The 'git_export' command now calls a new 'unmapped_git_author' lua hook for all git author values not found in the author map file. The default implementation of this hook attempts to produce valid git authors using several default pattern replacements. - The 'get_date_format_spec' lua hook now has an additional parameter which hints at the wanted format (f.e. a short date or a long date time). The default implementation now returns '%x' for short and long dates, '%X' for short and long times (currently unused) and '%x %X' for short and long date times. - The options '--date-format' and '--no-format-dates' are no longer specific to the 'log' command, but can now be used globally. - monotone now prompts only three times for a key password. New features - Added portuguese translation (thanks to Américo Monteiro) Bugs fixed - 'passphrase' now allows an empty new password to be given (fixes monotone bug #28809) - 'automate remote' and 'automate remote_stdio' no longer require an existing database (fixes monotone bug #28885) - monotone no longer throws an exception on Windows if it is interrupted (^C); a couple of other bug have been fixed for this platform as well which generally improve the compatibility. - The annotation of 'annotate' is now localized. - The various occurrences where a revision is described by its certs now come with proper localized date output. - Fix problems with newer Lua versions especially when LUA_COMPAT_VARARG not set. Other - Roster handling has been sped up significantly, and roster cache performance has been fixed for the case of overly large rosters. This should be mostly noticable when digging through history (especially initial pulls, since those send so many revisions), and be more noticable for projects with larger trees. The most significant internal change from this is that rosters and marking_maps are now copy-on-write. A longer overview of the internal changes is at: http://lists.gnu.org/archive/html/monotone-devel/2010-02/msg00043.html - Improve the compatibility with newer Botan versions. |
||
jmmv
|
bd2590bf96 |
Update monotone to 0.46. Tested under OS X 10.5 and NetBSD/macppc.
Sun Jan 17 21:40:35 UTC 2010 0.46 release. Changes - "automate stdio" (and "automate remote_stdio", see below) use separate streams to encode out-of-band information like informational messages, warnings or tickers. A special "header" section has been added to the standard output to identify future stdio version changes. The error codes used in the output of both stdio and remote_stdio, have also slightly changed: errors which are the result of a wrong call (unknown command, invalid options, parsing errors, ...) are returned with code 1, while errors which happened while the actual command executed are returned with code 2. Error codes are no longer echoed with every packet, but only as the payload of the final 'l' ("last") packet. Please consult the manual section "mtn automate stdio" for a detailed description of the new format. - The 'heads' command should be significantly faster now (not that it was particularly slow before). This probably isn't terribly noticable unless you're in the habit of using "h:*" (heads of all branches) as a selector, it's primarily meant to enable future changes that will depend on fast 'heads'. The database schema has been changed, so you will need to run 'mtn db migrate' (preferably after making a backup copy of your db). - the 'status' command now includes the current (to be committed) revision number and will indicate when the branch option in _MTN/options has been changed and does not match one of the revision's parent branches. - Cert labels in the output of the 'log' command are now localized. New features - There's a new command "automate remote_stdio" that makes it possible to execute automate commands on a remote server (for example, to permit a single database to be used both for serving netsync connections and for running a viewmtn instance). This requires that the server be running monotone 0.46 or later. Access control on the server uses a new lua hook "get_remote_automate_permitted(identity, command_line, options)". - There's also a new command "automate remote" that's very much the same, but executes only a single command and does not stdio-encode the output. - A new 'bisect' command has been added to allow searching for a specific revision within a range of revisions. This can be useful for locating the exact revision that broke something or removed a particular feature. - Three new commands - 'push', 'pull' and 'sync' - have been added to the automation interface. They work just as their non-automate counterparts. - The global option '--timestamps' has been added which prefixes the current local timestamp before diagnostic messages such as warnings, progress messages, errors and tickers. For example, this option can be used to log the date and time when clients connect to a monotone server. Bugs fixed - A regression from 0.45's key migration prevented the proper output of the `committer` field in 'git_export'. - 'db info --full' no longer crashes when executed on a database with only one revision. - The mtn_automate Lua function which can be used for custom commands now properly handles binary data. - `db info` now returns a correct byte count for certs again. - If a public key was read in via the `read` or `automate read_packets`, an invariant was triggered if the key was already existing in the database. This has been fixed. - `annotate` no longer crashes if the annotated file is empty. Other - Added the script of the Lua-based contributed Monotone extension command "mtn remote_export" to contrib/command/ with which a remote revision can be exported locally without having to fetch all of the history before. |
||
jmmv
|
711ecedb9c |
Update to 0.45. Changes since 0.42 follow:
Fri Sep 11 20:50:00 UTC 2009 0.45 release. Changes - Certs now link to the key that signed them by the key's hash, instead of its name. This should provide some security and usability improvements. The database schema has been changed, so you will need to run 'mtn db migrate' (preferably after making a backup copy of your db). The netsync protocol version has also changed. However, we found space to implement full protocol version negotiation, so no flag day is needed. If your particular project has a situation where there are multiple keys with the same name, you will receive errors when trying to sync certs signed by those keys to older netsync peers. A number of commands have slightly different output now, particularly 'ls certs', 'ls tags', 'automate keys', 'automate tags' and 'automate certs'. There is a new Lua hook associated with these changes, 'get_local_key_name(identity)', and all Lua hooks that used to take a key name as an argument now instead take a table with several fields. Commands which previously accepted a key name now also accept the key's hash or local name, which is a local alias for equally named keys. 'read-permissions' and 'write-permissions' accept either the key name or the hash. There is also a new 'db fix_certs' command which fixes wrong key assignments in migrated databases if you have the correct key available. - The 'resolved_user' conflict resolution is no longer reported by 'automate show_conflicts' for file content conflicts; 'resolved_user_left' is used instead. - 'format_version' was removed from 'automate tags' and 'automate get_attributes' which both do not need this additional versioning information. New features - The 'log' command now, by default, converts all dates it prints to your timezone instead of leaving them in UTC, and uses a somewhat more friendly format for the dates. You can customize the date format with the new "get_date_format_spec" Lua hook, which returns a strftime(3) format string. You can also override the format for one command with the new --date-format option, disable date conversion for one command with --no-format-dates, or disable it by default by having the above Lua hook return an empty string. - The 'diff' and 'automate content_diff' commands take a '--reverse' option when one revision is specified, to control the order of the diff with the workspace. - The 'update', 'checkout', 'pluck', and 'pivot_root' commands take an option '--move-conflicting-paths', to handle unversioned files that are blocking the action. The unversioned files are moved to _MTN/resolutions/<workspace_path>, so the action can succeed, and the user can recover the files if necessary. - Resolution of orphaned file conflicts is now supported by 'merge --resolve-conflicts' and the 'conflicts' commands. - Duplicate name conflicts now support the 'keep' resolution. - Monotone now accepts ':memory:' as argument to the --db option and sets up a memory-only SQLite database. - 'clone' allows cloning into the current directory when '.' is given as argument. Bugs fixed - Monotone now sanely skips paths with invalid characters it encounters during 'add' or 'automate inventory'. - Key names, cert names, and var domains with non-ASCII characters should work properly now. Previously, they would be (usually) converted to punycode on input, and not decoded on output. They will now not be converted to punycode at all. - The 'conflict' commands can now handle duplicate name conflicts for directories. - 'cvs_import' now properly parses CVS timestamps (again). - Windows' cmd.exe is recognized as smart terminal and thus monotone should create more readable output in netsync operations. Tue May 12 20:44:00 UTC 2009 0.44 release. Changes - Private keys no longer have a separate hash from the associated public key. This changes the hashes output by 'ls keys', and also changes the format of 'automate keys' and 'automate genkey'. New features - New 'w:' selector type for selecting the revision the workspace is based on. Bugs fixed - C++ exceptions in Lua extension functions are now converted into Lua errors catchable with pcall, instead of causing a crash. - In 0.43 revert became excessively noisy and would report changes to all attributes on included files and directories regardless of whether the attributes had been changed or not. This has been silenced. Monotone will now specifically report changes to execute permissions only when they occur. - In 0.43 monotone would lose execute permissions on all files modified during an update operation. Execute permissions are now reset on updated files that have the mtn:execute attribute set to true. - Invalid revision selectors now cause an immediate error instead of being dropped from the selection. The old behavior could produce undesired effects from typoed commands, such as spewing a list of all revisions in the database. - If "automate stdio" is in use, invalid selectors are reported via the automate protocol rather than on stderr. - "Best-effort" character set conversions now work again; 'mtn log' will not crash just because there is a change log entry with a character not representable in your locale. However, if your system iconv(3) implementation does not support the //TRANSLIT extension, you may see garbage characters in the above scenario. Internal - Various small code changes to make monotone compile under (Open) Solaris using Sun Studio, and under Windows with Visual C++. - monotone.spec has been removed from the distribution. Sun Mar 22 22:26:00 UTC 2009 0.43 release. Changes - The Monotone source distribution no longer includes copies of several third-party libraries. This means they must be downloaded and built separately, before building monotone. See INSTALL for a complete list of necessary libraries. This allows monotone's developers to concentrate on monotone itself, rather than tracking external library updates, which in practice did not happen. By way of illustration, we were still shipping sqlite 3.4.1, which is years out of date. This has also been a long-standing request of various redistributors of binary packages, who prefer the use of globally shared libraries. - There is a new db var "database delta-direction", which can have values "reverse" (default), "forward", and "both". This controls what kind of deltas are stored for new file versions. Forward deltas are very fast for netsync, but slow for most other uses. Set this to "both" (or perhaps "forward" if you're very short on disk space) on an empty db and pull everything into it, to get a database which will be much faster for server usage (especially initial pulls). - 'mtn help <command_or_group>' or 'mtn <command_or_group> --help' no longer print global options, thus making the output of specific help requests more compact. You still see all available global options by executing 'mtn help' without any arguments. - 'mtn automate get_current_revision' now returns an empty changeset instead of an error if a workspace contains no changes. New features - A monotone database may be exported in the git fast-import format using the git_export command. The output from this command may be piped into git fast-import or other tools supporting this format. - Additional 'u:' and 'm:' selector types for selecting the revision the workspace was last updated from and revisions matching specified message globs in changelog and comment certs. - Additional '--revision' option for 'mtn log' allows logging of selected sets of revisions. - Additional '--full' option for 'mtn db info' to display some statistic analysis of the date certs in the database. - Command line options in the EDITOR and/or VISUAL environment variables are honored; for instance, EDITOR="emacs -nw" works now. (Debian bug #320565.) - The `mtn_automate' lua function now correctly parses and sets options for executed automate commands. - The 'commit' command accepts a non-empty _MTN/log as the log message when '--message-file=_MTN/log' is given. Bugs fixed - Performance of the log command has been improved significantly. Previous versions of monotone loaded individual certs by name for each printed revision and this caused sqlite to not use the correct index. Now, all certs are loaded for each printed revision once and individual certs are selected from the full list which allows sqlite to use the preferred index. - In 0.42, a netsync writer would attempt to queue up all outgoing data as soon as it knew what data to send, in a single operation, without servicing the event loop. If there was a large amount of data to send, this would cause very long pauses and sometimes timeouts and dropped connections (for pauses over 10 minutes). The bug that caused this is fixed, and that operation now has a safety timer that should prevent it from coming back. - When the netsync server receives garbage over the network, it should be much better about only terminating the offending connection instead of the entire server. - The log command was missing '--depth' and '--exclude' options used to restrict revisions printed to those touching specific paths. Log now allows these options and uses them properly. - The update command previously did not clear execute permissions from files that had their associated 'mtn:execute' attribute cleared. - Several minor problems with workspace attributes have been fixed. Earlier versions of monotone would reset attributes such as mtn:execute on all files when any workspace modifying command was executed. Applying attribute changes to workspace files is now done much more selectively in the same manner that content and name changes are applied. - In certain cases, especially also on FreeBSD and Mac OS X, netsync called select() even after read() returned 0 bytes to indicate the end of the file, resulting in a confusing error message. This is fixed by treating EOF specially and prevent further calls to select() on the file handle, as recommended by the select_tut man page. - If given a filename, `mtn ssh_agent_export' now creates that file with the correct permissions (i.e. mode 600), creates directories as necessary, and does not throw an internal error if creation or writing fails. (You're still on your own for directory creation and permissions if you take the key on standard output and redirect it to a file.) - The `p:' selector now accepts single character revision ids. - `mtn merge_into_workspace' no longer crashes if one tries to merge in an ancestor or descendant of a workspace, but gives a helpful error message. - Several bugfixes to `mtn automate stdio': * It now correctly distinguishs between syntax and command errors by returning error code 1 for the former and error code 2 for the latter - just as advertised in the documentation. * The stdio event loop no longer quits if a syntax error occurs, but rather discards the wrong state and accepts new (valid) commands. * Option errors haven't been catched properly and thus weren't encoded in stdio either; this has been fixed as well. * Global options, which were set or changed by a previously executed command, weren't properly reset before the next command was issued. It was f.e. not possible to "unignore" suspended branches for the `branches' command when `--ignore-suspend-certs' was given in a previous run. Now only those global options persist between executed commands which were given to stdio directly. Internal - Using 64 bit integer values to represent dates internally. This has no user visible effect. - The unit test code has been separated from the main source, thus building the tests no longer requires a full recompilation. Also, the number of modules which are linked into unit tester has decreased tremendously. - A couple of debug commands have been added to the `database' command group to aid performance timing. See `mtn help --hidden db' for a list of available commands. - Our internal error handling has been overhauled. N() is gone, and E() takes three arguments instead of 2: E(bool, origin::type, i18n_format). origin::type is an enum describing the source of the error, eg network, user, internal. Data types can publically inherit origin_aware (as the vocab types do) to obtain a public origin::type member named 'made_from'; this can then be supplied to E() when sanity-checking that data. origin_aware and origin::type are in origin_type.hh. I() will throw a unrecoverable_failure, and E() will throw either a unrecoverable_failure or a recoverable_failure depending on the origin::type provided. informative_failure is gone. |
||
joerg
|
bacea7cad5 | Remove @dirrm entries from PLISTs | ||
jmmv
|
3df4e43195 |
Update to 0.42:
Changes - The output of 'automate show_conflicts' has been changed; a default resolution for file content conflicts and user resolutions for other conflict types has been added. 'directory_loop_created' changed to 'directory_loop'. - The French, Brazilian-Portuguese and Japanese translations were outdated and thus have been removed from the distribution. In case you care about them and want them back, drop us a note at monotone-devel@nongnu.org. Bugs fixed - 'mtn db kill_rev_locally' did not update the inodeprint cache when executed from a workspace on which the revision's changes where applied. - Some recent performance issues have been corrected: * since 0.40, there is much more use of hex encoding/decoding. These functions have been sped up considerably. * since 0.40, every command in an 'automate stdio' session would reinitialize the database. This was rather slow, so monotone will now keep the database open between commands. - The Lua-based contributed Monotone extension introduced in 0.38 haven't been added to the tarball; this has been fixed. - Monotone died if _MTN/options contained an empty / not-existing 'keydir' entry. This has been fixed. Also, invalid options are now better detected and give a more useful error message. - Monotone crashed if it was called with more than 2048 command line arguments. This has been fixed. - If vim is used as merger, it no longer prompts the user for an enter key press. - Decoding errors f.e. through to garbage from the network no longer results in informative failures, but in warning. This was made possible by introducing the concept of origin-aware sanity checks. - Monotone crashed if it was called with nested wildcards such as 'a.{i.{x,y},j}'. This has been fixed. - The standard implementation of the 'ignore_file' hook now accepts windows and unix line endings in .mtn-ignore files. New features - New 'mtn ls duplicates' command which lets you list duplicated files in a given revision or the workspace. - New option --no-workspace, to make monotone ignore any workspace it might have been run in. - New command group 'mtn conflicts *'; provides asynchronous conflict resolutions for merge and propagate. - New 'automate file_merge' command which runs the internal line merger on two files from two revisions and outputs the result. - New 'automate lua' command with which lua functions, like monotone hooks, can be called over automate. This is particularily useful to get user defaults, like ignorable files, branch keys and passwords, which are managed through one or more monotonerc files. - New 'automate read_packets' command which reads data packets like public keys similar to 'mtn read'. - 'merge' and 'propagate' accept user commit messages; the 'merge rev rev' or 'propagate branch branch' message will be prefixed to the user message. --no-prefix removes the prefix. Internal - Update Botan to 1.7.12. |
||
bjs
|
8ef8a196c2 |
Update to monotone-0.41.
pkgsrc-specific changes: add REPLACE_SH for new bin/mtnopt shell script. Remove unneeded patch-aa; the bug is no longer. NEWS: Changes - 'mtn clone' now takes a branch argument rather than a branch option which is more what people expect given the fact that mtn push/pull/sync do not use a branch option either. - 'mtn automate inventory' will show the birth revision for any file that has been committed. Bugs fixed - If the options '--db' or '--keydir' were previously specified for a command which was executed inside a workspace and one or both option arguments were invalid (f.e. invalid paths), they were still written to _MTN/options of the particular workspace. This lead to errors on any subsequent command which used these options. This bug is fixed in so far that basic file type checks are applied on both options, so its no longer possible to set non-existing paths accidentally or use a path to a directory as option argument for '--db'. - If a key clash occurs on a netsync operation, i.e. two different keys with the same key id are encountered, mtn now fails cleanly and provides further guidance how to proceed. - It was previously not possible to clone a branch / database anonymously; this has been fixed. - If the client tries to use an unknown key, try to fall back to anonymous pull instead of failing immediately. - 'mtn automate identify' was broken in 0.40 when used over stdio, i.e. the output of the command did not get into the right output channel; this has been fixed. - Monotone would produce a warning if executed from the root directory of a Windows drive; this has been fixed. - The 'note_commit' hook now returns the new revision id hex-encoded again - the bug was introduced in 0.40. New features - New 'mtn suspend' command which lets you mark certain revisions and thus whole branches as discontinued ("suspended") by attaching a special suspend cert to the revision. All relevant mtn commands (f.e. mtn heads, mtn ls branches) honor this cert by default. To ignore it, simply add '--ignore-suspend-certs' to your command line. Suspended revisions can have children, which are in no way affected by the cert of their parent, i.e. suspended development lines or branches can simply be "unsuspended" by committing to them. This feature was already added in monotone 0.37, but was forgotten to be mentioned in NEWS back then. - New 'get_default_command_options' lua hook which lets you specify default options for a given, triggered command. Useful f.e. if you always want to have your 'mtn add' command executed with '-R' / '--recursive'. - Add 'automate show_conflicts' command. - Add 'automate get_workspace_root' command. - Add Lua hooks 'note_netsync_revision_sent', 'note_netsync_cert_sent' and 'note_netsync_pubkey_sent'. |
||
bjs
|
d9fbcc92ce |
Update to version 0.38. Fix one line of post-install target to allow
for DESTDIR support. Also, patch-ab is no longer necessary; patch-aa is merely a one-liner now. Changes since 0.37: Changes - mtn log now prints a single dot for a project's root directory instead of an empty string. - mtn now warns if changes to a file will be ignored because the file has been deleted on one side of a merge. - mtn now errors if your chosen private key doesn't match the public key of the same name in your database. - mtn now checks for your key before a merge action takes place to ensure that any manually merged file isn't lost in an error case Bugs fixed - a bug introduced in 0.37 prevented an external merger from being executed unless the MTN_MERGE environment variable was set - mtn read successfully reads revision data, and cert packets again - mtn consistently supports certs with empty values (fixed 'ls certs' and 'read') Internal - Update Botan to 1.7.2. - Moved the gzip implementation out of the Botan directory. Other - Added the scripts of the following Lua-based contributed Monotone extension commands to contrib/command/: "mtn base", "mtn fuse", "mtn revision", "mtn conflicts". - Added a hooks version of the contributed ciabot script, contrib/ciabot_monotone_hookversion.lua - The monotone manual is now licensed under the GPL rather than the GFDL. |
||
jmmv
|
d04c7c138f |
Update to 0.37:
Changes - mtn db kill_rev_locally now checks for an existing workspace before the revision is killed and tries to apply the changes of this particular revision back to the workspace to allow easy re-committing afterwards - the "--brief" switch for mtn annotate has been renamed to "--revs-only" for clarity - mtn help now lists the commands (and their aliases) available within a group, so its easier to get an overview which commands are available at all - the "MTN_MERGE=diffutils" merger (provided by std_hooks.lua) was improved. It now accepts a MTN_MERGE_DIFFUTILS environment variable which can be used to control its behaviour through comma-separated "key[=value]" entries. Currently supported entries are "partial" for doing a partial batch/non-modal 3-way merge conflict "resolution" which uses embedded content conflict markers and "diff3opts=[...]" and "sdiffopts=[...]" for passing arbitrary options to the used "diff3" and "sdiff" tools. When used in combination with "mtn merge_into_workspace" this way one especially can achieve a CVS/SVN style non-modal workspace-based merging. - There is a new revision selector: "p:REV" selects the parent(s) of revision REV. For example, if a revision has one parent, mtn diff -r p:REV -r REV will show the changes made in that revision. - Monotone now uses the Perl-Compatible Regular Expression (PCRE) library for all regular expressions, instead of the boost::regex library. This means that external Boost libraries are no longer required to build or use Monotone. If building from source, you will still need the Boost headers available somewhere. See INSTALL for details. PCRE's syntax for regular expressions is a superset of boost::regex's syntax; it is unlikely that any existing .mtn-ignore files or other user uses of regexps will break. The manual now contains detailed documentation of the regexp syntax, borrowed from PCRE itself. - the format of "mtn automate inventory" has changed to basic_io. This fixes a couple of corner cases where the old format returned wrong information and introduces new capabilities like restricted output, recognized attribute changes, and more. For a complete overview on the new format, please take a look in the appropriate manual section. Bugs fixed - mtn automate heads called without a branch argument now properly returns the head revisions of the workspace's branch if called over mtn automate stdio - mtn commit no longer crashes if it creates a revision whose roster already exists, i.e. was left behind by the command `mtn db kill_rev_locally REV` (savannah #18990) Documentation changes - the documentation of the "--revs-only" (formerly "--brief") switch for the annotate command didn't match its actual behavior, this has been fixed - documentation for the "ssh_agent_add" command was missing and has been added Other - contrib/usher.cc has been removed. Please use the net.venge.monotone.contrib.usher branch instead. Internal - Update SQLite to 3.4.1. - Update Lua to 5.1.2 plus latest bug fixes. - Update Botan to 1.5.10. - Internal use of regular expressions has been almost eliminated. (Regular expressions are still used for .mtn-ignore and the --show-encloser feature of mtn diff, and are still available to Lua hooks.) |
||
bjs
|
e45dd9bb0d | Remove contrib/.deps from PLIST, do not install anything from .deps; bump rev | ||
bjs
|
3c2dd0163c | remove stray libtool object from PLIST | ||
jmmv
|
f5db804514 |
Install the scripts in contrib. From Hauke Fath's request in PR pkg/36990.
Bump PKGREVISION to 1. |
||
rillig
|
f57aa8f936 |
The HTML documentation looks better when the images are included.
PKGREVISION++ |
||
jmmv
|
7e4032e9ff |
Update to 0.33. Tested in NetBSD-current and Mac OS X. Changes:
The internal data format has changed with this release; migration is straight-forward. To upgrade your databases, you must run: $ mtn -d mydb.mtn db migrate All of these operations are completely lossless, and 0.33 remains compatible with earlier versions with regards to netsync. Changes - "mtn ls unknown" no longer recurses into unknown directories. - update will fail rather than clobbering unversioned files that exist in the workspace. - update will detect directories with unversioned files before attempting to drop them and will refuse to run rather than corrupting the workspace. such unversioned files must be removed manually. - the character set and line separator conversion hooks (get_system_linesep, get_charset_conv and get_linesep_conv) have been removed. Similar functionality (probably based on file type attributes) is planned and will be added in a future release. - update will switch to the branch of a given revision if it differs from the current workspace branch. - add will now accept combinations of --unknown, --recursive and --no-respect-ignore. - import now imports unknown directory trees properly. - use SQLite 3.3.12. - schema migrator rebuilt and will now properly detect and report if the database used is created by a newer monotone than the one currently used. - removed the man page mtn.1, as it hadn't been updated for a long time. New features - "mtn merge_into_workspace" (still to be documented) - "mtn log" will now print an ASCII revision graph alongside the usual log text. Speed improvements - "mtn annotate file" should run even faster now. it exploits the fact that we store deltas of rosters. by peeking at these deltas, it can avoid reconstruction of whole rosters in many cases. Other - contrib/monotone-mirror.sh and contrib/monotone-mirror-postaction-update.sh, two scripts to mirror and update directories automatically. - contrib/monotone-run-script-post-netsync.lua, to automatically update a directory as soon as new revisions or certs arrive for a given branch. - contrib/monotone.bash_completion had some improvemens. - contrib/monotone.el had some improvements. Internal - Internally, the concept of "projects" has been introduced. It currently doesn't mean anything, but will be used later, with policy branches and similar. |
||
jmmv
|
808be7edad |
Update to 0.31:
0.31 release. Code cleanups and bug fixes. New features: - If multiple --message (or -m) arguments are passed to 'commit', then they will be concatenated on separate lines. - The validate_commit_message hook is now told what branch the commit is on. Bugs fixed: - The typo that prevented building with gcc 3.3 has been fixed. - Attempting to commit without a signing key available now fails earlier. - Command-line option parsing has been redone yet again; this should fix a number of bugs caused by the use of boost::program_options. For instance, command line error messages are now l10nized again, "--depth=asdf" now gives a sensible error message instead of crashing, and --key= now works as an alternative to -k "". - A bug in the new roster caching logic that caused assertion failures on very large trees has been fixed. - A rare bug in the "epoch refinement" phase of the netsync protocol has been fixed. - Accidental (and undocumented) change to 'automate inventory' output format reverted; documentation is now correct again. - Some obscure error conditions with 'pivot_root' fixed. Many fixes to 'automate stdio': - IO handling has been rewritten, to remove some obscure bugs and clean up the code. - automate commands can now take options (even when used with 'automate stdio'). - The default block size has been increased to 32k (which should considerably reduce overhead). - Many automate commands were flushing their output far too often, causing major slowdowns when used with 'automate stdio'; this has been fixed. - Syntax errors now cause 'automate stdio' to exit, rather than attempting to provide usage information for the calling program to read. Other: - New large-coverage random testsuite for delta reconstruction path finding algorithm. - Miscellaneous code cleanups and improved error messages. - Enhancements to debian packaging. - New translation to es (Spanish). |
||
jlam
|
ea5f9f80b6 |
Strip ${PKGLOCALEDIR} from PLISTs of packages that already obey
PKGLOCALEDIR and which install their locale files directly under ${PREFIX}/${PKGLOCALEDIR} and sort the PLIST file entries. From now on, pkgsrc/mk/plist/plist-locale.awk will automatically handle transforming the PLIST to refer to the correct locale directory. |
||
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. |
||
jlam
|
dcc3f5e7b7 |
* Move info file entries into the PLIST.
* Honor PKGINFODIR and EMACS_INFOPREFIX. |
||
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 |
||
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. |
||
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. |
||
drochner
|
3e530bcf25 | import monotone-0.14, another distributed revision control system |