Bugs fixed
- monotone crashed on x86_64 when a netsync action required
the parsing of an URL. This has been fixed.
(closes monotone issue 100)
- monotone's automation interface version was reported wrongly
as 12.1, where it should have been 13.0.
- Delete the monotone-server-init script.
- Modify the monotone rc.d(8) script to provide extra commands such as
'init', 'genkey' and 'read' to manipulate the server. These are not
interactive, but allow the same level of customization as the previous
script. Inspired by how the monotone init.d script from Fedora works.
- Delete the need of an rc.conf script in the pkg_sysconfdir of this
package. The settings previously stored there are now automatically
discovered.
- Fully automated creation of a server key: no more need to create a
passphrase by hand, memorize it, and stick it on a configuration file
to never look at it again.
- The log file is now placed where it belongs: in varbase/log.
- Addition of a monotone-server(7) manpage explaining the whole setup
process and pointers to the server files.
Note: upgrading from a previous version of the package will require manual
intervention if the rc.d script in /etc/rc.d is replaced. However, I
really doubt anyone is using this package so I didn't want to go through
the trouble of implementing a migration procedure. I've added a note to
the MESSAGE, though, asking users to contact me if required.
is a structure instead of a string. Should probably change this hook to use
the provided contrib/get_passphrase_from_file.lua file, but I just want to
get things working again for now. Bump PKGREVISION to 1.
the owner of all installed files is a non-root user. This change
affects most packages that require special users or groups by making
them use the specified unprivileged user and group instead.
(1) Add two new variables PKG_GROUPS_VARS and PKG_USERS_VARS to
unprivileged.mk. These two variables are lists of other bmake
variables that define package-specific users and groups. Packages
that have user-settable variables for users and groups, e.g. apache
and APACHE_{USER,GROUP}, courier-mta and COURIER_{USER,GROUP},
etc., should list these variables in PKG_USERS_VARS and PKG_GROUPS_VARS
so that unprivileged.mk can know to set them to ${UNPRIVILEGED_USER}
and ${UNPRIVILEGED_GROUP}.
(2) Modify packages to use PKG_GROUPS_VARS and PKG_USERS_VARS.
0.29 release. Code cleanups and bug fixes.
New features:
- The output of 'mtn status' has been changed significantly; the
output formerly used by 'mtn status --brief' has become the
default. For output similar to the old 'mtn status', see
'mtn automate get_revision'.
- It is now significantly easier to control what merger
monotone uses to resolve conflicts; for instance, to use
emacs to resolve conflicts, add:
merge = "emacs"
to your .monotonerc file. To override temporarily, you can
also use the environment variable MTN_MERGE, which takes the
same strings. Currently recognized strings are "kdiff3",
"xxdiff", "opendiff", "tortoisemerge", "emacs", "vim", and
"meld".
- Formerly, monotone's sync-over-ssh support required that an
absolute path be used, with a URL like:
ssh://venge.net/home/njs/my-db.mtn
The following syntaxes are now supported as well:
ssh://venge.net/~/my-db.mtn
ssh://venge.net/~njs/my-db.mtn
Bugs fixed:
- The bug where monotone would sometimes respond to a control-C
(or several other signals) by locking up and refusing to exit,
has been fixed.
- Monotone now properly respects SIGPIPE. In particular, this
means that 'mtn log | less' should now exit promptly when
'less' is exited.
- 'mtn log' now flushes its output after each message; this
makes 'mtn log <FILES>' significantly more usable.
- 'mtn log <FILES>' formerly listed irrelevant revisions (in
particular, any revision which contained a delete of any files
or directories, was always included). This has been fixed.
- If, during an update, two files both had conflicts, which,
when resolved, resulting the two files becoming identical, the
update would error out. This has been fixed.
- If _MTN/log exists and does not end in a newline, we now add a
newline before using the log message. This removes a problem
where the string "MTN:" would end up appended to the last line
of the log message.
- We no longer buffer up an arbitrarily large number of pending
writes in the database. This improves speed and memory usage
for 'commit', and fixes the problem where 'cvs_import' would
run out of memory.
- Monotone's tree walking code (used by 'ls unknown', 'ls
missing', and friends) now uses much less memory, especially
on reiserfs.
Automate changes:
- 'mtn automate stdio' now uses a configurable block size,
controlled by command-line option --automate-stdio-size. This
is mostly useful for testing speed/memory trade-offs.
- 'automate attributes' has a new format, which includes more
information.
Code cleanup:
- We now use boost::program_options to parse command line
options, rather than popt. The only user-visible change
should be that --option="" no longer works as a way to set
some option to the empty string; use --option "". (This
change also removes a lot of orphaned and historically buggy
code from monotone.)
Other:
- zsh completion script significantly revised and updated (see
contrib/monotone.zsh_completion).
appropriately otherwise.
- The server keypair is now stored and read from ${PKG_SYSCONFDIR}/keys
instead of being inside the database.
- Provide and use two files (read-permissions and write-permissions) to
set up netsync's access control.
- During monotone-server-init, run monotone under the unprivileged user
so that it creates files in the correct places (if any).
- Add a note to monotone-server-init to let the user ensure that the
UID and GID are correct. (I always get them wrong otherwise.)
- Make the rc.d script print a "divisory" line in the log file so that
different sections are easy to distinguish.
Bump PKGREVISION to 2.