26
I Use This!
Inactive

News

Analyzed 1 day ago. based on code collected 2 days ago.
Posted almost 14 years ago
Changes Much more information is now passed to the editor when composing a commit message for a new revision. The Author, Date, Branch and Changelog values may now all be changed directly in the editor allowing new branches to be created ... [More] without using the --branch option. Changes to other lines of this information must not be made or the commit will abort. The edit_comment lua hook now only takes one argument which is the text to be passed to the editor to edit a commit. Existing hooks that override the default hook will need to be changed to work properly. The long date/time format used by 'status', 'commit' and 'log' must be sufficient to preserve a date through a formatting and parsing cycle. The 'status' command now checks for this and warns if the format is unsuitable and 'commit' will refuse to operate with an unsuitable format. The output of the 'status' and 'log' commands has changed to align with the new information displayed by 'commit' so that all three commands display revisions similarly. The 'setup' as well as the 'clone' command check if no managed default database exists and if no database is given either as command line or as workspace option and eventually create a new default database outside of the bookkeeping directory of the new workspace (see below for more information on the new management features). Monotone will only warn about bad certs if there are not also matching trusted certs. So if someone commits a bad branch cert, monotone will only warn about that bad cert until someone else approves that revision into the same branch (fixes monotone bug #8033). 'db check' now checks for errors in the branch heads cache, and 'db regenerate_caches' fixes them. The output of the Lua functions print() and io.write() is now redirected to the standard progress message stream of monotone. See chapter 6.3 in the documentation for details. New features Monotone has now database management capabilities: If you place your databases in one or more specific locations (defaults to %APPDIR%/monotone/databases on Windows and $HOME/.monotone/databases on Linux, configurable by a hook), it is able to discover these databases and access them only by giving the (base) name of their filename, for example ":my-database.mtn". You can also directly create new databases in the first found default location by issuing 'mtn db init -d ":my-database.mtn". Some commands, like 'setup' and 'clone' automatically fall back to a default database (":default.mtn", also configurable by a hook) if no database option is explicitely given. Additionally, monotone remembers checked out workspaces for every managed database and displays these "known" registered paths together with other information in the new 'list databases' command (closes monotone bug #8916). A set of accompanying management commands - 'register_workspace', 'unregister_workspace' and 'cleanup_workspace_list' - to handle moved or removed workspaces for managed databases have been added. Many commands that change the heads of a branch (approve, disapprove, pull, merge, etc) can now take an option "--update". If run from a workspace which is based on a head of the branch and has no local changes, this option makes these commands update that workspace to the new head. If you always want this behavior, you can define the get_default_command_options(cmd) hook in your monotonerc (fixes monotone bug #17878). New command 'undrop' which undoes a 'drop' done by mistake (fixes monotone bug #13604). New automation command 'update' which behaves identical to the normal 'update' command. 'ls tags' now outputs the branch name(s) a tagged revision is on. The revision id is shortened to the first ten characters to get some more space for this (fixes monotone bug #12773). Default include and exclude patterns are now remembered per server. This means that you can have for example one server that you sync everything to, and one that you only sync some branches to, and you don't have to worry about forgetting to give the include pattern and accidentally trying to sync everything to the second server. A new Lua extension function change_workspace(directory) has been added. This should be most useful for custom commands which need to work on multiple workspaces from the same monotone instance. There is also the new server_set_listening(bool) Lua extention function available since 0.47, which can be used to let a monotone server exit gracefully instead of having to be killed. Bugs fixed A regression in 0.47 prevent successful execution of push / pull / sync over pipes (Debian bug 574512); this has been fixed. A bug in 0.46 and 0.47 could lead to pulls or possibly commits taking approximately forever, if any of the previous branch heads was not a "close" relation of the new head. This has been fixed. Several bugs related to restrictions not including the required parent directories of included files have been fixed. It is now possible to say 'mtn add a/b/c' followed by 'mtn commit a/b/c' and have the commit succeed. See the restrictions section in the manual for more details (fixes monotone bugs #15994, #17499, #20447 and #22044). monotone no longer saves changed options from the command line back to _MTN/options in case the command execution was unsuccessful (fixes monotone bug #22928). When monotone reads packets from files, like f.e. keys in a directory given by the --keydir option, and these files are large and do not contain packet data at all, monotone no longer uses an excessive amount of time and memory to figure this out (fixes monotone bug #28799). The 'log' command no longer crashes if it is executed in a workspace whose parent revision(s) do not exist in the specified database (fixes monotone bug #29677). The 'clone' command no longer removes an existing bookkeeping directory if the target directory "." points to a workspace (fixes monotone bug #29927). The commands in monotone's help output are now sorted alphabetically. monotone on Windows will now have a non-zero exit code when interrupted (^C). This was broken in 0.47 when it was fixed to not throw an exception on being interrupted. In 0.46 and 0.47, monotone could sometimes get confused about which revisions were the heads of a particular branch. This would happen when a new branch cert was added to a revision that was an ancestor of one or more of the current heads of the branch, most commonly during netsync when multiple people had performed identical merges. This is fixed now. 'db check' will identify the problem; if your database currently gives incorrect 'heads' results, or 'mtn bug' on 'merge', you can fix it by running 'mtn db regenerate_caches'. In 0.46, spurious network disconnects could occur when transferring sufficiently large items (files, diffs, revisions). This was fixed in 0.47 but not noted in the release notes at that time (fixes monotone bug #28991). Other Support for the diffuse merger (http://diffuse.sourceforge.net) has been added. [Less]
Posted about 14 years ago
Changes The default '' author used by the git_export command has changed to 'Unknown ' and must be changed in existing author map files. The old '' author will be rejected by the new validate_git_author lua hook. The 'git_export' command now ... [More] 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. [Less]
Posted about 14 years ago
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 ... [More] 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. [Less]
Posted over 14 years ago
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 ... [More] 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/, 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. [Less]
Posted almost 15 years ago
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 ... [More] 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. [Less]
Posted about 15 years ago
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. ... [More] 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 ' or 'mtn --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. [Less]
Posted about 15 years ago
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. ... [More] 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 ' or 'mtn --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. [Less]
Posted over 15 years ago
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 ... [More] , 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 [email protected]. 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. [Less]
Posted over 15 years ago
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 ... [More] , 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 [email protected]. 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. [Less]
Posted over 15 years ago
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 ... [More] 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'. [Less]