Below is the file 'ChangeLog' from this revision. You can also download the file.

2006-02-23  Matt Johnston  <matt@ucc.asn.au>

	* enumerator.{cc,hh}: avoid transferring deltas on both sides of merge
	revisions, and prefer deltas to data when both are available.
	See
	https://savannah.nongnu.org/bugs/?func=detailitem&item_id=15846

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

	* work.cc (detach_node): This time for sure!

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

	* work.cc (detach_node): Oops, x != y != !(x == y).

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

	* work.cc (detach_node): Check if we are passed the root dir, and
	error out if so.

2006-02-21  Matt Johnston  <matt@ucc.asn.au>

	* commands.cc (pid_file): newline-terminate the pid

2006-02-21  Richard Levitte  <richard@levitte.org>

	* contrib/usher.cc (server::set_hosts): Erasing the list node that
	we're iterating on, then trying to go to the next node doesn't
	work.  Save the iterator, then increment it before erasing the
	node using the saved value.  No more segfaults.

2006-02-21  Matthew Gregan  <kinetik@orcon.net.nz>

	* sanity.hh: Work around roster_merge.cc compilation failure with
	GCC 3.4.

2006-02-20  Richard Levitte  <richard@levitte.org>

	* monotone.cc (cpp_main), options.hh, ui.cc (redirect_log_to),
	ui.hh (struct user_interface): Add --log option, to redirect the
	log lines to a file.

	* monotone.texi (OPTIONS): Document it.

	* po/sv.po: Translate help for this option to Swedish.

	* testsuite.at, tests/t_log_to_file.at: Test it.

2006-02-20  Matt Johnston  <matt@ucc.asn.au>

	* database.cc (remove_version): get rid of dangling deltas,
	don't try to put data or deltas if they already exist.
	* tests/t_db_kill_rev_locally_2.at: un-XFAIL

2006-02-20  Matthew Gregan  <kinetik@orcon.net.nz>

	* testsuite.at: Add an ADD_FILE variant that allows use of
	alternate databases.

	* tests/t_netsync_permissions.at: Missed some cases of the
	database locking race.

2006-02-19  Nathaniel Smith  <njs@pobox.com>

	* ChangeLog: Fixup after xxdiff lossage.

2006-02-19  Nathaniel Smith  <njs@pobox.com>

	* roster_merge.cc (make_lifecycle_objs): Fix test bug.

2006-02-19  Matthew Gregan  <kinetik@orcon.net.nz>

	* testsuite.at: Add a REVERT_TO variant that allows use of
	alternate databases.

	* tests/t_netsync_permissions.at: Attempt to avoid a database
	locking race in this test that is causing spurious failures by
	using the new REVERT_TO variant to cause revert to be performed
	using the "client" database.

2006-02-19  Nathaniel Smith  <njs@pobox.com>

	* roster.cc (shallow_equal): Publically expose.
	* roster.cc, roster_merge.cc: Various compile fixes.

2006-02-19  Nathaniel Smith  <njs@pobox.com>

	* roster_merge.{hh,cc}: Make terminology more consistent.
	"marking_map" type -> "markings" name, "marking_t" type ->
	"marking" name.

2006-02-19  Nathaniel Smith  <njs@pobox.com>

	* roster.{hh,cc} (testing_node_id_source): Make this node source
	available to unit tests in other files.
	* roster_merge.cc (test_roster_merge_node_lifecycle): New test.
	Still quite ugly.

2006-02-18  Nathaniel Smith  <njs@pobox.com>

	* roster_merge.cc (roster_merge): Remove obsolete FIXME.

2005-10-19  Matthew A. Nicholson  <matt@matt-land.com>

	* contrib/monotone.bash_completion: Update for 0.25.

2006-02-19  Matthew Gregan  <kinetik@orcon.net.nz>

	* cset.hh (struct editable_tree): Add commit() member function to
	editable_tree.

	* cset.cc (cset::apply_to): Call editable_tree::commit() after
	applying any other changes.

	* roster.hh, roster.cc: Empty implementation of
	editable_roster_base::commit().

	* work.hh, work.cc: Implementation of
	editable_working_tree::commit() that ensures all detached nodes
	have been reattached.

	* work.hh (struct editable_working_tree): Add map for tracking
	path name mappings across node detach operations.

	* work.cc (editable_working_tree::detach_node): Insert path name
	mappings into map.
	(editable_working_tree::drop_detached_node,
	editable_working_tree::attach_node): Report add/drop/rename
	operations during workspace updates.

	* lua.cc: Use the safer luaL_check* rather than lua_to* in
	monotone_*_for_lua functions.

2006-02-18  Markus Schiltknecht  <markus@bluegap.ch>

	* tests/t_cvsimport_branch.at, testsuite.at: New XFAIL test for
	cvs_import branch reconstruction.

2006-02-18  Matthew Gregan  <kinetik@orcon.net.nz>

	* tests/t_log_nofiles_merges.at: Add test for the log options
	--no-files and --merges.

	* testsuite.at: Add t_log_nofiles_merges.at.

2006-02-13  Nathaniel Smith  <njs@pobox.com>

	* roster_merge.cc (log_conflicts): Tweak string.
	Add list of tests needed.

2006-02-13  Nathaniel Smith  <njs@pobox.com>

	* roster_merge.cc (is_clean): Simplify.
	(add_roster_merge_tests):
	* unit_tests.cc (init_unit_test_suite):
	* unit_tests.hh (add_roster_merge_tests): Add unit test
	boilerplate.

2006-02-18  Matthew Gregan  <kinetik@orcon.net.nz>

	* tests/t_db_kill_rev_locally_2.at: Add an XFAIL test for a
	kill_rev_locally bug reported by Daniel Carosone.

	* testsuite.at: Add t_db_kill_rev_locally_2.at.

	* sqlite/parse.h: Regenerated parse.h from pristine SQLite 3.3.4
	source.  The version committed in the 3.3.4 import had a bunch of
	duplicate entries.

	* commands.cc (CMD(identify)): This isn't really a "workspace"
	command--stick it under "debug" for lack of a better place.

	* commands.cc (CMD(refresh_inodeprints)): Check for a valid
	workspace rather than failing with an invariant when run outside
	of a workspace.

	* tests/t_revert_new_project.at: Add an XFAIL test for a bug where
	reverting a file added in a new project will leave the workspace
	in a bad state until MT/work is removed manually.

	* testsuite.at: Add t_revert_new_project.at.

	* app_state.cc, app_state.hh, commands.cc, monotone.cc,
	options.hh: Add '--no-files' option to log to allow users to
	exclude the list of files changed in each revision from the log
	output.

	* monotone.texi: Document '--no-files', and '--next' and '--diffs'
	while there.

2006-02-17  Matthew Gregan  <kinetik@orcon.net.nz>

	* lua.cc, lua.hh, monotone.texi, std_hooks.lua, test_hooks.lua,
	testsuite.at: Remove unused non_blocking_rng_ok hook.

	* sqlite/*: Import SQLite 3.3.4.

2006-02-16  Patrick Mauritz  <oxygene@studentenbude.ath.cx>

	* netsync.cc (handle_new_connection): Netxx::Address.get_name()
	returns NULL every now and then. if so, continue with "" instead

	* sqlite/parse.c: move #line under all #include directives so
	the compiler can't be confused by it.

2006-02-14  Richard Levitte  <richard@levitte.org>

	* Makefile.am (htmldir): Add variables so monotone.html is created
	and installed automatically.
	This is prompted by debian/monotone.html, which indicates
	monotone.html should be available.

	* netsync.cc (serve_connections): Correct spelling.

2006-02-13  Matthew Gregan  <kinetik@orcon.net.nz>

	* sanity.cc (sanity::dump_buffer): Fix a SEGV when we're in an
	error unwind and about to ask the user to mail us the crash
	log--we must use FL() rather than F() here, since by the time this
	is called we can't rely on the i18n infrastructure being alive.

2006-02-12  Nathaniel Smith  <njs@pobox.com>

	* netsync.cc (serve_connections): Revert garbage that I
	accidentally checked in last time...

2006-02-12  Nathaniel Smith  <njs@pobox.com>

	* NEWS: Add things done since last time I did this...

2006-02-12  Matthew Gregan  <kinetik@orcon.net.nz>

	* {cset,paths,revision,roster,sanity,vocab}.{cc,hh}: GCC 4.1
	compile fixes.

2006-02-11  Richard Levitte  <richard@levitte.org>

	* NEWS: Removed my notice about netsync, as I just noticed it
	was already mentioned under Bugs:.

2006-02-11  Nathaniel Smith  <njs@pobox.com>

	* configure.ac, debian/changelog, monotone.spec:
	* win32/monotone.iss: Bump version to 0.26pre2.

2006-02-11  Nathaniel Smith  <njs@pobox.com>

	* NEWS: Add mention of validate_commit_message.

2006-02-11  Blake Kaplan <mrbkap@gmail.com>

	* monotone.texi (Hooks): Added new subsection about validation
	hooks, and describe validate_commit_message in it.

	* std_hooks.lua (validate_commit_message): Change the second
	argument to match the documentation.

2006-02-11  Matt Johnston  <matt@ucc.asn.au>

	* database.hh: increase checkpoint batch size from 100 to 1000

2006-02-11  Matt Johnston  <matt@ucc.asn.au>

	* NEWS: Fix rename example.

2006-02-11  Richard Levitte  <richard@levitte.org>

	* NEWS: Update with the netsync change.

2006-02-11  Nathaniel Smith  <njs@pobox.com>

	* NEWS: Draft for 0.26pre2.

2006-02-11  Richard Levitte  <richard@levitte.org>

	* netsync.cc (serve_connections): Enclose more or less everything
	in a try-catch block to catch if using IPv6 failed, and to try
	with just IPv4 in that case.  This is important for those who
	copy a IPv6-enabled binary to a system that doesn't use IPv6.

	* po/sv.po: Adapt translation to the newly changed messages.

2006-02-10  Derek Scherger  <derek@echologic.com>

	* tests/t_drop_missing.at:
	* tests/t_rename.at:
	* work.cc (visit_file): attempt to improve a couple of messages;
	remove some unrequired \n's

2006-02-10  Derek Scherger  <derek@echologic.com>

	* netsync.cc (process_anonymous_cmd, process_auth_cmd): don't
	report misleading permission denied errors for branches that are
	not being served
	* paths.cc (find_and_go_to_workspace): delete stale comment
	* tests/t_netsync_permissions.at: add test pull of branch that is
	not served

2006-02-11  Timothy Brownawell  <tbrownaw@gmail.com>

	Adding your db is silly and confusing (what should revert do?).
	So, it's not allowed any more (the db file is ignored, regardless of
	what the ignore hook says).
	* tests/t_add_owndb.at: remove XFAIL, use 'ls known' instead of
	'ls unknown'
	* testsuite.at: don't put the db in the ignore hook
	* database.{cc,hh}: is_dbfile(), check if a path is the database file
	* work.cc: check is_dbfile where we check the ignore hook when
	walking the filesystem
	* tests/t_mt_ignore.at: fix for having the db always be ignored

2006-02-10  Richard Levitte  <richard@levitte.org>

	* monotone.texi (Hooks): Change the example for
	get_revisions_cert_trust to check "branch" certs instead of
	"ancestor" ones, and thereby match the effect of the "approve"
	command.

2006-02-10  Matt Johnston  <matt@ucc.asn.au>

	* commands.cc (CMD(checkout)): wrapping in a transaction makes
	a big difference.

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

	* Makefile.am (SQLITE_SOURCES): Remove header files lost in
	latest SQLite upstream import.

2006-02-09  Graydon Hoare  <graydon@pobox.com>

	* lua.cc (hook_validate_commit_message): make validated the
	default.

2006-02-09  Richard Levitte  <richard@levitte.org>

	* tests/t_cvsimport.at, tests/t_cvsimport3.at,
	tests/t_cvsimport_deleted_invar.at,
	tests/t_cvsimport_manifest_cycle.at, tests/t_cvsimport_samelog.at,
	tests/t_singlecvs.at: Changed to cope with the strictness of
	CVSNT.  It doesn't create a CSVROOT/history file automagically,
	but CVSROOT/modules is created automatically both by the older CVS
	and by CVSNT.  You can't check out a group of files using revision
	numbers with CVSNT.  You MUST stand in the work directory for some
	command with CVSNT.  Finally, with CVSNT, 'cvs init' generates the
	following message if you're a normal user, at least on Debian:

	cvs init: Unable to register repository.
	cvs init: Your login may not have sufficient permissions to modify the
	cvs init: global server settings.
	cvs init: Repository /home/levitte/cvsfoo initialised

2006-02-09  Matthew Gregan  <kinetik@orcon.net.nz>

	* testsuite.at: Remove duplicate line.

2006-02-08  Matthew Gregan  <kinetik@orcon.net.nz>

	* sqlite/*: Import SQLite 3.3.3.
	* Makefile.am: Adjust for new and removed files in import.
	* NEWS: Make a note of the SQLite database format change.
	* database.cc (database::load): Rewrite so that we don't need any
	local changes to SQLite.

2006-02-08  Richard Levitte  <richard@levitte.org>

	* testsuite.at, tests/t_ls_changed.at: News test, for "list
	changed".

	* monotone.texi, monotone.1: Document "list changed".

	* po/sv.po: Correct translations of changed messages, translate
	new messages.

	* commands.cc (ls_changed, CMD(list)): Add a new command, "list
	changed", to list changed files, always sorted in lexical order.

2006-02-06  Blake Kaplan  <mrbkap@gmail.com>

	* commands.cc CMD(commit): Call a new lua hook to validate the commit
	message. Don't ignore -m "" when it's passed on the command line.
	* lua.cc, lua.hh: Add a new hook that validates a given commit message
	and passes in the added files, deleted files, and modified files.
	* std_hooks.lua: Give a default hook to validate commit messages. This
	currently disallows empty messages, as monotone currently does.

2006-02-05  Benoît Dejean  <benoit@placenet.org>

	* ui.cc (tick_write_count::write_ticks): Reverted lexical_cast,
	back to F().

2006-02-05  Benoît Dejean  <benoit@placenet.org>

	* ui.cc (tick_write_count::write_ticks): Fixed utf8 handling.
	boost::format + locale sucks, it ouputs "1\u+ffff24" for
	"%d" % 1024.

2006-02-02  Emile Snyder  <emile@alumni.reed.edu>

	* merge.cc (resolve_merge_conflicts): If the merge has non-content
	conflicts warn the user and abort before making them do content
	merges.  Move logging/warning of conflicts to methods in the
	roster_merge_result struct.

	* roster_merge.{cc,hh} (log_conflicts,
	warn_non_content_conflicts): New methods to do the busy work of
	logging or warning.

2006-02-02  Emile Snyder  <emile@alumni.reed.edu>

	* netsync.cc (run_netsync_protocol): Print a warning if either the
	include or the exclude branch pattern have a ' or a " character
	anywhere in them.  Hopefully will help users running in a Windows
	shell when they do: monotone sync myserver 'mybranch*' and nothing
	happens because the ' characters are passed in to monotone.

2005-01-30  Emile Snyder  <emile@alumni.reed.edu>

	* annotate.cc: (do_annotate) Add ticker for revisions processed to
	annotate command.

2006-01-29  Richard Levitte  <richard@levitte.org>

	* po/sv.po: Update a few translations, leave a number of fuzzy
	ones until we've decided how "workspace" should be translated.

2006-01-27  Matthew Gregan  <kinetik@orcon.net.nz>

	* *: Use the term 'workspace' consistently throughout monotone for
	the concept we previously described interchangably using the two
	terms 'working copy' and 'working directory'.  This change has
	been made everywhere except in historical documentation (NEWS and
	ChangeLog).

2006-01-27  Richard Levitte  <richard@levitte.org>

	* monotone.texi (Generating Keys): Correct small type, the keys
	are not stored in /home/jim/.monotone/monotonerc.

2006-01-26  Derek Scherger  <derek@echologic.com>

	* app_state.{cc,hh}:
	* commands.cc (log):
	* monotone.cc:
	* options.hh: allow --next to view upcoming changes
	* tests/t_log_depth.at: rename to ...
	* tests/t_log_last_next.at: ... this since log now uses
	--last/--next and not --depth
	* testsuite.at: rename t_log_depth.at to t_log_last_next.at

2006-01-27  Matthew Gregan  <kinetik@orcon.net.nz>

	* monotone.texi: Clean up 'serve' syntax in a couple of places.

2006-01-26  Nathaniel Smith  <njs@pobox.com>

	* monotone.texi (Generating Keys, Network Service Revisited):
	Clean up some key-related stuff -- genkey doesn't need a db, so
	don't confuse the reader by giving it one, and update the sample
	output too.

2006-01-27  Stéphane Gimenez <dev@gim.name>

	* sanity.hh: fix scoping issue revealed by gcc-4.1.

2006-01-26  Richard Levitte  <richard@levitte.org>

	* po/sv.po: One more translation.

2006-01-25  Matthew Gregan  <kinetik@orcon.net.nz>

	* netsync.cc (session::rebuild_merkle_trees): Ticker header
	consistency tweak.

2005-01-25  Matt Johnston  <matt@ucc.asn.au>

	* HACKING: add some notes about compiling - precompiled headers,
	-O0, and ccache.
	* INSTALL: mention --enable-pch

2006-01-25  Richard Levitte  <richard@levitte.org>

	* po/sv.po: Fix all fuzzy translations (some needed no fix).
	Translate the last untranslated ones.

2005-01-24  Timothy Brownawell  <tbrownaw@gmail.com>

	Make a netsync client crash not hang the testsuite.
	* tests/t_netsync_single.at: use netsync macros
	* testsuite.at: Make NETSYNC_SETUP set a trap on exit to kill
	any servers.

2005-01-24  Timothy Brownawell  <tbrownaw@gmail.com>

	* commands.cc (update): Remove fixme comment.

2005-01-24  Timothy Brownawell  <tbrownaw@gmail.com>

	* commands.cc (update): Allow backwards/sideways updates.
	tests/t_update_to_revision.at: remove XFAIL

2006-01-23  Nathaniel Smith  <njs@pobox.com>

	* database.{cc,hh}: Clean up code formatting a bit, rename some
	variables, rely more on automatic conversion.

2006-01-24  Vinzenz Feenstra <evilissimo@c-plusplus.de>

	* query_args.hh: Introduced struct query_args and struct
	query_args_param. Used to typesafe arguments for database::execute
	and database::fetch
	* database.cc/.hh: Adjusted database to the new fetch and execute
	argument style via operator% which is more typesafe.

2006-01-23  Nathaniel Smith  <njs@pobox.com>

	* database.cc (assert_sqlite3_ok): Improve the hint message given
	for SQLITE_ERROR's.

2006-01-23  Timothy Brownawell  <tbrownaw@gmail.com>

	* tests/t_database_check_normalized.at: update included database to
	use rosters

2006-01-23  Timothy Brownawell  <tbrownaw@gmail.com>

	New ChangeLog utilities in contrib/ .
	* contrib/ChangeLog.sh: Script that takes the date, author, and
	changelog certs from the last n revisions and prints them in standard
	ChangeLog format.
	* contrib/edit_comment_from_changelog.lua: an edit_comment hook that
	takes the initial commit message from the most recent ChangeLog entry

2006-01-23  Henry Nestler  <henry@bigfoot.de>

	* monotone.texi, monotone.1: Mode none for --ticker.

2006-01-23  Nathaniel Smith  <njs@pobox.com>

	* commands.cc (update): Hopefully improve wording of help a bit.

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

	* netcmd.cc (read): Expand the error message we issue on protocol
	version mismatch to be a bit more informative.

2006-01-21  Matthew Gregan  <kinetik@orcon.net.nz>

	* configure.ac: Fix up Windows and IPv6 tests after the change
	from AC_TRY_RUN to AC_TRY_COMPILE.  Also a couple of other minor
	cleanups.
	* Makefile.am: Remove win32/wcwidth.c from WIN32_PLATFORM_SOURCES.

2006-01-21  Timothy Brownawell  <tbrownaw@gmail.com>

	* tests/t_db_execute.at: Play with the files table instead of the
	revisions table, so we don't trigger the has-revisions-but-no-rosters
	check.

2006-01-21  Richard Levitte  <richard@levitte.org>

	* po/sv.po: Sort the translation guidelines a little more.

2006-01-21  Joel Rosdahl  <joel@rosdahl.net>

	* po/sv.po: Corrections in translation guidelines.

2006-01-21  Joel Rosdahl  <joel@rosdahl.net>

	* AUTHORS: Added myself as a translation contributor.
	* po/sv.po: Second round of review of Swedish translation.

2006-01-20  Richard Levitte  <richard@levitte.org>

	* po/sv.po: Added a \n at the end of a msgstr that was missing
	it.

2006-01-20  Joel Rosdahl  <joel@rosdahl.net>

	* po/sv.po: Review and suggested corrections of Swedish
	translation.

2006-01-20  Timothy Brownawell  <tbrownaw@gmail.com>

	* netsync.cc: Make our sockets non-blocking.

2006-01-20  Matt Johnston  <matt@ucc.asn.au>

	* commands.cc CMD(setup): default to current dir
	* monotone.texi: update
	* t_setup_existing_path.at: add test

2006-01-19  Emile Snyder  <emile@alumni.reed.edu>

	Add a --brief mode to the annotate command which prints more
	informative annotations rather than just the raw revision ids.

	* commands.cc (CMD(annotate)): Add --brief option to the annotate
	command and remove obsolete comment lines.
	* annotate.cc (dump): Pass in app_state to allow access to db for
	cert lookups on revisions.  Honor new --brief
	flag by printing <short id>.. by <author> <date>: as the
	annotation rather than the raw revision id, and only printing the
	annotation for the first line of each block of lines from the same
	revision.
	(cert_string_value): Given a set of certs from a revision, a cert
	name, and some detail of what part of the value we want, find and
	return that part of the cert.
	(build_revisions_to_annotations): After we finish with the
	annotations pass, build up a mapping of revision id to annotation
	string.
	* monotone.texi: Add --brief flag and description to the annotate
	section of the command reference.

2006-01-19  Matt Johnston  <matt@ucc.asn.au>

	* work.{cc,hh}, commands.cc: add "rename src1 [src2 ...] dst/"
	syntax.
	* monotone.texi: update
	* testsuite.at, tests/t_rename_destdir: new test (is incomplete).
	* tests/t_no_rename_overwrite.at: syntax should now succeed.
	* vocab.cc: add hexenc<id> dump() instantiation.

2006-01-19  Matt Johnston  <matt@ucc.asn.au>

	* HACKING: escape the colon in the cino vim modeline option.

2006-01-19  Nathaniel Smith  <njs@pobox.com>

	* database.cc (check_format): Small cleanups to previous change.

2006-01-19  Nathaniel Smith  <njs@pobox.com>

	Fix bug reported by Henry Nestler, where 'serve' did not detect
	that the user had not run 'db rosterify'.
	* database.cc (check_rosterified): Rename to...
	(check_format): ...this.  Detect unchangesetified dbs too.
	(sql, ensure_open_for_format_changes, get_roster_id_for_revision):
	* revision.cc (build_roster_style_revs_from_manifest_style_revs)
	(build_changesets_from_manifest_ancestry): Adjust accordingly.
	* tests/t_check_db_format.at, testsuite.at: New test.

2005-01-18  Timothy Brownawell  <tbrownaw@gmail.com>

	* tests/t_lua_privkey.at: Remove; this tests a hook that was removed.
	* testsuite: adjust accordingly

2006-01-19  Matthew Gregan  <kinetik@orcon.net.nz>

	* keys.cc (get_passphrase): Update std::map correctly--remove
	existing cached passphrase for a given keyid, then store the new
	one using safe_insert().
	(make_signature): Fix crash when running monotone with persistent
	passphrases disallowed--remove shared_ptr that was going out of
	scope too early, and shadowed and existing shared_ptr in the
	correct scope.
	* tests/t_no_persist_phrase.at: New test to check that basic no
	persistent passphrase functionality works.
	* testsuite.at: Include new test.

2006-01-18  Timothy Brownawell  <tbrownaw@gmail.com>

	* merkle_tree.{cc,hh}: Add a locate_item() function to find the
	node and slot in a merkle_table that a given item is in.
	* refiner.cc (refiner::process_refinement_command): If they have
	a leaf and we have a subtree then if their leaf is in our subtree,
	we need to tell them.

2006-01-18  Nathaniel Smith  <njs@pobox.com>

	* configure.ac: Remove some dead comments.

2006-01-18  Nathaniel Smith  <njs@pobox.com>

	* configure.ac: s/TRY_RUN/TRY_COMPILE/ a few places, for general
	cleanliness.

2006-01-18  Richard Levitte  <richard@levitte.org>

	* po/sv.po: Better translation of "branch".  Inspired from
	subversion.

2006-01-18  Nathaniel Smith  <njs@pobox.com>

	* database.cc (begin_transaction): Turn an E() into an I().

2006-01-15  Richard Levitte  <richard@levitte.org>

	* po/sv.po: Almost all translations done.  I've left a few for
	lack of inspiration.  Someone, PLEASE REVIEW!

2006-01-15  Nathaniel Smith  <njs@pobox.com>

	* AUTHORS: Add Richard as a translator.

2006-01-15  Nathaniel Smith  <njs@pobox.com>

	* roster.cc (union_corpses): New function.
	(unify_roster_oneway, unify_rosters): Remove unused new_ids
	argument.  Add call to union_corpses.  Add big comment explaining
	what's going on.
	(test_unify_rosters_end_to_end_ids)
	(test_unify_rosters_end_to_end_attr_corpses): Split and improve
	tests.

2006-01-15  Richard Levitte  <richard@levitte.org>

	* po/sv.po: More translations done.

2006-01-15  Richard Levitte  <richard@levitte.org>

	* LINGUAS: Change sv_SE to just sv.
	* po/sv_SE.po: Rename ...
	* po/sv.po: ... to this, as there aren't so many dialects.  Update
	with more strings to translate.

	* std_hooks.lua: xgettext whines about a missing quote, so add
	one.

2006-01-15  Nathaniel Smith  <njs@pobox.com>

	* roster.cc (test_unify_rosters_end_to_end): Add failing test for
	unify_roster's handling of attr corpses.

2006-01-15  Nathaniel Smith  <njs@pobox.com>

	* cert.cc (load_key_pair):
	* keys.cc (require_password): Use accessor method, so as to
	actually compile...

2006-01-15  Matt Johnston  <matt@ucc.asn.au>

	* ui.cc: make tickers saner (203 K vs 0.2 M).
	Print full byte counts below 1 K.

2006-01-14  Nathaniel Smith  <njs@pobox.com>

	* lua.cc (hook_get_key_pair): Remove.
	* keys.cc (require_password): Adjust accordingly.
	* cert.cc (priv_key_exists, load_key_pair): Likewise.

2006-01-14  Richard Levitte  <richard@levitte.org>

	* configure.ac: Make sure there's an empty xgettext.opts
	when xgettext accepts --flag.  This avoids getting an error
	message later on when cat can't find it to append to
	po/Makefile.in.

	* po/LINGUAS, po/sv_SE.po: New Swedish translation.  Needs
	reviewing at this stage.

2006-01-13  Richard Levitte  <richard@levitte.org>

	* monotone-notify.pl: Make it possible for the user to say what
	the monotone binary is called or where it is.  Adapt to revision
	output changes and to changes in the monotone UI.

2006-01-12  Nathaniel Smith  <njs@pobox.com>

	* po/Makevars (XGETTEXT_OPTIONS): This time for sure!

2006-01-13  Nathaniel Smith  <njs@pobox.com>

	* database.cc (check_rosterified): Clarify message emitted when db
	has not been rosterified.

2006-01-12  Nathaniel Smith  <njs@pobox.com>

	* po/Makevars (XGETTEXT_OPTIONS): More fiddling to make
	intltool-update happy.

2006-01-13  Bruce Stephans  <monotone@cenderis.demon.co.uk>

	* lua.cc (shared_trust_function_body): Index lua arrays
	from 1, not 0.

2006-01-12  Nathaniel Smith  <njs@pobox.com>

	* sanity.cc (dump_buffer): Add forgotten newline.

2006-01-12  Nathaniel Smith  <njs@pobox.com>

	* roster.cc (make_roster_for_merge): Add more MM()'s.

2006-01-12  Matthew Gregan  <kinetik@orcon.net.nz>

	* contrib/{color-logs.{conf,sh},monotone.el}: Changes to handle
	renaming of --no-merges.
	* app_state.{cc,hh}, commands.cc, monotone.cc, options.hh: Make
	'log' default to not displaying merges.  Rename '--no-merges'
	option to '--merges'.

2006-01-11  Nathaniel Smith  <njs@pobox.com>

	* commands.cc (diff): gettext'ify the "no changes" tag.

2006-01-11  Richard Levitte  <richard@levitte.org>

	* Makefile.am: Add contrib/usher as an extra program.  This works
	as a reminder that this program exists, and provides supported
	ways to build it.

	* contrib/usher.cc: Add a -m switch, to be able to specify the
	name or complete path of/to the monotone binary, in case there
	are several floating around on the system.

2006-01-11  Matt Johnston  <matt@ucc.asn.au>

	* Makefile.am: pch.hh should be included

2006-01-11  Nathaniel Smith  <njs@pobox.com>

	* sanity.hh (struct i18n_format): Make internationalized format
	strings and non-internationalized format strings type-distinct.
	(This hopefully sets up for fixing some of the charset mess later
	down the road.)
	(FL): New macro; like F but without the i18n glue.
	Use FL with L, and F/FP with everything else.
	* *.hh, *.cc: Adjust existing F/L/etc. usage accordingly.

2006-01-11  Nathaniel Smith  <njs@pobox.com>

	* HACKING: Add section listing all the single-character macros.

2006-01-11  Nathaniel Smith  <njs@pobox.com>

	* database.cc (fetch): Don't log all SQL unless requested by
	user.

2006-01-11  Nathaniel Smith  <njs@pobox.com>

	* po/Makevars (XGETTEXT_OPTIONS):
	* configure.ac: Tweak xgettext configuration to make intltool
	happier.

2006-01-11  Nathaniel Smith  <njs@pobox.com>

	* netsync.cc (process_confirm_cmd): Remove.

2006-01-11  Matthew Gregan  <kinetik@orcon.net.nz>

	* platform.hh, win32/wcwidth.c: Remove local wcswidth
	implementation--it's no longer needed.

2006-01-10  Derek Scherger  <derek@echologic.com>

	* tests/t_revert_unchanged.at: new test to check that reverting
	nothing but unchanged files doesn't end up with an empty
	restriction and revert everything
	* testsuite.at: call it

2006-01-10  Nathaniel Smith  <njs@pobox.com>

	* packet.cc (packet_roundabout_test): Test rdata packets too.

2006-01-10  Nathaniel Smith  <njs@pobox.com>

	* netsync.cc (session):
	* commands.cc (read): Adjust to match previous change.

2006-01-10  Nathaniel Smith  <njs@pobox.com>

	* packet.{hh,cc} (struct packet_db_writer): Remove old guard
	against accidentally ingesting public keys -- this has not been
	useful for some years.

2006-01-10  Nathaniel Smith  <njs@pobox.com>

	* diff_patch.hh (struct content_merger): Oops, forgot to remove
	the merge2 prototype.

2006-01-10  Nathaniel Smith  <njs@pobox.com>

	* std_hooks.lua:
	* lua.cc (hook_merge2):
	* diff_patch.cc (try_to_merge_files): Remove merge2 code, since we
	no longer do merge2's.  (We can always revive it if we add suture
	support.)

2006-01-10  Nathaniel Smith  <njs@pobox.com>

	* packet.cc (consume_file_delta): Remove unused 4-argument form.

2006-01-10  Nathaniel Smith  <njs@pobox.com>

	* lua.{cc,hh} (hook_resolve_file_conflict)
	(hook_resolve_dir_conflict): Remove dead code.

2006-01-10  Nathaniel Smith  <njs@pobox.com>

	* tests/t_selectors_b_h.at, testsuite.at: New test.

2006-01-10  Nathaniel Smith  <njs@pobox.com>

	* database.cc (manifest_cert_exists, put_manifest_cert):
	(get_manifest_cert, get_manifest_certs): Remove unused methods.

2006-01-10  Nathaniel Smith  <njs@pobox.com>

	* database.cc (put_reverse_version, put_file_reverse_version):
	Whoops, missed some dead code.

2006-01-10  Nathaniel Smith  <njs@pobox.com>

	* revision.cc (build_roster_style_revs_from_manifest_style_revs):
	Remove unused variable; silence gcc warning.

2006-01-10  Nathaniel Smith  <njs@pobox.com>

	* packet.cc (consume_file_reverse_delta)
	(struct feed_packet_consumer): Remove support for nonexistent
	"frdelta" packet type.
	* database.{hh,cc} (put_reverse_version)
	(put_file_reverse_version): Remove unused methods.
	* key_store.cc (struct keyreader): Remove obsolete methods.

2006-01-10  Nathaniel Smith  <njs@pobox.com>

	* database.cc (set_filename): Simplify slightly.
	(delta_exists): Remove unused 3-argument version.

2006-01-10  Nathaniel Smith  <njs@pobox.com>

	* commands.cc (reindex): Remove.
	* database.cc (database::rehash): Likewise.

2006-01-10  Nathaniel Smith  <njs@pobox.com>

	* change_set.{cc,hh}: Remove.

2006-01-10  Nathaniel Smith  <njs@pobox.com>

	* contrib/ciabot_monotone.py (Monotone.get_revision): Update to
	use 'automate get_revision' instead of 'cat revision'.

2006-01-10  Richard Levitte  <richard@levitte.org>

	* lua.cc (monotone_parse_basic_io_for_lua): Don't trust the
	returned value from lua_tostring() to stick around.  Instead, copy
	it into a regular std::string.
	* std_hooks.lua (get_netsync_read_permissions,
	get_netsync_write_permissions): Make sure to properly close the
	permission files.

2006-01-09  Richard Levitte  <richard@levitte.org>

	* contrib/usher.cc, monotone.1, monotone.cc, po/fr.po, po/ja.po,
	po/pt_BR.po, testsuite.at: Change the default port from 5253 to
	4691 (assigned to us by IANA).

2006-01-07  Patrick Mauritz  <oxygene@studentenbude.ath.cx>

	* schema_migration.cc: add safe-guard against passing a null pointer
	into string handling. (necessary with sun studio)

2006-01-05  Derek Scherger  <derek@echologic.com>

	* app_state.{cc,hh} (set_restriction): remove "respect_ignore"
	flag and don't complain about ignored files
	* commands.cc (status, list, diff): allow --exclude option for
	restrictions
	* restrictions.hh: add a comment about restricted command
	consistency
	* tests/t_restricted_commands_consistent.at: new test to give that
	bark some bite
	* testsuite.at: call it

2005-12-29  Nathaniel Smith  <njs@pobox.com>

	* NEWS: Write up for 0.25.

2005-12-29  Matthew Gregan  <kinetik@orcon.net.nz>

	* sqlite/{pager.c,sqlite3.h}: Upgrade to SQLite 3.2.8.

2005-12-29  Nathaniel Smith  <njs@pobox.com>

	* NEWS: Notes on what to write up for 0.25.
	* win32/monotone.iss, monotone.spec, debian/changelog:
	* configure.ac, UPGRADE: Bump.

2005-12-26  Matt Johnston  <matt@ucc.asn.au>

	* commands.cc (CMD(revert)): revert with no args prints usage,
	mention "." for entire working copy.

2005-12-21  Matt Johnston  <matt@ucc.asn.au>

	* commands.cc (dump_difs, CMD(log)): only print --diffs for the file
	of interest.

2005-12-21  Matthew Gregan  <kinetik@orcon.net.nz>

	* botan/es_capi.{cpp,h}: Windows compile fixes for Botan 1.4.10.

2005-12-21  Matt Johnston  <matt@ucc.asn.au>

	* upgrade to Botan 1.4.10

2005-12-20  Daniel Carosone  <dan@geek.com.au>

	* monotone.texi: Rearrange the description of monotone serve into
	two sections; the first one describing basic steps necessary to
	get Jim and the reader through to the next sections, and a later
	more advanced section that discusses some of the subleties and
	choices and moves them on to running a dedicated server.  Other
	small tweaks in nearby sections while here.

2005-12-18  graydon hoare  <graydon@pobox.com>

	* AUTHORS: Add Roland.

2005-12-17  Roland McGrath  <roland@redhat.com>

	* work.hh (struct file_itemizer): Remove extraneous qualifier on
	visit_file declaration.
	* app_state.hh (class app_state): Remove extraneous qualifier on
	set_restriction declaration.

2005-12-14  Matthew Gregan  <kinetik@orcon.net.nz>

	* win32/fs.cc: Handle the fact that the MoveFileEx symbol might
	exist in kernel32.dll even though it doesn't actually work.  It
	turns out that Win9x implements a bunch of NT-only symbols as
	stubs that return ERROR_CALL_NOT_IMPLEMENTED, so it's not
	sufficient to detect feature availability by doing symbol lookups
	at runtime.  Also add a missing parameter to the final error
	message.  Fixes #15063.

2005-12-13  Derek Scherger  <derek@echologic.com>

	* commands.cc (update): remove \n from F() string
	(revert): display "reverting..." messages similar to update
	* tests/t_revert.at: allow output from revert

2005-12-13  Matthew Gregan  <kinetik@orcon.net.nz>

	* testsuite.at: Use SIGTERM rather than SIGSEGV to close down
	monotone servers.
	* HACKING, tests/README: Remove references to use of SEGV for
	terminating monotone servers.

2005-12-13  Timothy Brownawell  <tbrownaw@gmail.com>

	* constants.cc: New netsync is incompatible, bump protocol version.
	* constants.hh: Change default port to the one IANA assigned us.

2005-12-10  Timothy Brownawell  <tbrownaw@gmail.com>

	* roster.cc (make_roster_for_merge): unshadow the node_id_source
	argument. Resolve usages to the argument or the local by educated guess.

2005-12-10  Timothy Brownawell  <tbrownaw@gmail.com>

	* paths.{cc,hh}: operator<() for split_path's

2005-12-10  Timothy Brownawell  <tbrownaw@gmail.com>

	* sanity.{cc,hh}: Fix musing dumps so that the header line always gets
	printed, even if printing the body throws an exception.
	* database.cc, packet,cc, revision.cc: sprinkle MMs
	* cset.cc: sanity check print_cset to match parse_cset

2005-12-08  Matthew Gregan  <kinetik@orcon.net.nz>

	* po/pt_BR.po: Add missing newline.
	* AUTHORS: Add Alex Queiroz to list of translators.

2005-12-08  Alex Queiroz  <asandroq@gmail.com>

	* po/pt_BR.po: Beginnings of the Brazilian Portuguese translation.
	* po/LINGUAS: Add it.

2005-12-06  Timothy Brownawell  <tbrownaw@gmail.com>

	* packet.cc (packet stream reading): Fix handling of privkey packets.
	It would convert pubkey+privkey to keypair, but not change the private
	key to the new encryption type. Now uses migrate_private_key to
	convert privkey->keypair. Reading privkey packets from stdin only works
	if the get_passphrase hook is defined for that key.
	Fix packet_roundabout_test; the send+receive part was using an empty
	stream, rather than the packet sequence generated in the first part.
	* packet.hh, commands.cc, key_store.cc: read_packets now takes an
	app_state argument.
	* tests/t_dropkey_2.at: use genkey instead of reading packets
	* tests/t_read_privkey.at: check that reading a privkey packet works
	* testsuite.at: add read_privkey test

2005-12-06  Matthew Gregan  <kinetik@orcon.net.nz>

	* ui.cc (write_ticks): Move CR out of tickline2; output it where
	required instead.  Fixes brokeness of 'count' ticker on Win32 (and
	perhaps elsewhere) that was causing each line redraw to be written
	on a new line.
	* contrib/usher.cc (fork_server): Avoid getting stuck in an
	infinte loop attempting to read() from a stream that has
	reached EOF before we've read anything from it.  This can occur if
	the fork()+exec() of an usher managed monotone server fails.
	* ui.cc (write_ticks): Don't call display_width() repeatedly for
	the same string--get the result once and reuse it where necessary.
	* netxx/sockopt.cxx, netxx/sockopt.h (set_ipv6_listen_for_v6_only):
	New member function to set the IPV6_V6ONLY flag on a socket.
	* netxx/serverbase.cxx (bind_to): Call set_ipv6_listen_for_v6_only
	on IPv6 sockets.
	* app_state.cc (allow_working_copy): Use keydir path from
	MT/options if set.

2005-12-05  Matthew Gregan  <kinetik@orcon.net.nz>

	* tests/t_database_sig_cleanup.at: Mark this as NOT_ON_WIN32; as
	per the MSDN link I've added to the test, we can't handle
	SIGINT/SIGTERM gracefully on Windows.

2005-12-04  Nathaniel Smith  <njs@pobox.com>

	* paths.cc (file_path): MM() the path we're validating.

2005-12-04  Nathaniel Smith  <njs@pobox.com>

	* schema_migration.cc: Modernize error checking a bit.  (Use E()
	and I() instead of throwing runtime_errors.)

2005-12-03  Nathaniel Smith  <njs@pobox.com>

	* sanity.cc (dump_buffer): If we dumped debug info, write out a
	note asking that it be included in bug reports.

2005-12-03  Nathaniel Smith  <njs@pobox.com>

	* schema_migration.cc (logged_sqlite3_exec): New function.
	Use everywhere in this file.  Enables logging of migration
	commands for debugging purposes.

2005-12-03  Nathaniel Smith  <njs@pobox.com>

	* tests/t_mixed_case_pwd.at, testsuite.at: New test.

2005-12-02  Matthew Gregan  <kinetik@orcon.net.nz>

	* Makefile.am: Make Win32 build link against shfolder.lib to get
	SHGetFolderPathA on older Windows platforms (we had previously
	been relying on it to be available in shell32.lib) .
	* packet.cc (feed_packet_consumer::feed_packet_consumer,
	extract_packets): Move duplicated sets of regexs for key IDs,
	certs, etc. into constants.cc.
	* constants.{cc,hh}: Add regex strings extracted from packet.cc.  Also
	fix the key ID regex to accept a few characters we allowed in
	legal_key_name_bytes already.
	* tests/t_genkey.at: Test good and bad keys with all characters we
	allow in the user portion of a key id.

2005-12-01  Matthew Gregan  <kinetik@orcon.net.nz>

	* database.cc: Revert last change; db version and db migrate need
	to be able to open databases with old schema versions.  Calling
	sql() directly broke this.  Moved a db existence check scattered
	through the code into db_check_exists(), and added calls to this
	into ::version and ::migrate.
	* database.cc (database::version, database::migrate): Improve
	error handling where user has supplied the path to a non-existant
	database file.  Submitted by Neil Conway.
	* win32/fs.cc (rename_clobberingly_impl): Improve error handling
	around LoadLibrary call.
	* lua/{lvm.c,lgc.c,lapi.c}: Lua post-5.0.2 bugfixes from
	http://www.lua.org/bugs.html.  Submitted by Alex Queiroz.

2005-11-29  Matt Johnston  <matt@ucc.asn.au>

	* Makefile.am: add PCH_FLAGS only when compiling monotone and
	unit_tests objects, not for libs.
	* pch.hh: define __STDC_CONSTANT_MACROS as required for UINT32_C.

2005-11-28  Nathaniel Smith  <njs@pobox.com>

	* txt2c.cc (main): Work correctly even on empty files.

2005-11-28  Nathaniel Smith  <njs@pobox.com>

	* schema_migration.cc: Provide more feedback while 'db migrate' is
	running.

2005-11-28  Matthew Gregan  <kinetik@orcon.net.nz>

	* HACKING: Make a note of the fact that we kill 'monotone serve'
	processes with a SIGSEGV.
	* tests/README: Minor cleanup, mention SIGSEGV thing here too.

2005-11-27  Nathaniel Smith  <njs@pobox.com>

	* std_hooks.lua: Make regexp matching error slightly more
	user-friendly.

2005-11-27  Nathaniel Smith  <njs@pobox.com>

	* commands.cc (diff): Remove OPT_BRANCH from diff's options.

2005-11-27  Julio M. Merino Vidal  <jmmv@NetBSD.org>

	* configure.ac: Do not use test's == operator because it is not
	compatible with many implementations; use = instead.

2005-11-27  Julio M. Merino Vidal  <jmmv@NetBSD.org>

	* configure.ac, ui.cc: Windows does have sync_with_iostream; the
	problem is that it does not behave correctly on some MinGW versions.
	Properly detect this condition.  Thanks to Matthew Gregan for the
	explanation.

2005-11-27  Matthew Gregan  <kinetik@orcon.net.nz>

	* netxx/address.cxx (parse_uri): Reset URI parser state after
	checking for IPv6 address.

2005-11-27  Matthew Gregan  <kinetik@orcon.net.nz>

	* tests/t_netsync_largish_file.at: Move LARGISH_FILE_CREATE
	definition from here...
	* testsuite.at: ...to here.
	* tests/t_dump_load.at: Use LARGISH_FILE_CREATE to create a 1MB
	file so that the db dump output is larger than a few kB.  This is
	needed to catch the iostreams-returning-EOF-early bogosity under
	MinGW when sync_with_stdio(false) has been called on the iostream.

2005-11-27  Nathaniel Smith  <njs@pobox.com>

	* monotone.cc: Include "i18n.h" instead of "libintl.h" directly,
	to theoretically play better with autoconf stuff.

2005-11-27  Julio M. Merino Vidal  <jmmv@NetBSD.org>

	* tests/t_automate_stdio.at: Don't expect perl to be in /usr/bin;
	this assumption doesn't hold breaks on several systems (such as
	NetBSD).

2005-11-27  Julio M. Merino Vidal  <jmmv@NetBSD.org>

	* tests/t_checkout_options.at: Use the [] operator instead of {} in
	a shell pattern so that it works with interpreters other than bash
	(e.g., NetBSD's sh).

2005-11-27  Julio M. Merino Vidal  <jmmv@NetBSD.org>

	* testsuite.at, tests/t_empty_env.at, tests/t_i18n_file.at,
	tests/t_netsync_sigpipe.at, tests/t_update_1.at, tests/t_update_2.at:
	Do not use test's == operator because it is not portable; use =
	instead.

2005-11-27  Matt Johnston  <matt@ucc.asn.au>

	* Makefile.am, configure.ac, pch.hh: add --enable-pch configure
	flag to enable precompiled boost headers. Based on LyX automake/autoconf
	rules, Zbynek Winkler suggested that just boost headers would be
	beneficial.

2005-11-27  Julio M. Merino Vidal  <jmmv@NetBSD.org>

	* app_state.cc: No need to include headers for chdir() any more.
	This function was replaced by change_current_working_dir.
	* monotone.cc: Unconditionally include libintl.h as this file uses
	gettext functions.
	* configure.ac, rcs_import.cc: Check for strptime(3) and use the
	check results instead of assuming that only Windows lacks this
	function.
	* configure.ac, ui.cc: Check whether C++ streams support the
	sync_with_stdio method and use the check results instead of assuming
	that only Windows lacks this function.

	Addresses part of bug #12086.

2005-11-27  Julio M. Merino Vidal  <jmmv@NetBSD.org>

	* app_state.cc: Correctly detect when MT/options does not have a
	database property instead of printing the cryptic message "misuse:
	invalid path ''".

2005-11-27  Grahame Bowland  <grahame@angrygoats.net>

	* configure.ac: expose --enable-ipv6 in config.h
	* monotone.cc (cpp_main): parse IPv6 addresses correctly
	in --bind arguments
	* netsync.cc (call_server,serve_connections): if USE_IPV6 defined,
	create netxx Address instances with ipv6 enabled.
	* netxx/address.cxx (parse_uri): parse IPv6 addresses as hostnames
	* closes bug #14446

2005-11-27  Grahame Bowland  <grahame@angrygoats.net>

	* automate.cc (automate_stdio_read): remove check for EINTR
	that was breaking win32 build.

2005-11-27  Grahame Bowland  <grahame@angrygoats.net>

	* automate.cc (automate_certs,automate_keys): use non-exclusive
	transaction guard
	* commands.cc (ls_certs,ls_keys,cat): use non-exclusive
	transaction guard
	* database.cc (begin_transaction): used BEGIN DEFERRED (only attempt
	exclusive lock once a write is attempted on DB) when not exclusive
	(transaction_guard::transaction_guard): new argument exclusive indicating
	whether an immediate exclusive lock is requested, defaults to true
	* database.hh: update prototype for transaction_guard

2005-11-26  Nathaniel Smith  <njs@pobox.com>

	* NEWS: Fill in date for 0.24 release.

2005-11-26  Nathaniel Smith  <njs@pobox.com>

	* UPGRADE: Add note about serve changing syntax.

2005-11-26  Nathaniel Smith  <njs@pobox.com>

	* UPGRADE: Update for 0.24.
	* configure.ac, win32/monotone.iss, monotone.spec:
	* debian/changelog: Bump version number.

2005-11-26  Nathaniel Smith  <njs@pobox.com>

	* ChangeLog: fixup after merge.

2005-11-27  Daniel Carosone  <dan@geek.com.au>

	* monotone.texi, std_hooks.lua: sync hook definitions with
	std_hooks.lua, and group the descriptions into @subsections,
	reordering a few items accordingly.

2005-11-26  Nathaniel Smith  <njs@pobox.com>

	* Makefile.am: Remove botan/{omac,fips_rng}.h.

2005-11-26  Julio M. Merino Vidal  <jmmv@NetBSD.org>

	* AUTHORS, ChangeLog: Update my email address; I don't read the
	other one any more and the new one represents better my limited
	involvement in Monotone.

2005-11-26  Julio M. Merino Vidal  <jmmv@NetBSD.org>

	* configure.ac, Makefile.am, po/Makevars: Avoid using xgettext's
	--flag option on versions that do not support it.

2005-11-26  Grahame Bowland  <grahame@angrygoats.net>

	* automate.cc (automate_stdio) add wrapper function to read()
	so that loops will not wind backwards possibly overrunning buffers
	if an error occurs. Hopefully fixes some of the strange edge cases
	seen using automate. (Closes #15062 in bug tracker)

2005-11-26  Matthew Gregan  <kinetik@orcon.net.nz>

	* botan/mem_pool.cpp (Pooling_Allocator::allocate): Botan's
	Pooling_Allocator assumes that Buffers stored in free_list are
	sorted, and uses std::inplace_merge() in deallocate() to ensure
	the recently freed Buffer is positioned in free_list
	appropriately.  This same check was not being performed when a
	Buffer was added to free_list in allocate() (it's not safe to
	assume that the address of a newly allocated Buffer will always be
	greated than existing Buffers).

2005-11-25  graydon hoare  <graydon@pobox.com>

	* database.cc (get_version): Another important fix: make sure to
	cancel overlapping paths, to avoid exponential memory requirement
	in deep, heavily-forked-and-merged storage paths.

2005-11-25  graydon hoare  <graydon@pobox.com>

	* database.cc (get_version): Another important fix: make sure to
	cancel overlapping paths, to avoid exponential memory requirement
	in deep, heavily-forked-and-merged storage paths.

2005-11-25  graydon hoare  <graydon@pobox.com>

	* database.cc (get_version): Crucial fix! Rewrite the
	delta-reconstruction algorithm to work with a DAG storage topology,
	rather than assuming an inverted tree. Counterpart to the
	delta-storage optimization made by Timothy Brownawell on
	2005-11-05.

2005-11-23  Matt Johnston  <matt@ucc.asn.au>

	* botan/*: import of Botan 1.4.9

2005-11-23  Grahame Bowland  <grahame@angrygoats.net>

	* automate.cc (automate_stdio): Fix partial reads cloberring
	start of buffer.

2005-11-22  Matthew Gregan  <kinetik@orcon.net.nz>

	* database.cc (database::dump): Don't include SQLite internal
	tables in the dump.
	* tests/t_dump_load.at (database dump/load): Run a db analyze
	before dumping the db--catches cases where we dump internal db
	tables that we can't reload.

2005-11-21  Henry Nestler  <Henry@BigFoot.de>

	* contrib/mtbrowse.sh: Version 0.1.13
	Handle authors without '@'.  Minor box sizing.
	Get Version of monotone before starts anything.
	DEPTH_LAST detects for version >0.19, no save to config.
	'cat revision' replaced with 'automate get_revision'.
	ANCESTORS "M" changed to "A". Default "L" (monotone log --brief).
	Warn user about misconfigurations. Temp files without tailing dot.
	New option: Sort by Date/Time, up or down.
	Fix: Parents of merge, if certs list from cache (ncolor).

2005-11-21  Matthew Gregan  <kinetik@orcon.net.nz>

	* NEWS: Minor spelling tweaks.
	* platform.hh: Add get_default_confdir().
	* app_state.cc (app_state::app_state): Call get_default_confdir()
	to initialize confdir.
	* unix/fs.cc (get_default_confdir): Use the home directory as the
	base of the default configuration dir.
	* win32/fs.cc (get_default_confdir): Use either %APPDATA% or the
	result of querying SHGetFolderPath() for CISDL_APPDATA as the base
	of the default configuration dir.
	(get_homedir): More consistent method for deciding what the user's
	home directory is.  Behaviour based on the documentation for Qt's
	QDir::home().

2005-11-21  Nathaniel Smith  <njs@pobox.com>

	* NEWS: Initial draft of 0.24 release notes.

2005-11-14  Benoît Dejean  <benoit@placenet.org>

	* po/fr.po: Updated French translation.
	* netsync.cc: Removed many i18n strings.

2005-11-14  Nathaniel Smith  <njs@pobox.com>

	* monotone.texi (Historical records): Clarify wording, based on
	feedback from Daniel Phillips.

2005-11-13  Nathaniel Smith  <njs@pobox.com>

	* monotone.texi (Automation): Document sort order for 'automate
	select'.

2005-11-10  Richard Levitte  <richard@levitte.org>

	* monotone.texi (Hooks): Small correction so the text matches the
	example.

2005-11-10  Timothy Brownawell  <tbrownaw@gmail.com>

	* lua.cc, std_hooks.lua, monotone.texi: basic_io parser for lua is
	now called parse_basic_io

2005-11-10  Timothy Brownawell  <tbrownaw@gmail.com>

	* monotone.texi: document parse_basicio in the
	"Additional Lua Functions" section

2005-11-10  Timothy Brownawell  <tbrownaw@gmail.com>

	* testsuite.at: Several MINHOOKS_* macros that use the standard hooks
	and only load predefined hooks about passphrase and rng.
	* tests/t_netsync_permissions, tests/t_netsync_read_permissions: use
	the standard permission hooks and define {read,write}-permissions files.
	Check both the permissions mechanism and the standard hooks at once.

2005-11-10  Timothy Brownawell  <tbrownaw@gmail.com>

	* monotone.texi: update example project with latest read-permissions
	format. Mention comment lines in the description in the hooks section

2005-11-08  Timothy Brownawell  <tbrownaw@gmail.com>

	Make a basic_io parser available to Lua.
	* lua.cc: new function, monotone_parse_basicio_for_lua
	* std_hooks.lua: use it in get_netsync_read_permitted

2005-11-05  Timothy Brownawell  <tbrownaw@gmail.com>

	Make sure that all new revisions added to the db deltify as much as
	possible.
	* commands.cc, diff_patch.cc: deltify both sides when doing a merge
	* database.{cc,hh}: new function, database::deltify_revision()
	call it from put_revision, so all new revisions will be deltified

2005-10-30  Nathaniel Smith  <njs@pobox.com>

	* std_hooks.lua (edit_comment): Insert a blank line if there is no
	user log message, so the user doesn't have to.

2005-10-25  Emile Snyder  <emile@alumni.reed.edu>

	Fix bug reported on mailing list by Wim Oudshoorn and Tom Koelman
	where 'disapprove REV' inappropriately uses your working copy
	branch for the disapproved revision.
	* app_state.{cc,hh} (set_is_explicit_option, is_explicit_option):
	New methods to determine if a given option value was set via
	command line flag or not.
	* cert.cc (guess_branch): Only accept explicit --branch values in
	preference to the branch the given revision lives on.
	* commands.cc (CMD(commit)): Explicitly use app.branch_name() if
	it exists before calling guess_branch, so pick up MT/options
	setting.
	* monotone.cc (cpp_main): Set the explicit_option_map entries for
	select command line flag processing.

2005-10-26  Matt Johnston  <matt@ucc.asn.au>

	* INSTALL: mention that zlib is required
	* debian/control: monotone doesn't work over plain network protocols

2005-10-25  Timothy Brownawell  <tbrownaw@gmail.com>

	* lua.cc: make the globish matcher available to lua
	* std_hooks.lua: new (better) format for read-permissions
	* monotone.texi: update documentation

2005-10-24  Benoît Dejean  <benoit@placenet.org>

	* commands.cc: Merged 2 i18n strings.

2005-10-23  Timothy Brownawell  <tbrownaw@gmail.com>

	* std_hooks.lua: new default get_netsync_*_permitted hooks, which
	read permissions setting from $confdir/{read,write}-permissions
	* monotone.texi: document the new default hooks

2005-10-23  Timothy Brownawell  <tbrownaw@gmail.com>

	* contrib/usher.cc: new option "-p <pidfile>", catch SIGTERM and SIGINT
	and exit cleanly

2005-10-22  Timothy Brownawell  <tbrownaw@gmail.com>

	* constants.cc: increase log_line_sz so that the new unified
	"SERVER IDENTIFICATION HAS CHANGED" message doesn't get truncated.
	It used to be multiple print statements but was merged into one,
	apparently to help with translation.

2005-10-22  Timothy Brownawell  <tbrownaw@gmail.com>

	* contrib/usher.cc: Support friendly shutdown (no new connections, but
	don't kill existing ones) of local servers and the usher as a whole.
	Simple admin interface to start/stop or get the status of individual
	servers or the whole usher (listens for connections on a separate
	port, only enabled if specified on the command line).

2005-10-22  Richard Levitte  <richard@levitte.org>

	* tests/t_database_sig_cleanup.at: Two more sleeps that I forgot.

2005-10-20  Nathaniel Smith  <njs@pobox.com>

	* cert.hh (find_common_ancestor): Remove dead declaration.
	* database.cc (check_schema): Improve schema mismatch error
	message.

2005-10-20  Richard Levitte  <richard@levitte.org>

	* tests/t_database_sig_cleanup.at: Sleep for a couple of seconds,
	so monotone has a chance to clean up and die properly, even on a
	slower machine.

2005-10-19  Nathaniel Smith  <njs@pobox.com>

	* tests/t_update_switch_branch.at, testsuite.at: New test.

2005-10-19  Nathaniel Smith  <njs@pobox.com>

	* commands.cc (update): Make branch sticky even if update target
	== current rid.

2005-10-19  Matt Johnston  <matt@ucc.asn.au>

	* main.cc, database.{cc,hh}: SIGINT and SIGTERM handlers
	exit gracefully, and try to ROLLBACK+close any databases to clean up
	.db-journal files. Added new database::close() method to be used
	rather than sqlite_close() directly
	* monotone.{cc,hh}, sanity.{cc.hh}: move clean_shutdown flag to
	global_sanity
	* tests/t_database_sig_cleanup.at: test it
	* keys.cc: don't L() private key

2005-10-19  Matthew A. Nicholson  <matt@matt-land.com>

	* std_hooks.lua: Minor correction to vim warning during 3-way merge.

2005-10-18  Timothy Brownawell  <tbrownaw@gmail.com>

	* contrib/usher.cc: Update comment about client versions

2005-10-18  Timothy Brownawell  <tbrownaw@gmail.com>

	* netsync.cc netcmd.{cc,hh}: usher_reply_cmd now has both who we
	connected to *and* what pattern we asked for
	* contrib/usher.cc: new file format, allow to key servers on either
	hostname or pattern, hostname checked first
	reload config file on SIGHUP

2005-10-18  Timothy Brownawell  <tbrownaw@gmail.com>

	* netsync.cc (session::process_usher_cmd): reply with who we connected
	to (hostname or hostname:port), not what pattern we asked for.
	* contrib/usher.cc: Update comment.

2005-10-18  Timothy Brownawell  <tbrownaw@gmail.com>

	* contrib/usher.cc: support dynamic local servers
	These are started when a client attempts to connect, and killed at
	a set time interval after the last client has disconnected.

2005-10-15  Nathaniel Smith  <njs@pobox.com>

	* manifest.cc (build_restricted_manifest_map): Mention the new
	--missing option in the missing files error message hint.

2005-10-17  Timothy Brownawell  <tbrownaw@gmail.com>

	* commands.cc (serve): check that the db is valid before beginning
	service (would previously not know until someone connected)
	* netsync.cc (serve_connections): don't say "beginning service" until
	after opening the socket.

2005-10-16  Timothy Brownawell  <tbrownaw@gmail.com>

	* app_state.{cc,hh}, key_store.cc: change how the keystore directory
	is initialized; was using app.confdir before it was ready

2005-10-16  Timothy Brownawell  <tbrownaw@gmail.com>

	Make the configuration directory configurable and available to lua
	* lua.cc: export new function to lua, "get_confdir"
	* app_state.{cc,hh} monotone.cc options.hh: new option --confdir,
	make the configuration directory something other than ~/.monotone
	* lua.{cc,hh}: make the app_state availabe to lua callbacks
	* key_store.cc: use get_confdir instead of hardcoded
	* lua.cc: use get_confdir instead of hardcoded
	* tests/t_config_confdir.at: test --confdir and lua get_confdir
	* testsuite.at: add it

2005-10-16  Timothy Brownawell  <tbrownaw@gmail.com>

	Teach client to optionally push unused keys; new pubkeys can now be
	given to a server without restarting it.
	* app_state.{cc,hh}, monotone.cc, options.hh:
	new command-specific-option --key-to-push=<key> , used to sync/push
	a key that hasn't signed anything
	* netsync.cc: make it work
	* commands.cc: push and sync take it
	* tests/t_netsync_pubkey.at: test it

2005-10-16  Matthew Gregan  <kinetik@orcon.net.nz>

	* configure.ac: Don't add boost_unit_test_framework to global
	LIBS, we will link against it directly when needed.
	* Makefile.am: Only allow unit_tests to be built if
	boost_unit_test_framework was available at configure time.

2005-10-15  Matthew Gregan  <kinetik@orcon.net.nz>

	* configure.ac: Use boost_filesystem as the library to test for
	when trying to guess a suitable BOOST_SUFFIX.  Make a missing
	boost_unit_test_framework library a non-fatal error.

2005-10-14  Emile Snyder  <emile@alumni.reed.edu>

	* commands.cc: Fix breakage I introduced with the --unknown flag.
	Rename find_unknown to find_unknown_and_ignored, since that's what
	it's actually doing.  Likewise ls_unknown ->
	ls_unknown_or_ignored, and use find_unknown_and_ignored correctly.
	Fixes t_mt_ignore.at failures.

2005-10-14  Nathaniel Smith  <njs@pobox.com>

	* key_store.{cc,hh} (get_key_dir): New method.
	* schema_migration.cc (migrate_client_to_external_privkeys): Tell
	user that we're moving their keys.
	* commands.cc (genkey): Refer to keystore by the directory, not as
	"keystore".
	(ls_keys): Likewise.

2005-10-14  Timothy Brownawell  <tbrownaw@gmail.com>

	Add .mt-ignore, ignore most generated files, except for the *m4 files.

2005-10-14  Emile Snyder <emile@alumni.reed.edu>

	* app_state.{cc,hh}: new 'unknown' class member for --unknown flag.
	* commands.cc (CMD(add), ls_unknown, find_unknown): use new
	--unknown flag to add any files in the working copy that monotone
	doesn't know about (and isn't ignoring).
	* monotone.cc (coptions, cpp_main): add the --unknown flag handling.
	* options.hh: add OPT_UNKNOWN.
	* monotone.texi: document it.
	* tests/t_add.at: test it.

2005-10-14  Emile Snyder <emile@alumni.reed.edu>

	* database.cc (complete): enhance h: and b: to mean "current
	branch" (as defined by your working copy) when given empty.
	* monotone.texi: document it.

2005-10-14  Matthew Gregan  <kinetik@orcon.net.nz>

	* database.cc: Exclusively lock the database when performing a 'db
	dump'.
	* schema_migration.cc: Run an analyze at the end of a database
	migration to help out the SQLite query optimizer.  Also change
	schema id calculation to match 'sqlite_stat%' rather than the
	specific table 'sqlite_stat1'--the SQLite docs suggest that more
	tables will be created in the future.

2005-10-14  Matthew Gregan  <kinetik@orcon.net.nz>

	* database.cc, schema.sql, schema_migration.cc: Use SQLite 3's
	exclusive locking whereever we start a new transaction; allows
	monotone to report database locking errors earlier if a second
	monotone process attempts to perform database operations.

2005-10-14  Matthew Gregan  <kinetik@orcon.net.nz>

	* commands.cc (message_width): Refactor into display_width() and
	remove message_width().
	* transforms.{cc,hh} (display_width): Rename length() to
	display_width() and use the code from message_width().
	* ui.cc, commands.cc: Change calls to length() to display_width().
	* netsync.cc: Remove length() calls, test for string emptiness
	instead.

2005-10-13  Emile Snyder <emile@alumni.reed.edu>

	* commands.cc (CMD(revert)): use --missing for revert a'la drop.
	* monotone.texi: document it.
	* tests/t_revert_restrict.at: test it.

2005-10-13  Emile Snyder <emile@alumni.reed.edu>

	* app_state.{cc,hh}: new missing class member for --missing flag.
	* commands.cc (CMD(drop), ls_missing, find_missing): use new
	--missing flag to drop any files already deleted in the working copy.
	* monotone.cc (coptions, cpp_main): add the --missing flag handling.
	* options.hh: add OPT_MISSING.
	* monotone.texi: document it.
	* tests/t_drop_missing.at: test it.

2005-10-13  Emile Snyder <emile@alumni.reed.edu>

	* database.cc (complete): implementation for h:branch selector to
	find heads of a branch.
	* selectors.{cc,hh}: add sel_head with selector character 'h'.
	* monotone.texi: document it.

2005-10-12  Nathaniel Smith  <njs@pobox.com>

	* revision.hh: Oops, missed a bit.

2005-10-12  Nathaniel Smith  <njs@pobox.com>

	* revision.cc (add_node_for_old_revision): Rename to...
	(add_node_for_oldstyle_revision): ...this.
	(build_changesets_from_existing_revs): Rename to...
	(build_roster_style_revs_from_manifest_style_revs): ...this.
	* commands.cc (db): Rename "rebuild" to "rosterify".

2005-10-08  Nathaniel Smith  <njs@pobox.com>

	* revision.cc (analyze_manifest_changes): Remove.

2005-10-08  Nathaniel Smith  <njs@pobox.com>

	* revision.cc (calculate_change_sets_recursive):
	(find_subgraph_for_composite_search)
	(calculate_composite_change_set, calculate_arbitrary_change_set):
	Remove.
	(construct_revision_from_ancestry): Likewise.

2005-10-08  Nathaniel Smith  <njs@pobox.com>

	* revision.cc (check_sane_history): Remove.

2005-10-13  Matt Johnston  <matt@ucc.asn.au>

	* botan/mem_pool.cpp: fix bug preventing remove_empty_buffers()
	from being called, gives significant improvements for long-running
	processes.

2005-10-12  Emile Snyder <emile@alumni.reed.edu>

	* monotone.texi: add njs's lucid definition of what the disapprove
	actually means in terms of the revision graph to it's section in
	the documentation.

2005-10-12  Matt Johnston  <matt@ucc.asn.au>

	* monotone.cc: return with exit code of 2 on usage output
	* testsuite.at: turn "cat_foo" into "automate get_foo"
	* tests/t_empty_env.at, tests/t_null.at, tests/t_at_sign.at,
	tests/t_unreadable_db.at, tests/t_cmdline_options.at: expect 2 exit code
	* tests/t_cross.at: update to the changeset paradigm of immutable
	ancestors.

2005-10-11  Emile Snyder <emile@alumni.reed.edu>

	* app_state.{cc,hh}: new bind_address and bind_port class members.
	* options.hh: new OPT_BIND for serve command.
	* monotone.cc: handle OPT_BIND.
	* commands.cc (process_netsync_args, CMD(serve)): use values from
	the new --bind=[addr]:port option for 'monotone serve' rather than
	the positional argument.  default to binding all interfaces.
	* monotone.texi: document new serve syntax
	* netsync.cc (serve_connections): use empty address argument to
	mean bind all interfaces.
	* netxx/address.cxx (Address::add_all_addresses): set port_ member
	from passed in port argument.
	* testsuite.at, tests/t_netsync_single.at: use new --bind syntax
	for serve commands.

2005-10-11  Matthew Gregan  <kinetik@orcon.net.nz>

	* commands.cc (message_width, explain_usage): New function to
	calculate display width of translated strings.  Use it in
	explain_usage.
	Patch from Thomas Moschny <thomas.moschny@gmx.de>
	* certs.cc (get_user_key): Correct logic in N() test for multiple
	keys.  Resolves bug reported by Malte Thoma.

2005-10-10  Timothy Brownawell  <tbrownaw@gmail.com>

	Make netsync shutdown work properly.
	* netsync.cc (session::which_events): Only ask to read if not armed.
	A read failure will discard all read-but-not-processed commands.
	* netsync.cc (session::maybe_say_goodbye): Only say goodbye once.
	Repeated goodbyes means that one side *will* have a full write-queue
	when the connection is torn down.

2005-10-10  Timothy Brownawell  <tbrownaw@gmail.com>

	* tests/t_automate_stdio.at: Add comment here too.

2005-10-10  Timothy Brownawell  <tbrownaw@gmail.com>

	* contrib/get_stdio.pl: Add comments. I'm told it was "obtuse",
	hopefully this will help somewhat.

2005-10-10  Matt Johnston  <matt@ucc.asn.au>

	* configure.ac, Makefile.am: add {MONOTONE,LIB3RDPARTY}_C{,XX}FLAGS
	variables.

2005-10-10  Benoît Dejean <benoit@placenet.org>

	* commands.cc: s/key store/keystore/g.

2005-10-10  Matt Johnston  <matt@ucc.asn.au>

	* netsync.cc, database.{cc,hh}: don't include unwanted branch
	certs when building the merkle tree.
	* merkle.hh: add variant of insert_into_merkle_tree
	taking non-raw id.
	* markle.cc: comment out unused bits

2005-10-10  Nathaniel Smith  <njs@pobox.com>

	* cert.{cc,hh} (get_user_key): New function, replacing
	guess_default_key.
	* revision.cc (build_changesets_from_existing_revs)
	(build_changesets_from_manifest_ancestry):
	* rcs_import.cc (import_cvs_repo):
	* commands.cc (internalize_cert_name, push, sync, serve):
	* cert.cc (make_simple_cert, cert_revision_author_default): Use
	it.

2005-10-10  Matthew Gregan  <kinetik@orcon.net.nz>

	* netsync.cc: Clean up another case where port numbers were being
	munged by localized iostreams.
	* tests/t_netsync_largish_file.at: Tweak the random file
	generation so that it's a bit faster on platforms with slow awk
	implementations.
	* netsync.cc: Remove comment stating that our official IANA port
	should be renamed from 'netsync' to 'monotone'; Tomas sorted this
	out a while ago.
	* lua.cc (Lua::ok): Only log the 'Lua::ok() failed' message if
	there has been a failure.
	* monotone.texi: Fix a typo.
	* win32/fs.cc (get_homedir): Clarify comment.

2005-10-09  Matthew Gregan  <kinetik@orcon.net.nz>

	* contrib/usher.cc (main): Reset parser state for config file
	parser.
	* win32/monotone.iss: Reduce minimum OS version for installer.
	* configure.ac: Another Boost library suffix.

2005-10-08  Matthew Gregan  <kinetik@orcon.net.nz>

	* tests/t_automate_keys.at: Portability fixes.

2005-10-08  Benoît Dejean  <benoit@placenet.org>

	* commands.cc: One more i18n string.

2005-10-08  Matthew Gregan  <kinetik@orcon.net.nz>

	* tests/t_automate_keys.at: Don't rely on extended sed either!

2005-10-08  Nathaniel Smith  <njs@pobox.com>

	* database.{hh,cc}: Clean-up previous change -- switch to using a
	cleanup_ptr to hold sqlite3_stmt handles, for proper exception
	safety.

2005-10-08  Nathaniel Smith  <njs@pobox.com>

	* database.cc (fetch): Do not insert prepared statements into the
	statement table until they are successfully created, to avoid
	segfaults on database teardown.

2005-10-08  Matthew Gregan  <kinetik@orcon.net.nz>

	* tests/t_automate_keys.at: Use sed rather than relying on an
	extended grep being available.

2005-10-08  Nathaniel Smith  <njs@pobox.com>

	* contrib/ciabot_monotone.py (send_change_for): Handle branch-less
	revisions.

2005-10-08  Nathaniel Smith  <njs@pobox.com>

	* paths.cc: Make initial_rel_path an fs::path.  Adjust code
	correspondingly.  Add tests that calling monotone from inside MT
	should work.
	* tests/t_add_inside_MT.at, testsuite.at: New test.

2005-10-08  Matthew Gregan  <kinetik@orcon.net.nz>

	* win32/fs.cc: Don't consider USERPROFILE as a possible home
	directory; APPDATA is more appropriate.  Add a second method to
	get the APPDATA path.  Always use HOME if it's set (not just under
	Cygwin/MinGW).
	* tests/t_netsync_absorbs.at: Add missing CANONICALISE().

2005-10-07  Timothy Brownawell  <tbrownaw@gmail.com>

	* commands.cc (pubkey): don't insist on having a database
	* tests/t_key_management_without_db.at: check it

2005-10-07  Timothy Brownawell  <tbrownaw@gmail.com>

	* file_io.cc, vocab.cc, Makefile.am: fix merge
	* botan/algolist.cpp, botan/def_alg.cpp: fix merge

2005-10-07  Timothy Brownawell  <tbrownaw@gmail.com>

	* automate.cc: add "automate keys". like "ls keys", except it
	uses basic_io (since "ls keys" is now slightly irregular and not
	very well suited to machine interpretation).
	* monotone.texi: document it
	* tests/t_automate_keys.at: test for it
	* testsuite.at: add test
	* basic_io.{cc,hh} (stanza): add push_str_multi, for entries
	that can take a variable number of string arguments.
	* commands.cc: add "automate keys" to automate help
	misc minor whitespace cleanup

2005-10-06  Timothy Brownawell  <tbrownaw@gmail.com>

	* commands.cc (ls_keys): don't insist on having a db
	* tests/t_key_management_without_db.at: check ls keys
	* monotone.texi: update for new key storage
		* concepts :: storage and workflow
		* tutorial :: generating keys
		* tutorial :: committing work
		* command reference :: informative
		* command reference :: key and cert
		* command reference :: packet I/O

2005-10-06  Timothy Brownawell  <tbrownaw@gmail.com>

	* commands.cc (chkeypass): doesn't use the db, so we don't need a guard
	* commands.cc (dropkey): don't insist on having a db
	* tests/t_genkey_without_db.at: rename (s/genkey/key_management) and
	add checks for chkeypass and dropkey without a db

2005-10-06  Timothy Brownawell  <tbrownaw@gmail.com>

	* database.{cc,hh}: new function, database::database_specified()
	return whether we were given a database (doesn't care about validity,
	only that we were told to use one)
	* commands.cc (genkey): don't insist on having a db, but still
	check it for duplicates if we're given one.
	* tests/t_genkey_without_db.at: make sure it works
	* testsuite.at: add test

2005-09-28  Timothy Brownawell  <tbrownaw@gmail.com>

	* keys.cc (get_private_key): don't use lua hook passwords for
	chkeypass.

2005-09-28  Matt Johnston  <matt@ucc.asn.au>

	* keys.cc (get_private_keys): don't use lua hook passwords for
	chkeypass.

2005-09-28  Timothy Brownawell  <tbrownaw@gmail.com>

	* key_store.cc: fix delete_key
	* tests/t_database_check_normalized: needs 'db migrate'
	* tests/t_lua_privkey.at: update for new key location
	* tests/t_netsync_absorbs.at: use genkey instead of packets
	* tests/t_netsync_checks_server_key.at: same
	* tests/t_netsync_pubket.at: update key packet to new format

2005-09-27  Timothy Brownawell  <tbrownaw@gmail.com>

	Replace extract_keys command with a database migrator.
	* database.{cc,hh}: Remove last traces of private keys in db.
	* schema.sql: Remove private_keys table
	* commands.cc (dropkey): private keys can no longer be in the db.
	* schema_migration.cc: new migrator
	* commands.cc: remove extract_keys
	* tests/t_migrate_schema.at: update
	* keys.hh, cert.cc, key_store.cc: keys_match doesn't work well on
	privkeys. Don't use it.
	* key_store.cc: Allow duplicate insertions, if they match.

2005-09-27  Timothy Brownawell  <tbrownaw@gmail.com>

	* schema_migration.hh: migrate_depot_schema() doesn't really exist
	* database.cc, schema_migration.{cc,hh}: migrate_monotone_schema
	now takes an app_state * , so data can be moved to/from the database.

2005-09-27  Matt Johnston  <matt@ucc.asn.au>

	* botan/pkcs8.cc, keys.cc: fix monotone-specific pkcs8 key
	parsing.
	* commands.cc: ls keys shows keystore-only pubkeys as well
	* packet.cc: fix unit tests
	* testsuite.at: use keypair packet rather than privkey/pubkey
	packets.

2005-09-26  Matt Johnston  <matt@ucc.asn.au>

	* commands.cc, keys.cc, others: use standard
	"PBE-PKCS5v20(SHA-1,TripleDES/CBC)" encoding rather than
	raw arc4. extract_keys will re-encode keys, still
	need to work on packet.cc encoding.
	* botan/{des*,pkcs5*,algolist.cpp}: required files
	from Botan 1.4.6

2005-09-25  Timothy Brownawell  <tbrownaw@gmail.com>

	Move private keys outside the database.
	They're now stored as keypairs in ~/.monotone/keys
	Details:
	* keystore.{cc,hh}: handle storage of keypairs
	* tests*: Specify keystore location when running the testsuite.
		This prevents it from polluting the user's keystore.
	* database{cc,hh}: remove ability to put privkeys. They can still
		be listed, retrieved, and deleted, to support
	* commands.cc: New command, extract_keys. Copies private keys from
		the database to the keystore.
	* vocab.hh: add keypair type, like pair<pubkey, privkey>, except that
		the members are named pub and priv.
	* packet.cc: Clean up read_packets.
	* packet.{cc,hh}: privkey packets no longer exists, handle keypair
		packets instead.
	* file_io.{cc,hh}: add read_directory because tree_walker needs to
		be in the wc. add a write_data that works outside the wc.
	* Makefile.am: add keystore.{cc,hh}
	* others: update to work with new key storage

2005-10-06  Matthew Gregan  <kinetik@orcon.net.nz>

	* std_hooks.lua (merge3_emacs_cmd): Minor cleanup.
	* std_hooks.lua: Pass '--eval' rather than '-eval' to Emacs; the
	CVS emacsclient does not consider '-eval' as valid.
	* platform.hh, unix/fs.cc, win32/fs.cc (rename_clobberingly): New
	function for best-effort atomic renames.  This will probably never
	be atomic on Win32.
	* file_io.cc (write_data_impl): Append process ID to temporary
	file name so that multiple monotone processes operating on the
	same working copy are less likely to clobber each other.  Use
	rename_clobberingly().
	* ui.cc (user_interface): Allow std::cout to raise
	ios_base::failure exceptions if stream goes bad (e.g. stream
	receives EPIPE).
	* monotone.cc (cpp_main): Catch ios_base::failure exceptions and
	exit cleanly.
	* main.cc (main_with_signal_handlers): Install handler to ignore
	SIGPIPE.
	* Makefile.am: Remove platform_netsync.cc references.
	* {unix,win32}/platform_netsync.cc: Remove files.
	* platform.hh, netsync.cc (run_netsync_protocol):
	Remove {start,end}_platform_netsync() calls.

2005-10-04  Nathaniel Smith  <njs@pobox.com>

	* monotone.texi (Automation): Document the mysterious columns of
	numbers in 'automate inventory' output format.

2005-10-04  Matt Johnston  <matt@ucc.asn.au>

	* botan/, Makefile.am: update to Botan 1.4.7

2005-10-03  Nathaniel Smith  <njs@pobox.com>

	* monotone.texi (Automation): Clean up formatting and description
	of 'automate inventory' sample output.

2005-10-02  Marcel van der Boom  <marcel@hsdev.com>

	* commands.cc (CMD(checkout)): Check for non-existant checkout dir
	earlier, so we can fail earlier.

2005-09-30  Nathaniel Smith  <njs@pobox.com>

	* Makefile.am (AM_CFLAGS, AM_CXXFLAGS): Add
	-DBOOST_SP_DISABLE_THREADS (disables thread-safe shared_ptr
	reference counting).

2005-09-30  Nathaniel Smith  <njs@pobox.com>

	* debian/README.Debian, debian/TODO.Debian: Add debian files
	left out of repository.

2005-09-30  Nathaniel Smith  <njs@pobox.com>

	* NEWS: Set date for 0.23.

2005-09-30  Nathaniel Smith  <njs@pobox.com>

	* testsuite.at: Whoops, forgot to hit save.  Remove
	t_diff_changeset_bug.at.

2005-09-30  Grahame Bowland  <grahame@angrygoats.net>

	* paths.cc: remove unit tests for
	file_path_internal_from_user

2005-09-30  Patrick Mauritz  <oxygene@studentenbude.ath.cx>

	* configure.ac: only add gnu specific CFLAGS and CXXFLAGS for
	gnu compilers

2005-09-30  Nathaniel Smith  <njs@pobox.com>

	* tests/t_log_outside_working_dir.at: Fix summary line.
	* tests/t_diff_changeset_bug.at: Remove redundant test
	(cf. t_restricted_diff_unchanged.at).

2005-09-30  Nathaniel Smith  <njs@pobox.com>

	* Makefile.am (BOTAN_SOURCES): Add botan/hash_id.h.

2005-09-30  Nathaniel Smith  <njs@pobox.com>

	* NEWS: More additions (mention MM and the problems paths.cc will
	cause for colinux folks).

2005-09-30  Nathaniel Smith  <njs@pobox.com>

	* Makefile.am (MOST_SOURCES): Add hash_map.hh.
	(BOTAN_SOURCES): Add botan/charset.h.

2005-09-29  Nathaniel Smith  <njs@pobox.com>

	* NEWS: Fix typos pointed out by Matthew Gregan.

2005-09-29  Nathaniel Smith  <njs@pobox.com>

	* UPGRADE, configure.ac, monotone.spec, win32/monotone.iss:
	* debian/changelog: Bump version number.

2005-09-30  Grahame Bowland  <grahame@angrygoats.net>

	* paths.hh: update file_path documentation,
	remove file_path_internal_from_user
	* paths.cc: remove file_path_internal_from_user
	* commands.cc CMD(cat): change file_path_internal_from_user
	to file_path_external
	* tests/t_diff_outside_working_dir.at: check diff works outside
	  of a working dir (with a file specified)
	* tests/t_log_outside_working_dir.at: check log works outside
	  of a working dir (with a file specified)
	* tests/t_diff_changeset_bug.at: mysterious changeset bug
	* testsuite.at: add new tests

2005-09-29  Nathaniel Smith  <njs@pobox.com>

	* AUTHORS: Add Grahame and Marcel.
	* NEWS: Write 0.23 entry.
	* monotone.texi (Reserved Files): Mention in .mt-ignore docs that
	the patterns are regexes.

2005-09-30  Grahame Bowland  <grahame@angrygoats.net>

	* paths.cc (file_path::file_path): Allow external paths outside of
	a working directory, so long as we don't enter a working directory
	later.
	(access_tracker) add new very_uninitialized state which
	prevents subsequent initialization
	(test_access_tracker) check the very_uninitialized state works
	* paths.hh: correct mention of monotone cat file to new syntax

2005-09-29  Matthew Gregan  <kinetik@orcon.net.nz>

	* paths.cc: Restore two unit tests on Win32.

2005-09-29  Richard Levitte  <richard@levitte.org>

	* testsuite.at: Removed a spurious G...

2005-09-29  Matthew Gregan  <kinetik@orcon.net.nz>

	* paths.cc, win32/fs.cc: Fixes to allow unit tests to pass on Win32.

2005-09-29  Marcel van der Boom  <marcel@hsdev.com>

	* netsync.cc (rebuild_merkle_trees): only get matched branch
	certs, not all of them

2005-09-28  Nathaniel Smith  <njs@pobox.com>

	* tests/t_rename_diff_names.at, testsuite.at: New test.

2005-09-27  Richard Levitte  <richard@levitte.org>

	* monotone.texi (Tutorial): It seems like texi2pdf gets quite
	confused when a @chapter has a @subsection with a @section in
	between.  The resulting PDF had a Tutorial that was a indexed as a
	subsection under Concepts/Branches instead of being indexed as the
	chapter it is, and most confusingly, it's last subsection
	(Branching and Merging) ended up as a a separate chapter of it's
	own...

2005-09-27  Matt Johnston  <matt@ucc.asn.au>

	* netsync.cc (ancestry_fetcher): new approach to requesting file
	and manifest deltas and full data. Tries to be more efficient
	for the vcache of recontstructed data, and conceptually simpler

	* tests/t_netsync_unrelated.at: passes, remove XFAIL

2005-09-26  Benoît Dejean  <benoit@placenet.org>

	* database.cc: Merged 3 strings.

2005-09-26  Matt Johnston  <matt@ucc.asn.au>

	* commands.cc: add 'help' command
	* monotone.cc: add -h alias for --help

2005-09-25  Matt Johnston  <matt@ucc.asn.au>

	* netsync.cc: use lexical_cast on port numbers to avoid
	strange-looking "port 5,253"

2005-09-25  Matthew Gregan  <kinetik@orcon.net.nz>

	* sqlite/*: Update in-tree SQLite from 3.2.6 to 3.2.7.

2005-09-25  Benoît Dejean  <benoit@placenet.org>

	* netsync.cc: 3 more i18n strings.

2005-09-25  Benoît Dejean  <benoit@placenet.org>

	* cert.cc (cert_signable_text): F() vs. boost::format.
	* lua.cc (monotone_guess_binary_file_contents_for_lua),
	(monotone_include_for_lua), (monotone_includedir_for_lua):
	* rcs_import.cc (import_cvs_repo): Merged some strings.

2005-09-25  Benoît Dejean  <benoit@placenet.org>

	* lua.cc (monotone_guess_binary_file_contents_for_lua):
	Fixed signednes warning and istream usage.

2005-09-25  Matt Johnston  <matt@ucc.asn.au>

	* ui.cc: fallback to the default locale if locale("") fails.

2005-09-25  Matt Johnston  <matt@ucc.asn.au>

	* botan/arc4.cpp: increase maximum keylength to 256 bytes.

2005-09-24  Benoît Dejean  <benoit@placenet.org>

	* ChangeLog: Fixed.
	I don't understand how xxdiff works :/ Please help.

2005-09-24  Satoru SATOH <ss@gnome.gr.jp>

	* po/ja.po: Updated Japanese translation.

2005-09-23  Benoît Dejean  <benoit@placenet.org>

        * std_hooks.lua: More i18n strings.

        I don't know how to handle lua
        "multiline" ..
        "strings" because gettext doesn't join them.

2005-09-22  Benoît Dejean  <benoit@placenet.org>

        * sanity.{cc,hh}: Uninlined F() and FP().
        This happily saves ~100KB of .text on my ppc.

2005-09-22  Benoît Dejean  <benoit@placenet.org>

	* netsync.cc: Reverted changes
	from f0a632bf14468b6e03a488d6f1a64ef18b61d04c
	to   4f7f638954c79c54460d04c3be111acad8b26dd3

2005-09-22  Benoît Dejean  <benoit@placenet.org>

	* lua.cc (monotone_gettext_for_lua): New function.
	* po/POTFILES.in: Added std_hooks.lua.
	* std_hooks.lua: One more string for i18n.

2005-09-22  Benoît Dejean  <benoit@placenet.org>

	* ui.{cc,hh} (get_user_locale): Returns a const &.

2005-09-21  Timothy Brownawell  <tbrownaw@gmail.com>

	* contrib/usher.cc: better error checking

2005-09-20  Timothy Brownawell  <tbrownaw@gmail.com>

	* restrictions.cc: Make calculate_unrestricted_revision work
	with --exclude
	* tests/t_restriction_with_exclude_iprint.at: remove XFAIL

2005-09-20  Patrick Mauritz <oxygene@studentenbude.ath.cx>

	* configure.ac: solaris needs librt for fdatasync
	* sqlite/parse.c: #line and #include interactions aren't defined

2005-09-20  Matt Johnston  <matt@ucc.asn.au>

	* database.cc (space_usage): workaround the issue that in sqlite
	3.2.6, SUM({empty set}) returns NULL. (this is part of the sql spec,
	see http://www.sqlite.org/cvstrac/tktview?tn=1413 and the comment for
	SUM() in sqlite docs).

2005-09-20  Matt Johnston  <matt@ucc.asn.au>

	* ui.cc, ui.hh, sanity.hh: replace ui.user_locale with
	get_user_locale(), so that we can guarantee that it will be
	initialised when the global_sanity object (and probably other things)
	are instantiated.

2005-09-20  Matthew Gregan  <kinetik@orcon.net.nz>

	* tests/t_restriction_with_exclude_iprint.at: New test, variant of
	t_restriction_exclude.at, but with inodeprints enabled.  Mark as
	XFAILed.
	* testsuite.at: Add new test.
	* sqlite/*: Update in-tree SQLite from 3.2.2 to 3.2.6.
	* Makefile.am: Add sqlite/{analyze,vbdefifo,complete}.c to
	SQLITE_SOURCES
	* schema_migration.cc (calculate_schema_id): Explicitly exclude
	sqlite_stat1 table from schema ID calculation.  This is a new
	magic table created by the 'analyze' command in SQLite >= 3.2.3.

2005-09-18  Nathaniel Smith  <njs@pobox.com>

	* po/ja.po: New translation from Satoru SATOH <ss@gnome.gr.jp>.
	* AUTHORS: Add Satoru SATOH.

2005-09-18  Matthew Gregan  <kinetik@orcon.net.nz>

	* testsuite.at: Tweak default 'eveything' netsync glob to
	something that works around the MinGW/Win32 globbing issues for
	now.
	* tests/t_log_brief.at: Canonicalise output on Win32.

2005-09-17  Timothy Brownawell  <tbrownaw@gmail.com>

	* contrib/usher.cc: Remove stray "new int[2];' statements from
	debugging. Remove connections from list when finished.

2005-09-16  Timothy Brownawell  <tbrownaw@gmail.com>

	* Makefile.am (EXTRA_DIST): add contrib/monotone-cvs-ignore.lua,
	contrib/ciabot_monotone_hookversion.py, and contrib/usher.cc .
	also remove duplicate of contrib/monoprof.sh

2005-09-16  Timothy Brownawell  <tbrownaw@gmail.com>

	* netsync.cc: finish renaming things, so it compiles again...

2005-09-16  Timothy Brownawell  <tbrownaw@gmail.com>

	* contrib/usher.cc: A simple usher/proxy server. It asks connecting
	clients for their include pattern, and then forwards the connection
	to an appropriate (as given in a config file) monotone server. Note
	that all servers operating behind one usher need to have the same
	server key.

2005-09-16  Timothy Brownawell  <tbrownaw@gmail.com>

	* netcmd.{cc,hh}, netsync.cc: new netcmd types: usher_cmd and
	usher_reply_cmd. They are not included in the HMAC, and do not
	occur during normal communication. Purpose: running multiple servers
	from the same port. This allows a special server to ask for the
	client's include pattern, and then forward the connection to a real
	monotone server.

2005-09-16  Matt Johnston  <matt@ucc.asn.au>

	* botan/pkcs8.cpp: re-add the monotone-specific code for guessing if
	a key is DER encoded or not.

2005-09-16  Matt Johnston  <matt@ucc.asn.au>

	* botan/*: update to Botan 1.4.6
	* Makefile.am: ditto

2005-09-15  Timothy Brownawell  <tbrownaw@gmail.com>

	* app_state.{cc,hh}: restrictions now understand --exclude
	* commands.cc: commit and revert now take OPT_EXCLUDE
	* monotone.cc: update description of --exclude
	* tests/t_restriction_with_exclude.at: new test
	* testsuite.at: add it

2005-09-14  Timothy Brownawell  <tbrownaw@gmail.com>

	* contrib/ciabot_monotone_hookversion.py: CIA bot client script
	meant to be called from the note_netsync_revision_received hook.
	* lua.{cc,hh}: hook_note_commit and hook_note_netsync_revision_received
	now take the text of the revision as an argument.
	* netsync.cc, commands.cc: Give hooks new argument.
	* monotone.texi: Update documentation for those hooks.

2005-09-11  Benoît Dejean  <benoit@placenet.org>

	* database.cc
	* database_check.cc
	* netsync.cc
	* po/POTFILES.in
	* po/POTFILES.skip
	* rcs_import.cc: More i18n strings.

2005-09-07  Jim Meyering  <jim@meyering.net>

	* tests/t_rename_dir_cross_level.at: When invoking mv to rename
	a directory, do not include a trailing slash on the target -- that
	is not portable.

	* Makefile.am (TESTS_ENVIRONMENT): Ensure that PATH starts with
	the current directory, so we test the just-built monotone binary,
	not some older version.

2005-09-07  Benoît Dejean  <benoit@placenet.org>

	* std_hooks.lua: Don't spawn emacs with '-no-init-file'.

2005-09-09  Matthew Gregan  <kinetik@orcon.net.nz>

	* paths.cc (save_initial_path): Default Boost's fs::path to
	fs::native grammar.
	* tests/t_unreadable_{db,MT}.at: Disable on Win32 for now.
	* paths.cc: Consistency--use WIN32 rather than _WIN32.
	* file_io.cc (walk_tree): Correct test for file existence.

2005-09-08  Matthew Gregan  <kinetik@orcon.net.nz>

	* Makefile.am: Add '-f' argument to 'mv'; avoids build waiting on
	 user confirmation in some cases.

2005-09-08  Nathaniel Smith  <njs@pobox.com>

	* monotone.texi (Certificates): Remove mention of fcerts and
	mcerts.

2005-09-07  Benoît Dejean  <benoit@placenet.org>

	* ui.{cc,hh}: Added user_inferface::user_locale.
	* sanity.hh: Made F() and FP() locale aware.

2005-09-06  Benoît Dejean  <benoit@placenet.org>

	* monotone.cc: One more i18n string.

2005-09-06  Benoît Dejean  <benoit@placenet.org>

	* po/fr.po: Updated French translation.

2005-09-06  Benoît Dejean  <benoit@placenet.org>

	* commands.cc: No i18n for cert_revision_changelog.

2005-09-06  Matthew Gregan  <kinetik@orcon.net.nz>

	* tests/t_netsync_read_permissions.at: Tweak tests so we aren't
	trying to serve a bare '*'; works around test hangs due to glob
	expansion sillyness on MinGW.
	* tests/t_netsync_globs.at: Ditto.
	* tests/t_netsync_exclude.at: Ditto.
	* std_hooks.lua (ignore_file): Add Mac OS X (.DS_Store) and
	Windows (desktop.ini) per-directory browser configuration files.


2005-09-05  Benoît Dejean  <benoit@placenet.org>

	* commands.cc: Fixed some strings (added ' around revisions).
	Removed some whitespaces.
	No i18n in diff output.

2005-09-05  Benoît Dejean  <benoit@placenet.org>

	* sanity.{cc,hh}: boost::format vs. F(). Merged boost::format
	and moved non-template code to sanity.cc.

2005-09-05  Matthew Gregan  <kinetik@orcon.net.nz>

	* win32/terminal.cc (have_smart_terminal): We were returning false
	in almost all circumstances; changed logic so that we at least
	work when running in a cmd.exe window.

2005-09-05  Matt Johnston  <matt@ucc.asn.au>

	* commands.cc (dump_diffs): don't use the terminal width to
	print ===== seperators.

2005-09-05  Matthew Gregan  <kinetik@orcon.net.nz>

	* paths.cc (find_and_go_to_working_copy): Create root and bookdir
	paths as fs::native.
	* main.cc: Tweak #ifdef to avoid exposing some unused SEH handling
	on MinGW.
	* configure.ac: Minor cleanup to Win32 configure test.

2005-09-04  Nathaniel Smith  <njs@pobox.com>

	* monotone.cc (options): Remove default from the help string for
	--count, since none of the options listed are actually the
	default.

2005-09-04  Nathaniel Smith  <njs@pobox.com>

	* tests/t_unreadable_db.at, testsuite.at: New test.

2005-09-03  Nathaniel Smith  <njs@pobox.com>

	* po/Makevars (XGETTEXT_OPTIONS): N_ != ngettext.
	Add c-format flags on F() and FP() calls (only partially
	successful on latter, because of bug in xgettext).

2005-09-04  Grahame Bowland  <grahame@angrygoats.net>

	* commands.cc: siplify the monotone cat command
	to "monotone cat [-r] FIELNAME" (as in bug #12597)
	* monotone.texi: update documentation of "monotone cat"
	* tests/t_add_edge.at, tests/t_cat_file_by_name.at,
	tests/t_change_empty_file.at, tests/t_cvsimport.at,
	tests/t_cvsimport_deleted_invar.at, tests/t_cvsimport_drepper.at,
	tests/t_cvsimport_drepper2.at, tests/t_cvsimport_manifest_cycle.at,
	tests/t_cvsimport_samelog.at, tests/t_database_check.at,
	tests/t_db_kill_rev_locally.at, tests/t_empty_id_completion.at,
	tests/t_epoch.at, tests/t_epoch_server.at, tests/t_erename.at,
	tests/t_i18n_file.at, tests/t_import.at, tests/t_merge_add_del.at,
	tests/t_movedel.at, tests/t_movepatch.at, tests/t_netsync.at,
	tests/t_netsync_exclude.at, tests/t_netsync_exclude_default.at,
	tests/t_netsync_globs.at, tests/t_netsync_nocerts.at,
	tests/t_netsync_permissions.at, tests/t_netsync_read_permissions.at,
	tests/t_netsync_single.at, tests/t_normalized_filenames.at,
	tests/t_persistent_server_revision.at, tests/t_remerge.at,
	tests/t_rename.at, tests/t_renamed.at, tests/t_scan.at,
	tests/t_set_default.at, tests/t_singlecvs.at,
	tests/t_update_with_pending_add.at, tests/t_update_with_pending_drop.at,
	tests/t_update_with_pending_rename.at, tests/t_versions.at:
	use automation interface rather than "monotone cat"

2005-09-04  Grahame Bowland  <grahame@angrygoats.net>

	* ChangeLog: fix up screwed up three-way merge

2005-09-04  Grahame Bowland  <grahame@angrygoats.net>

	* automate.cc, commands.cc: add "automate get_file",
	"automate get_revision" and "automate get_manifest" to
	automation interface.
	* monotone.texi: document new automation commands
	* tests/t_automate_get_file.at, tests/t_automate_get_revision_at,
	tests/t_automate_get_manifest.at: trivial testing of new
	automation commands for output as specified, make sure they
	do not complete IDs, make sure invalid IDs are caught.
	* testsuite.at: add new tests

2005-09-03  Matthew Gregan  <kinetik@orcon.net.nz>

	* tests/t_persistent_server_keys_2.at: 'commit' needs a commit
	message.  Un-XFAIL.
	* tests/t_netsync_unrelated.at: Fix 'setup' syntax.
	* tests/t_add_vs_commit.at: BASE_REVISION needs to be in the root
	of a working copy to work.  Un-XFAIL.
	* tests/t_add_stomp_file.at: 'add' does not take a --branch
	argument.  BASE_REVISION needs to be in the root of a working copy
	to work.
	* annotate.cc (build_parent_lineage): Don't access uninitialized
	memory--use resize() rather than reserve().

2005-09-02  Matthew Gregan  <kinetik@orcon.net.nz>

	* monotone.cc: Use consistent case in option descriptions.

2005-09-02  Nathaniel Smith  <njs@pobox.com>

	* paths.{hh,cc}: Add split_path typedef.  Use it.

2005-09-02  Matt Johnston  <matt@ucc.asn.au>

	* lua.cc (monotone_guess_binary_file_contents_for_lua): use a
	temporary char* buffer rather than &string[], extra copying seems
	to have negligible performance impact.
	* tests/perf-test.sh: change path from tests/ to contrib/, make
	executable.
	* tests/parse-accounting.pl: make executable.

2005-09-01  Timothy Brownawell  <tbrownaw@gmail.com>

	* lua.cc, std_hooks.lua: use proper regexes for .mt-ignore
	taken from a patch from Martin Dvorak
	* contrib/monotone-cvs-ignore.lua: New file, from the same patch.
	supports .cvsignore files
	* tests/t_mt_ignore.at: check that a missing .mt-ignore
	doesn't cause problems

2005-09-01  Timothy Brownawell  <tbrownaw@gmail.com>

	* tests/t_mt_ignore.at: use RAW_MONOTONE instead of ugly --rcfile
	Also actually do "mtn add" this time.

2005-09-01  Timothy Brownawell  <tbrownaw@gmail.com>

	* tests/t_mt_ignore.at: new test, checks that .mt-ignore works
	* testsuite.at: add it

2005-09-01  Timothy Brownawell  <tbrownaw@gmail.com>

	* std_hooks.lua: support .mt-ignore
	* monotone.texi: mention .mt-ignore and MT/wanted-testresults under
	"Existing control files"
	* .mt-ignore: ignore testsuite.dir

2005-09-03  Benoît Dejean  <benoit@placenet.org>

	* commands.cc (ls_certs):
	* netsync.cc (load_data): Merged strings.

2005-09-01  Benoît Dejean  <benoit@placenet.org>

	* commands.cc: Merged one more "no such revision '%s'" string.

2005-09-01  Benoît Dejean  <benoit@placenet.org>

	* commands.cc: Merged all "no such revision '%s'" strings.
	(string_to_datetime): Merged catch blocks in order to merge error
	messages.

2005-09-01  Benoît Dejean  <benoit@placenet.org>

	* ChangeLog: Fixed.

2005-09-01  Matthew Gregan  <kinetik@orcon.net.nz>

	* ui.cc (user_interface): Avoid calling sync_with_stdio(false) on
	Win32 for now to work around a bug in MinGW where unsynchronized
	std::cin returns EOF earlier when reading a stream with DOS
	newlines.  Resolves 'db load' failure reported by Howard Spindel.
	* database.cc (load): Don't bother executing an empty string.
	* commands.cc (ALIAS(import, setup)): Remove alias.

2005-09-01  Matt Johnston  <matt@ucc.asn.au>

	* schema.sql: add BEGIN, COMMIT to make it a single transaction,
	improves db init performance significantly on OS X (avoids many
	disk-cache flushes).

2005-09-01  Matthew Gregan  <kinetik@orcon.net.nz>

	* testsuite.at: Increase entropy used to generate port numbers
	where we can and increase range of port numbers generated.
	* monotone.texi: Fix a couple of minor typos.

2005-09-01  Matthew Gregan  <kinetik@orcon.net.nz>

	* monotone.texi: Update 'setup' documentation and tutorial to
	reflect new usage.  Also update much of the monotone output in the
	tutorials to reflect the output of more modern versions of
	monotone.  Correct some minor errors and typos while here.
	* commands.cc (CMD(setup)): Require database and branch arguments.
	(ALIAS(import,setup)): Add setup alias.
	* testsuite.at, tests/*.at: Update 'setup' usage.

2005-08-31  Richard Levitte  <richard@levitte.org>

	* lua.cc, std_hooks.lua: Rename
	monotone_guess_binary_filename_for_lua and guess_binary_filename
	to monotone_guess_binary_file_contents_for_lua and
	guess_binary_file_contents.

2005-08-31  Benoît Dejean  <benoit@placenet.org>

	* basic_io.cc (basic_io::input_source::err): Merged strings.

2005-08-31  Nathaniel Smith  <njs@pobox.com>

	* file_io.cc (set_char_is_binary, guess_binary): static_cast chars
	to uint8_t before using as array indices.  Also replace some ints
	with size_t's to quiet g++ warnings.

2005-08-30  Benoît Dejean  <benoit@placenet.org>

	In function void set_char_is_binary(char, bool)
	133: warning: array subscript has type char
	In function void init_char_is_binary()
	147: warning: comparison between signed and unsigned integer expressions
	In function bool guess_binary(const std::string&)
	160: warning: comparison between signed and unsigned integer expressions
	162: warning: array subscript has type char

2005-08-30  Benoît Dejean  <benoit@placenet.org>

	* file_io.cc (walk_tree): Fixed format.

2005-08-31  Marcel van der Boom  <marcel@hsdev.com>

	* std_hooks.lua (execute_confirm): New function.
	(merge2_opendiff_cmd, merge3_opendiff_cmd): Add.

2005-08-31  Matthew Gregan  <kinetik@orcon.net.nz>

	* paths.cc (test_bookkeeping_path, test_system_path): Second
	attempt at compile fixes; this time the unit tests actually pass
	too.

2005-08-30  Matthew Gregan  <kinetik@orcon.net.nz>

	* paths.cc (test_bookkeeping_path, test_system_path): Shift object
	instantiation around a little to work around what seems to be a
	bug in the gcc 3.3 parser.
	* win32/inodeprint.cc (inodeprint_file): Update to use new path
	handling code.
	* win32/fs.cc (tilde_expand): Compile fix.

2005-08-30  Petr Baudis  <pasky@suse.cz>

	* std_hooks.lua: Simple support for merging using merge(1) and vim.

2005-08-30  Benoît Dejean  <benoit@placenet.org>

	* po/fr.po: Updated French translation.

2005-08-30  Benoît Dejean  <benoit@placenet.org>

	* commands.cc: Merged some error messages.

2005-08-30  Benoît Dejean  <benoit@placenet.org>

	* commands.cc: Merged complete(..., file_id) and
	complete(..., manifest_id) into template complete(..., ID).

2005-08-30  Benoît Dejean  <benoit@placenet.org>

	* commands.cc (ls_certs): Reworked for i18n.
	(CMD(commit)): Merged 2 strings.

2005-08-30  Matthew Gregan  <kinetik@orcon.net.nz>

	* revision.cc (ensure_parents_loaded): Don't reuse an iterator
	after we've invalidated it.  Fixes 'diff' crash reported by Howard
	Spindel.

2005-08-30  Matt Johnston  <matt@ucc.asn.au>

	* botan/allocate.cpp: avoid string comparison when looking up the
	default allocator
	* monotone.cc (cpp_main): set a default allocator

2005-08-28  Nathaniel Smith  <njs@pobox.com>

	* tests/t_attributes.at: Delete checkout dir in between
	checkouts.

2005-08-28  Matt Johnston  <matt@ucc.asn.au>

	* keys.cc (keys_match): new function to compare whether two keys
	match (ignoring whitespace as the database does, etc).
	* packet.cc, keys.cc: use it for existing-key-comparison.

2005-08-27  Nathaniel Smith  <njs@pobox.com>

	* commands.cc (checkout): Special-case "checkout ."
	* tests/t_checkout_dir.at: Test it.

2005-08-26  Nathaniel Smith  <njs@pobox.com>

	* file_io.hh: Remove comment describing old path types.
	* paths.hh: Add comment describing new path types.

2005-08-26  Nathaniel Smith  <njs@pobox.com>

	* app_state.cc (create_working_copy): Remove
	fs::filesystem_exception catching.
	* file_io.hh (mkdir_p): Remove comment noting app_state.cc's
	dependence on a boost-based implementation.

2005-08-26  Nathaniel Smith  <njs@pobox.com>

	* paths.cc: Include <string>.  Helps build on g++ 3.3?

2005-08-26  Nathaniel Smith  <njs@pobox.com>

	* commands.cc (get_log_message): Make the log message commentary a
	little more descriptive for people who may not know what a log
	message is...
	(commit): When canceling a commit due to empty log message, say
	so.

2005-08-26  Nathaniel Smith  <njs@pobox.com>

	* std_hooks.lua: Check for both "vi" and "notepad.exe" as fallback
	editors.  If no editor was found, print a helpful message instead
	of just running "vi" anyway.  Print a message if the editor exited
	with error.

2005-08-26  Nathaniel Smith  <njs@pobox.com>

	* file_io.cc (mkdir_p, make_dir_for): Increase error checking.
	* commands.cc (checkout): Make sure that checkout target directory
	does not already exist.  Also use system_path more uniformly.
	* tests/t_checkout_dir.at: Test.
	* tests/t_setup_existing_path.at: New test.

2005-08-26  Nathaniel Smith  <njs@pobox.com>

	* commands.cc (read): Optionally take files on command line.
	* tests/t_read_from_file.at, testsuite.at: New test.
	* monotone.texi (Network Service): Show Jim using this.
	(Packet I/O, Commands): Document.
	* monotone.1: Likewise.

2005-08-26  Nathaniel Smith  <njs@pobox.com>

	* change_set.cc (move_files_from_tmp_top_down): Typo again.

2005-08-26  Nathaniel Smith  <njs@pobox.com>

	* database.cc (open): Convert stray line to paths.cc.

2005-08-26  Nathaniel Smith  <njs@pobox.com>

	* change_set.cc (move_files_from_tmp_top_down): Typo.

	* file_io.cc (move_path): New function.
	(move_file, move_dir): Minor cleanup -- use
	require_path_is_nonexistent.

	* work.cc (build_deletions): Use delete_file, rather than unlink.
	If file is already non-existent, do nothing.
	(build_rename): Use move_path, rather than rename.  If file
	already appears to have been renamed, do nothing.

2005-08-26  Nathaniel Smith  <njs@pobox.com>

	* app_state.cc (allow_working_copy): Make logging more sensible.

2005-08-26  Nathaniel Smith  <njs@pobox.com>

	* transforms.cc (length):
	* database.cc (sql, load, open):
	* commands.cc (rename, attr):
	* change_set.cc (move_files_to_tmp_bottom_up)
	(move_files_from_tmp_top_down): Merge fixups.

2005-08-26  Nathaniel Smith  <njs@pobox.com>

	* database_check.cc: Track and report on manifest and revision
	parseability.
	* tests/t_database_check_normalized.at: Update to expect "not
	parseable" messages rather than "not normalized" messages.
	All tests pass.

2005-08-26  Nathaniel Smith  <njs@pobox.com>

	* tests/t_unreadable_MT.at: This test was called "do not fail on
	unreadable MT/options".  I do not know why we wanted such
	behavior.  I am making it "fail cleanly on unreadable
	MT/options".

2005-08-26  Nathaniel Smith  <njs@pobox.com>

	* paths.cc (check_fp_normalizes_to, test_file_path_internal):
	Oops, there were more places testing for non-brokenness; break
	them too.

2005-08-26  Nathaniel Smith  <njs@pobox.com>

	* paths.cc (test_split_join): Test that you cannot create a path
	in MT by joining.
	(file_path): Implement it.
	(split): Break, to match broken behavior of old splitter (easier
	than fixing change_set.cc...)
	(file_path_internal): Test for brokenness accordingly.

2005-08-26  Nathaniel Smith  <njs@pobox.com>

	* commands.cc (cat): Hack so that 'cat file REV PATH' works
	correctly both inside and outside of working copy, interpreting
	path slightly differently in each case.

2005-08-26  Nathaniel Smith  <njs@pobox.com>

	* tests/t_normalized_filenames.at: Internal unnormalized pathnames
	are no longer silently normalized, but rather a hard error.
	Adjust test accordingly.

2005-08-26  Nathaniel Smith  <njs@pobox.com>

	* paths.hh (file_path_internal_from_user): New constructor.
	* paths.cc (test_file_path_internal): Test it.
	(file_path::file_path): Implement it.
	* commands.cc (cat): Use it to create/validate passed in
	filenames.

2005-08-26  Nathaniel Smith  <njs@pobox.com>

	* paths.cc (test_system_path): Require that system_path normalize
	out ..'s.
	(system_path): Do so.

2005-08-26  Nathaniel Smith  <njs@pobox.com>

	* work.cc (build_additions): Remove redundant (and now wrong)
	code.
	Test 53 now passes.

2005-08-26  Nathaniel Smith  <njs@pobox.com>

	* file_io.cc (make_dir_for): Oops, this doesn't need a
	fs::native.
	Test 37 now passes.

2005-08-26  Nathaniel Smith  <njs@pobox.com>

	* file_io.cc (mkdir): New function.  Now with extra brain-eating
	power.
	(mkdir_p, make_dir_for, delete_file, delete_dir_recursive)
	(move_file, move_dir, write_data_impl): Use it, to make all
	fs::path's native and disable boost's random rejection of paths.

2005-08-26  Nathaniel Smith  <njs@pobox.com>

	* paths.cc (test_file_path_external_prefix_a_b)
	(test_file_path_external_no_prefix, test_file_path_internal): Test
	for validity of more strange characters (,+@*%#$=).

2005-08-26  Nathaniel Smith  <njs@pobox.com>

	* file_io.cc (ident_existing_file): Remove accidentally-left-in
	code.  Test 26 now passes.
	* lua.cc (monotone_includedir_for_lua, load_rcfile): Add
	fs::native's.

2005-08-25  Nathaniel Smith  <njs@pobox.com>

	* paths.hh (system_path::system_path): Add new boolean argument
	controlling some access_tracker behavior.
	* app_state.cc (allow_working_copy): Use it.
	* paths.cc (system_path): Implement it.
	(test_system_path): Test it.

2005-08-25  Nathaniel Smith  <njs@pobox.com>

	* file_io.cc (walk_tree): Return properly.

2005-08-25  Nathaniel Smith  <njs@pobox.com>

	* paths.cc (test_file_path_internal): Add tests for
	file_path.empty().
	* file_io.cc (walk_tree_recursive): Add explicit fs::native.

2005-08-25  Nathaniel Smith  <njs@pobox.com>

	* paths.cc: Many small changes.  Unit tests now pass.  72
	unexpected autotest failures.

2005-08-25  Nathaniel Smith  <njs@pobox.com>

	* paths.cc (file_path): Fix up error reporting in external path
	normalization.
	(test_file_path_external_no_prefix): "" is always an invalid
	path.

2005-08-25  Nathaniel Smith  <njs@pobox.com>

	* database.cc (sql): Only check schema version when db actually
	exists.

2005-08-25  Nathaniel Smith  <njs@pobox.com>

	* file_io.cc (read_data_for_command_line): We are given a
	system_path.

2005-08-25  Nathaniel Smith  <njs@pobox.com>

	* paths.cc: Fix all unit test failures, except for two mysterious
	boost::too_few_args exceptions.

2005-08-25  Nathaniel Smith  <njs@pobox.com>

	* paths.cc, unix/fs.cc: Many, many fixes and some new tests too.

2005-08-25  Nathaniel Smith  <njs@pobox.com>

	* paths.cc (struct access_tracker): Doh, initializer should set
	'initialized'...
	(test_file_path_internal): It's valid for a split file
	to have a null component if the file is "".

2005-08-25  Nathaniel Smith  <njs@pobox.com>

	* paths.cc (in_bookkeeping_dir): Last change didn't work out so
	well; let's remove some negatives and see if I can understand what
	the code does this way...

2005-08-25  Nathaniel Smith  <njs@pobox.com>

	* paths.cc (not_in_bookkeeping_dir): Handle "MT" case.
	Update tests to make sure it sticks...

2005-08-25  Nathaniel Smith  <njs@pobox.com>

	* unit_tests.{cc,hh} (init_unit_test_suite): Remove
	path_component_tests.
	* unix/fs.cc (tilde_expand): Another compile fix.

2005-08-25  Nathaniel Smith  <njs@pobox.com>

	* {unix,win32}/fs.cc: Misc. compile fixes.

2005-08-25  Nathaniel Smith  <njs@pobox.com>

	* Makefile.am (UNIX_PLATFORM_SOURCES): Add unix/fs.cc
	(WIN32_PLATFORM_SOURCES): Add win32/fs.cc
	* paths.hh (bookkeeping_path): Implement default constructor.

2005-08-25  Nathaniel Smith  <njs@pobox.com>

	* rcs_import.cc (import_cvs_repo):
	* lua.cc (default_rcfilename):
	* diff_patch.cc (get_version): Small compile fixes.

2005-08-25  Nathaniel Smith  <njs@pobox.com>

	* paths.{cc,hh} (is_bookkeeping_path): New static method.
	* file_io.cc (walk_tree_recursive): Use it.  Now compiles.
	paths.cc and file_io.cc now compile.

2005-08-25  Nathaniel Smith  <njs@pobox.com>

	* file_io.cc (delete_dir_recursive): Implement.
	Misc. compile fixes.

2005-08-25  Nathaniel Smith  <njs@pobox.com>

	* file_io.cc (test_book_keeping_file): Remove.

2005-08-25  Nathaniel Smith  <njs@pobox.com>

	* file_io.cc (walk_tree_recursive, walk_tree): Implement.

2005-08-25  Nathaniel Smith  <njs@pobox.com>

	* paths.cc (const_system_path): Do tilde expansion.

2005-08-25  Nathaniel Smith  <njs@pobox.com>

	* file_io.cc (read_localized_data, read_data_for_command_line)
	(write_localized_data, write_data, write_data_impl): Implement.

2005-08-25  Nathaniel Smith  <njs@pobox.com>

	* file_io.cc (read_data): Implement.  Remove the base64<gzip<>>
	versions.

2005-08-25  Nathaniel Smith  <njs@pobox.com>

	* file_io.cc (move_file, move_dir): Implement.

2005-08-25  Nathaniel Smith  <njs@pobox.com>

	* file_io.cc (assert_path_is_nonexistent, assert_path_is_file)
	(assert_path_is_directory, require_path_is_nonexistent)
	(require_path_is_file, require_path_is_directory)
	(ident_existing_file, mkdir_p, make_dir_for, delete_file)
	(delete_dir_recursive): Implement.

2005-08-25  Nathaniel Smith  <njs@pobox.com>

	* Audit uses of 'file_exists', because its semantics have changed;
	it now checks to see if a path exists and is a regular file,
	rather than that it simply exists.  A fair amount of code already
	thought it meant that... other places now use 'path_exists'.

2005-08-25  Nathaniel Smith  <njs@pobox.com>

	* file_io.cc (path_exists, directory_exists, file_exists):
	Implement.

2005-08-25  Nathaniel Smith  <njs@pobox.com>

	* platform.hh (get_path_status): New function.
	* unix/fs.cc (get_path_status): Implement.
	* win32/fs.cc (get_path_status): Implement inefficiently (does
	win32 have stat?)

2005-08-25  Nathaniel Smith  <njs@pobox.com>

	* file_io.cc (get_homedir, tilde_expand, book_keeping_file)
	(book_keeping_dir): Remove.

2005-08-25  Nathaniel Smith  <njs@pobox.com>

	* platform.hh (get_homedir): New function.
	* {win32,unix}/fs.cc (get_homedir): Expose.

2005-08-25  Nathaniel Smith  <njs@pobox.com>

	* Minor compile fixes.

2005-08-25  Nathaniel Smith  <njs@pobox.com>

	* platform.hh (tilde_expand): New function.
	* win32/fs.cc, unix/fs.cc: Implement it.

2005-08-25  Nathaniel Smith  <njs@pobox.com>

	* paths.cc: Many more fixes.  Now compiles with and without unit
	tests.

2005-08-25  Nathaniel Smith  <njs@pobox.com>

	* paths.cc: Lots of compile fixes for unit tests.
	Add a test for access_tracker.

2005-08-25  Nathaniel Smith  <njs@pobox.com>

	* paths.cc: Many fixes.  Now compiles.

2005-08-25  Nathaniel Smith  <njs@pobox.com>

	* paths.cc (system_path): Implement.

2005-08-24  Nathaniel Smith  <njs@pobox.com>

	* paths.cc (fully_normalized_path): Use find_first_of.

2005-08-24  Nathaniel Smith  <njs@pobox.com>

	* paths.cc (find_and_go_to_working_copy, save_initial_path)
	(go_to_working_copy): Use new checked structure.
	(operator <<): Make sure we can log our access_tracked values
	without marking them as used.

2005-08-24  Nathaniel Smith  <njs@pobox.com>

	* paths.cc (struct access_tracker): Add invariant checking on
	lifetime usage of path roots.

2005-08-24  Nathaniel Smith  <njs@pobox.com>

	* paths.hh (any_path::operator =): return *this.

2005-08-24  Nathaniel Smith  <njs@pobox.com>

	* paths.{cc,hh}: More fixes.

2005-08-24  Nathaniel Smith  <njs@pobox.com>

	* paths.{cc,hh}: Reorganize a bit.  Implement file_path and
	bookkeeping_path.

2005-08-24  Nathaniel Smith  <njs@pobox.com>

	* paths.cc (file_path): Implement basic constructor.
	Misc compile fixes.
	Add single-character names to tests.

2005-08-24  Nathaniel Smith  <njs@pobox.com>

	* paths.cc (go_to_working_copy): New function.  Implement.
	* app_state.cc (create_working_copy): Adjust accordingly.

2005-08-24  Nathaniel Smith  <njs@pobox.com>

	* paths.cc (find_and_go_to_working_copy): Implement.
	* app_state.cc (allow_working_copy): Adjust accordingly.
	(relative_directory): Remove.
	* file_io.cc (find_working_copy): Remove.

2005-08-24  Nathaniel Smith  <njs@pobox.com>

	* paths.cc (save_initial_path): Update for previous changes.

2005-08-24  Nathaniel Smith  <njs@pobox.com>

	* paths.cc (test_system_path): Add tests for the
	from-any_path constructor.  Add test for "~foo" handling.
	Start cleaning up path roots.
	* platform.hh: Note that get_current_working_dir() is
	charset-broken (i.e., operations started inside non-utf8
	directories are probably broken).

2005-08-24  Nathaniel Smith  <njs@pobox.com>

	* app_state.cc (allow_working_copy):
	* change_set.cc (print_insane_change_set): Two more small compile
	fixes.
	All remaining compile errors are localized to unimplemented
	paths.cc/file_io.cc functionality.

2005-08-24  Nathaniel Smith  <njs@pobox.com>

	* database.cc (initialize): Missing ;.

2005-08-24  Nathaniel Smith  <njs@pobox.com>

	* monotone.cc (cpp_main): Handle message_file right.

2005-08-24  Nathaniel Smith  <njs@pobox.com>

	* change_set.cc (print_insane_path_rearrangement):
	* database.cc (initialize):
	* monotone.cc (cpp_main): More small compile fixes.

2005-08-24  Nathaniel Smith  <njs@pobox.com>

	* file_io.hh
	({assert,require}_path_is_{nonexistent,file,directory}): New
	functions.
	Use them everywhere.

2005-08-24  Nathaniel Smith  <njs@pobox.com>

	* basic_io.hh: #include "paths.hh".
	* monotone.cc (add_rcfile): Remove obsolete absolutification, etc.

2005-08-24  Nathaniel Smith  <njs@pobox.com>

	* paths.hh (system_path): Add a from-any_path constructor.
	* Makefile.am (MOST_SOURCES): Remove path_component.{cc,hh}.
	* basic_io.hh (push_file_pair): New method.
	* change_set.cc (print_insane_change_set)
	(print_insane_path_rearrangement): Use it.

2005-08-24  Nathaniel Smith  <njs@pobox.com>

	* paths.hh (any_path::as_internal): On second thought, return a
	std::string, not a utf8 -- utf8 would be better, but should wait
	for some more general charset handling cleanup.
	* Adjust other files accordingly.

2005-08-24  Nathaniel Smith  <njs@pobox.com>

	* More compile fixes.  All remaing compile errors are real
	problems, yay.

2005-08-24  Nathaniel Smith  <njs@pobox.com>

	* Lots and lots more compile fixes.

2005-08-24  Nathaniel Smith  <njs@pobox.com>

	* paths.hh, monotone.cc, app_state.hh, app_state.cc:
	* unix/inodeprint.cc: More compile fixes.

2005-08-24  Nathaniel Smith  <njs@pobox.com>

	* manifest.hh: Include paths.hh.
	* file_io.hh: Fix syntax errors, and fixup interface.

2005-08-24  Nathaniel Smith  <njs@pobox.com>

	* paths.hh, sanity.hh: Compilation fixes.

2005-08-24  Nathaniel Smith  <njs@pobox.com>

	* paths.cc: Update tests to use path_state_* and pass utf8
	objects.

2005-08-24  Nathaniel Smith  <njs@pobox.com>

	* paths.hh (file_path_external): Take a utf8() object, always.

2005-08-24  Nathaniel Smith  <njs@pobox.com>

	* paths.hh (class file_path): Make "convenience functions"
	required.

2005-08-24  Nathaniel Smith  <njs@pobox.com>

	* Switch rest of instances to using convenience functions.

2005-08-24  Nathaniel Smith  <njs@pobox.com>

	* Switch many instances to using convenience functions.

2005-08-24  Nathaniel Smith  <njs@pobox.com>

	* paths.hh (file_path_internal, file_path_external): Define
	convenience functions.
	(file_path, bookkeeping_path, system_path): Add default
	constructors.

2005-08-24  Nathaniel Smith  <njs@pobox.com>

	* app_state.cc, change_set.cc, change_set.hh, commands.cc:
	* inodeprint.cc, manifest.cc, rcs_import.cc, restrictions.cc:
	* work.cc: Audit all calls to file_path() to add internal/external
	notation.

2005-08-24  Nathaniel Smith  <njs@pobox.com>

	* app_state.cc: More paths.hh conversion.
	(app_state::prefix): Remove.
	* commands.cc: Remove uses of app.prefix.
	* automate.cc (automate_attributes): Likewise.

2005-08-23  Nathaniel Smith  <njs@pobox.com>

	* paths.hh (any_path::as_internal): On second thought, return a
	utf8 object.
	* app_state.cc (set_database): Take a system_path.
	(set_pidfile): Likewise.
	* monotone.cc (cpp_main): Pass one.

2005-08-23  Nathaniel Smith  <njs@pobox.com>

	* file_io.hh (get_homedir): Return a system_path.
	* app_state.hh (app_state): Make pidfile a system_path.
	* sanity.hh (sanity::filename): Make a system_path.
	* monotone.cc (cpp_main): Adjust accordingly.
	* paths.hh (any_path): Add as_internal() to interface.
	* paths.cc: Add roundtripping tests.

2005-08-23  Nathaniel Smith  <njs@pobox.com>

	* platform.hh, unix/fs.cc, win32/fs.cc
	(change_current_working_dir): Take an any_path, not a string.
	* rcs_import.{cc,hh}: Convert to paths.hh.

2005-08-23  Nathaniel Smith  <njs@pobox.com>

	* commands.cc (pid_file): Remove fs::path.

2005-08-23  Nathaniel Smith  <njs@pobox.com>

	* mkstemp.cc (monotone_mkstemp): Remove references to fs::path.

2005-08-23  Nathaniel Smith  <njs@pobox.com>

	* change_set.cc (apply_rearrangement_to_filesystem): Oops, missed
	some local_path's.

2005-08-23  Nathaniel Smith  <njs@pobox.com>

	* path_component.{cc,hh}: Delete.

2005-08-23  Nathaniel Smith  <njs@pobox.com>

	* change_set.cc (move_files_to_tmp_bottom_up)
	(move_files_from_tmp_top_down): Convert to paths.hh.
	Whole file: stop using path_component.hh.

2005-08-23  Nathaniel Smith  <njs@pobox.com>

	* paths.cc (test_bookkeeping_path): Oops, "" is an invalid
	bookkeeping_path.

2005-08-23  Nathaniel Smith  <njs@pobox.com>

	* lua.cc, paths.cc: Few more tweaks for previous change.

2005-08-23  Nathaniel Smith  <njs@pobox.com>

	* paths.{cc,hh}: Add / operators.  Make that the usual way to use
	bookkeeping_path's.
	* work.cc: Adjust accordingly.
	* lua.cc (working_copy_rcfilename): Likewise.
	* commands.cc (update): Likewise.

2005-08-23  Nathaniel Smith  <njs@pobox.com>

	* paths.{cc,hh} (operator <<): Implement for any_paths.
	* paths.hh (class bookkeeping_path): Note that current design is
	bogus to remind myself to fix it tomorrow...

2005-08-23  Nathaniel Smith  <njs@pobox.com>

	* work.{hh,cc}: Convert to paths.hh.

2005-08-23  Nathaniel Smith  <njs@pobox.com>

	* lua.{cc,hh}: Mostly convert to paths.hh.  (Still uses boost::fs
	internally for some directory iteration.)
	* app_state.cc (load_rcfiles): Update accordingly.
	* file_io.hh (path_state): De-templatify; take any_path instead of
	a T.

2005-08-23  Nathaniel Smith  <njs@pobox.com>

	* paths.cc (any_path): New base class.
	(file_path, bookkeeping_path, system_path): Inherit from it.
	* transforms.{hh,cc} (utf8_to_system): Actually, always take a
	utf8 after all (but still have two return types).

2005-08-23  Nathaniel Smith  <njs@pobox.com>

	* transforms.cc: Convert to paths.hh.

2005-08-23  Nathaniel Smith  <njs@pobox.com>

	* transforms.{cc,hh} (localized, localized_as_string): Remove.

2005-08-23  Nathaniel Smith  <njs@pobox.com>

	* transforms.cc (utf8_to_system): Make fast.

2005-08-23  Nathaniel Smith  <njs@pobox.com>

	* transforms.hh (utf8_to_system): Add a string->string version.
	* transforms.cc (utf8_to_system): Implement it.

2005-08-23  Nathaniel Smith  <njs@pobox.com>

	* paths.cc (localized_path_str): New function.
	Fix some tests.

2005-08-23  Nathaniel Smith  <njs@pobox.com>

	* commands.cc: Convert to paths.hh.
	* mkstemp.cc (monotone_mkstemp): Likewise.

2005-08-23  Nathaniel Smith  <njs@pobox.com>

	* vocab_terms.hh, vocab.cc: Remove file_path, local_path.
	* database.{hh,cc}, monotone.cc: Convert to paths.hh.
	* file_io.{hh,cc}: Start to convert to paths.hh.

2005-08-23  Nathaniel Smith  <njs@pobox.com>

	* paths.{cc,hh} (fully_normalized_path): Implement.
	(external_path): Rename to system_path.
	Misc. other updates.

2005-08-21  Eric Anderson  <anderse-monotone@cello.hpl.hp.com>
	* file_io.cc, file_io.hh, lua.cc, std_hooks.lua: determine if a
	file is binary by looking at it incrementally, rather than reading
	it in entirely.  Prepare for making it possible to control what
	characters are considered "binary"

2005-08-20  Nathaniel Smith  <njs@codesourcery.com>

	* paths.cc (is_absolute): New function.
	(file_path::file_path(vector<path_component>))
	(file_path::split): Implement.

2005-08-20  Nathaniel Smith  <njs@pobox.com>

	* interner.hh (interner): Add a scary constructor that lets us
	insert an initial value and assert that we already knew that the
	value assigned to it would be.  (This lets us make it an inlined
	constant.)

2005-08-20  Nathaniel Smith  <njs@pobox.com>

	* paths.cc: Yet more tests.

2005-08-20  Nathaniel Smith  <njs@pobox.com>

	* paths.cc (save_initial_path): Implement.
	Add more tests.

2005-08-20  Nathaniel Smith  <njs@codesourcery.com>

	* paths.{cc,hh}: New files.
	* Makefile.am (MOST_SOURCES): Add them.
	* unit_tests.hh (add_paths_tests): Declare.
	* unit_tests.cc (init_unit_test_suite): Add them.
	* platform.hh (get_current_working_dir)
	(change_current_working_dir):  New functions.
	* {unix,win32}/fs.cc: New files.

2005-08-19  Nathaniel Smith  <njs@codesourcery.com>

	* monotone.texi (Tutorial): Tweak wording, use --db at more
	appropriate places.

2005-08-26  Richard Levitte  <richard@levitte.org>

	* database.cc (version): Revert the change done earlier, as it
	aborted if the schema isn't the current one, rendering this method
	useless.

2005-08-26  Matt Johnston  <matt@ucc.asn.au>

	* change_set.cc (check_depth, confirm_proper_tree):
	more efficient algorithm to check for no loops
	* constants.hh: new constant max_path_depth to limit
	recursion in check_depth.

2005-08-26  Benoît Dejean  <benoit@placenet.org>

	* po/fr.po: Updated French translation.

2005-08-26  Richard Levitte  <richard@levitte.org>

	* options.hh, monotone.cc: Add the '--execute' command-specific
	option.
	* monotone.cc (cpp_main): ... and process it.
	* app_state.hh (class app_state): Add the 'execute' boolean.
	* app_state.cc (app_state): Initialise it.
	* commands.cc (CMD(drop)): Add '--execute' capability.
	* commands.cc (CMD(rename)): Add '--execute' capability.  Pass
	'app' to build_rename.
	* work.hh, work.cc (build_deletions, build_rename): Do the actual
	work.  This required the addition of an app_state parameter to
	build_rename.

	* tests/t_drop_execute.at, tests/t_rename_execute.at: New tests.
	* testsuite.at: Add them.

2005-08-26  Benoît Dejean  <benoit@placenet.org>

	* mt_version.cc (print_full_version): Merged strings.
	* change_set.cc: No i18n for unittests. Wow, this saves
	21 strings (total 781).

2005-08-25  Benoît Dejean  <benoit@placenet.org>

	* commands.cc (safe_gettext): New function.
	(explain_usage): Used there to avoid _("").

2005-08-25  Benoît Dejean  <benoit@placenet.org>

	* sanity.{cc,hh} (sanity::do_format): Merged code from
	sanity::{log, warning, progress} in order to merge
	strings. Fixed exception rethrowing.

2005-08-25  Benoît Dejean  <benoit@placenet.org>

	* commands.cc (CMD(lca)): One more string for i18n.
	(CMD(trusted)): Merged all strings.

2005-08-25  Benoît Dejean  <benoit@placenet.org>

	* po/fr.po: Updated French translation.

2005-08-25  Benoît Dejean  <benoit@placenet.org>

	* database.cc (database::version): Marked string for i18n
	and simplifed.
	(database::info): Reworked to merge all strings for i18n.

2005-08-25  Benoît Dejean  <benoit@placenet.org>

	* database.{cc,hh} (database::open, database::check_filename):
	New functions to avoid error handling code and string duplicates.

2005-08-25  Matt Johnston  <matt@ucc.asn.au>

	* transform.cc ({int,ext}ernalize_rsa_keypair_id): don't
	convert the username portion of key ids to/from ACE.
	* tests/t_genkey.at: check that foo+bar@example.com works
	and foobar@exam+ple.com doesn't.

2005-08-24  Benoît Dejean  <benoit@placenet.org>

	* database.cc (assert_sqlite3_ok): Somehow merged error messages.

2005-08-24  Benoît Dejean  <benoit@placenet.org>

	* change_set.cc (move_files_to_tmp_bottom_up): Better strings.
	* keys.cc (generate_key_pair): Merged 2 strings.

2005-08-24  Nathaniel Smith  <njs@pobox.com>

	* database.cc (assert_sqlite3_ok): Remove accidentally-left-in
	format string argument.

2005-08-24  Nathaniel Smith  <njs@pobox.com>

	* revision.cc (check_sane_history): Add MM's for calculated
	changesets.

2005-08-24  Nathaniel Smith  <njs@pobox.com>

	* database.cc (assert_sqlite3_ok): Don't print the raw sqlite
	error code.  Do add some auxiliary information when sqlite errors
	are confusing.

2005-08-24  Nathaniel Smith  <njs@pobox.com>

	* Back out most changes since
	b580c6ac5bf8eea1f442b8bddc60283b047ade1e.  Handling charsets
	properly by working in utf8 and then converting sucks.  Problems
	include
	  - gettext hates you (wants to return stuff in local charset)
	  - strerror hates you (same reason, but you can't turn it off)
	  - can't report charset conversion errors
	We thus return to our "sorta-correct, by accident" status quo.
	Only change left in is signedness fix in
	5548868ab56d939c1fd8713aa2ac8caacd1184a1.

2005-08-23  Nathaniel Smith  <njs@pobox.com>