2015-10-10 03:57:50 +02:00
|
|
|
# $NetBSD: Makefile,v 1.96 2015/10/10 01:58:05 ryoon Exp $
|
2004-08-15 16:38:38 +02:00
|
|
|
|
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.
2014-05-06 10:21:15 +02:00
|
|
|
DISTNAME= monotone-1.1
|
2015-10-10 03:57:50 +02:00
|
|
|
PKGREVISION= 6
|
2007-02-17 21:59:46 +01:00
|
|
|
CATEGORIES= devel scm
|
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.
2014-05-06 10:21:15 +02:00
|
|
|
MASTER_SITES= http://www.monotone.ca/downloads/1.1/
|
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.
2011-04-01 15:51:54 +02:00
|
|
|
EXTRACT_SUFX= .tar.bz2
|
2004-08-15 16:38:38 +02:00
|
|
|
|
2012-02-27 23:46:54 +01:00
|
|
|
MAINTAINER= pkgsrc-users@NetBSD.org
|
2006-09-05 11:58:14 +02:00
|
|
|
HOMEPAGE= http://monotone.ca/
|
2004-11-28 11:35:45 +01:00
|
|
|
COMMENT= Free distributed version control system
|
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.
2014-05-06 10:21:15 +02:00
|
|
|
LICENSE= gnu-gpl-v2 OR gnu-gpl-v3 # OR newer
|
2013-11-13 23:48:10 +01:00
|
|
|
|
2005-01-01 17:41:43 +01:00
|
|
|
GCC_REQD+= 3.0
|
2004-08-15 16:38:38 +02:00
|
|
|
GNU_CONFIGURE= yes
|
2007-07-06 01:20:49 +02:00
|
|
|
INFO_FILES= yes
|
2008-09-13 18:19:15 +02:00
|
|
|
TEST_TARGET= check
|
Update to 0.17:
0.17 release. bug fixes and features.
- many, many robustness improvements
- more careful checking everywhere
- much more thorough test suite
- all revisions subject to careful checks before
entering database
- not yet fully optimized; "pull" may be very
slow and use lots of cpu
- support for "epochs", to safely manage future
rebuilds, hash migration, etc.
- new "db check" command, thanks to Derek Scherger
<derek@echologic.com>.
- now uses sqlite3, thanks to Christof Petig
<christof@petig-baender.de>.
- removes most former size limitations
- "restrictions" support, thanks to Derek Scherger
<derek@echologic.com>.
- most commands now take a list of files to limit
their actions to
- monotone can now be run from anywhere in the working
directory (not just the root)
- new command "monotone setup" required to create a
working directory for a new project
- important security fix -- don't use shell when calling
external merge commands.
- format change for "MT/options", ".mt-attrs"; you may have to
edit these files
- new command "attr" for managing .mt-attrs.
- builds merkle tries in-memory -- netsync starts up many times faster
- start of new "automate" interface, for shell scripts and others.
- new command "cdiff": generates context diffs.
- remove most of now-obsolete manifest/file cert support.
- 60+ new integration tests.
- many portability fixes
- in particular, major win32 cleanups, thanks to Jon
Bright <jon@siliconcircus.com>. win32 is once again
fully and natively supported.
- many bug fixes
- several incompatible changes: see file UPGRADE for migration information
2005-03-21 23:50:20 +01:00
|
|
|
UNLIMIT_RESOURCES+= datasize
|
2011-04-23 23:26:40 +02:00
|
|
|
USE_TOOLS+= gmake makeinfo pax perl:run pkg-config
|
2004-11-28 11:35:45 +01:00
|
|
|
USE_LANGUAGES= c c++
|
Update to 0.23:
Possibly incompatible changes:
- hook_note_commit and hook_note_netsync_revision_received
take a new argument containing the text of the revision that
was received. (Timothy Brownawell <tbrownaw@gmail.com>)
- 'cat FILENAME' now acts like the old 'cat file REV
FILENAME'; use new commands 'automate get_revision',
'automate get_manifest', 'automate get_file' to fetch
objects by hash. (Grahame Bowland <grahame@angrygoats.net>)
General improvements:
- .mt-ignore support (Martin Dvorak
<jezek2@advel.cz>, Timothy Brownawell <tbrownaw@gmail.com>)
- much work on making monotone more i18n friendly (Benoît
Dejean <benoit@placenet.org>, Matt Johnston
<matt@ucc.asn.au>)
- support for more interactive merge tools:
- FileMerge.app (comes with OS X) (Marcel van der Boom
<marcel@hsdev.com>)
- TortoiseMerge (Win32; comes with TortoiseSVN) (Matthew
Gregan <kinetik@orcon.net.nz>)
- rename and drop now actually perform the specified rename or
deletion when the argument --execute is passed. (Richard
Levitte <richard@levitte.org>)
- 'help' command, same as --help (Matt Johnston
<matt@ucc.asn.au>).
- 'usher' support: experimental method for proxying multiple
netsync servers through a single port (similar concept to
vhosts) (Timothy Brownawell <tbrownaw@gmail.com>)
- support long passphrases (Matt Johnston <matt@ucc.asn.au>)
- Faster binary file detection (Eric Anderson
<anderse-monotone@cello.hpl.hp.com>)
- netsync speedups:
- when handling large files (Eric Anderson
<anderse-monotone@cello.hpl.hp.com>)
- when handling many branches (Marcel van der Boom
<marcel@hsdev.com>)
- new system to allow crash logs to contain not just execution
traces, but also dumps of data being handled when the error
was detected -- greatly improves debuggability of user
crashes.
- complete rework of path handling code, for clarity,
robustness, and speed. No user visible changes, except for
the many bugs fixed. (Special thanks to Matthew Gregan
<kinetik@orcon.net.nz> and Grahame Bowland
<grahame@angrygoats.net>.)
- however, if you have non-normalized paths in your history
(symptom: fresh pulls with 0.18 work, but fresh pulls with
0.19 do not), then 0.23 will report an error and refuse to
handle the affected revisions. Since it is believed this
only affects one project, and to conserve core developer
time, implementing a migration was put off for now. If
this causes problems or for more details, please send an
email to monotone-devel@nongnu.org.
- as always, many small bug fixes, speedups, and improved
messages.
New translations:
- fr (Benoît Dejean <benoit@placenet.org>)
- ja (Satoru SATOH <ss@gnome.gr.jp>)
Other new monotone-related projects since 0.22:
- mtsh by Timothy Brownawell:
https://netfiles.uiuc.edu/brownawe/www/mtsh/
GTK+ wrapper for monotone focusing on working copy
operations -- add/drop/revert/rename/commit/update/diff and
browsing. Has a mechanism for per-file commit comments.
- "dumb server" support by Nathaniel Smith (share your
monotone repositories via HTTP/FTP, no netsync daemon
needed):
http://viewmtn.angrygoats.net//branch.psp?branch=net.venge.monotone.dumb
Still needs a command-line frontend to be usable, among
other things. Help wanted. In python.
- m7 by Larry Hastings <larry@hastings.org>
http://www.midwinter.com/~lch/programming/m7/
Experimental drop-in command-line wrapper for monotone.
Uses certs to add local incrementing version numbers, and an
enhanced annotate front-end.
2005-09-30 15:18:24 +02:00
|
|
|
USE_PKGLOCALEDIR= yes
|
2004-11-28 11:35:45 +01:00
|
|
|
|
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.)
2007-10-26 16:08:24 +02:00
|
|
|
CONFIGURE_ARGS+= --with-system-pcre
|
2004-08-15 16:38:38 +02:00
|
|
|
|
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.
2011-04-01 15:51:54 +02:00
|
|
|
INSTALL_MAKE_FLAGS+= bashcompdir=${PREFIX:Q}/share/examples/monotone
|
|
|
|
|
2005-01-01 17:41:43 +01:00
|
|
|
PKG_OPTIONS_VAR= PKG_OPTIONS.monotone
|
2005-06-01 20:19:31 +02:00
|
|
|
PKG_SUPPORTED_OPTIONS= inet6
|
2012-06-12 17:45:54 +02:00
|
|
|
PKG_SUGGESTED_OPTIONS= inet6
|
2005-01-01 17:41:43 +01:00
|
|
|
|
2007-10-07 18:31:37 +02:00
|
|
|
CHECK_INTERPRETER_SKIP+= share/monotone/contrib/*
|
2007-06-26 17:26:37 +02:00
|
|
|
CHECK_PORTABILITY_SKIP+= debian/*
|
|
|
|
|
2011-04-23 23:26:40 +02:00
|
|
|
REPLACE_PERL= extra/bin/mtn-cleanup
|
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'.
2008-09-05 22:48:46 +02:00
|
|
|
REPLACE_SH= mtnopt
|
2011-04-23 23:26:40 +02:00
|
|
|
# The following are optional scripts for hooks. We do not replace their
|
|
|
|
# interpreter because we want to avoid a dependency on them. (Ideally they
|
|
|
|
# should be in separate packages with appropriate dependencies.)
|
|
|
|
CHECK_INTERPRETER_SKIP= share/monotone/scripts/monotone-ciabot.py
|
|
|
|
CHECK_INTERPRETER_SKIP+= share/monotone/scripts/monotone-mail-notify
|
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'.
2008-09-05 22:48:46 +02:00
|
|
|
|
2005-01-01 17:41:43 +01:00
|
|
|
.include "../../mk/bsd.options.mk"
|
|
|
|
|
2005-06-01 20:19:31 +02:00
|
|
|
.if !empty(PKG_OPTIONS:Minet6)
|
2005-01-01 17:41:43 +01:00
|
|
|
CONFIGURE_ARGS+= --enable-ipv6
|
|
|
|
.else
|
|
|
|
CONFIGURE_ARGS+= --disable-ipv6
|
|
|
|
.endif
|
2004-08-15 16:38:38 +02:00
|
|
|
|
Update to 0.48:
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 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).
- The output of monotone diff has changed to use /dev/null as the source
for added files and as the target for deleted files. This is
compatible with patch(1) and will cause it to add and delete files
where appropriate. As part of this change diff will now include the
removed contents of deleted files which were omitted in earlier
versions of monotone.
- 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.
2010-06-16 16:47:26 +02:00
|
|
|
INSTALLATION_DIRS+= share/monotone
|
|
|
|
|
Update to 0.39:
Changes
- 'mtn di' is now an alias for 'mtn diff'.
- 'automate db_set' has been renamed to 'automate set_db_variable'.
- 'automate db_get' has been replaced by 'automate get_db_variables'
which returns all database variables similar to 'list vars' in
basic_io format, optionally restricted by domain.
- The REVID argument of 'automate get_revision' is now mandatory;
to retrieve the current workspace revision, use the new command
'automate get_current_revision'
- messages describing conflicts from all of the various merge commands
have been reworked and should be much more informative.
- mtn show_conflicts now outputs much more detailed and descriptive
messages, however it may report content conflicts that will be
resolved automatically by the line merger.
- The internal copy of PCRE has been updated to version 7.6.
If you use the '--with-system-pcre' configure switch, it
will insist on at least this version.
- "emacs" has been removed from the list of dumb terminal types;
tickers should now default to --ticker=count with emacs terminals
- extensive section on merge conflicts and ways to resolve them
added to the manual.
Bugs fixed
- for changes near the beginning of a file, mtn's unified diff
output sometimes contained too many leading context lines.
- the path handling of 'mtn revert' was improved and fixed two bugs:
now a restricted revert on a node "dir1/file1" reverts only the
content changes in "file1", but leaves renames of any of its
ancestor nodes untouched; furthermore, if "dir0/" was renamed to
"dir1" and "dir1/file1" was dropped, mtn now re-creates file1 at the
proper place ("dir1/") and leaves no missing files around because
of the non-existing "dir0/".
- a few changes needed to build with gcc 4.3.
New features
- 'automate drop_db_variables' which drops one database variable
(like the 'unset' command) or all variables within a given domain.
- 'automate inventory' now accepts the options '--no-ignored',
'--no-unknown', '--no-unchanged' and '--no-corresponding-renames'.
Please consult the monotone documentation for more information about
these new options.
In addition, 'automate inventory' no longer recurses into ignored
directories. The typical case of listing files that need attention
now runs at least four times faster.
- 'automate get_current_revision' which outputs the revision text of
changes in the current workspace
2008-02-27 15:16:50 +01:00
|
|
|
BUILDLINK_API_DEPENDS.pcre+= pcre>=7.6
|
2008-01-02 23:35:04 +01:00
|
|
|
|
2004-11-28 11:35:45 +01:00
|
|
|
.include "../../converters/libiconv/buildlink3.mk"
|
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.
2009-09-23 18:05:06 +02:00
|
|
|
.include "../../databases/sqlite3/buildlink3.mk"
|
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.)
2007-10-26 16:08:24 +02:00
|
|
|
.include "../../devel/boost-headers/buildlink3.mk"
|
2004-11-28 11:35:45 +01:00
|
|
|
.include "../../devel/gettext-lib/buildlink3.mk"
|
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.
2009-09-23 18:05:06 +02:00
|
|
|
.include "../../devel/libidn/buildlink3.mk"
|
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.)
2007-10-26 16:08:24 +02:00
|
|
|
.include "../../devel/pcre/buildlink3.mk"
|
2011-12-17 00:44:21 +01:00
|
|
|
.include "../../devel/zlib/buildlink3.mk"
|
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.
2009-09-23 18:05:06 +02:00
|
|
|
.include "../../lang/lua/buildlink3.mk"
|
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.
2014-05-06 10:21:15 +02:00
|
|
|
# botan-devel is probably also fine
|
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.
2009-09-23 18:05:06 +02:00
|
|
|
.include "../../security/botan/buildlink3.mk"
|
2004-11-28 11:35:45 +01:00
|
|
|
.include "../../mk/pthread.buildlink3.mk"
|
2004-08-15 16:38:38 +02:00
|
|
|
.include "../../mk/bsd.pkg.mk"
|