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@glamdring.local>

	* 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): 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-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>

	* ui.cc (sanitize): Fix signedness bug in comparison.
	* unix/unix.{cc,hh}: New files.
	* Makefile.am (UNIX_PLATFORM_SOURCES): Add them.
	* unix/process.cc (is_executable, make_executable): Use new
	function last_error.

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

	* transforms.{cc,hh} (system_charset): Expose.
	* monotone.cc (cpp_main): Use it to fiddle with gettext's charset
	conversion and make --help output actually correct.

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

	* transforms.cc (outprep): Don't sanitize all output; removes too
	many valid characters (\r, \t, etc.).
	* ui.cc: Call outprep on ticker output.
	(inform): Do still sanitize ui.inform() output.

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

	* transforms.cc (outprep): New function.
	* ui.cc (inform): Use it.
	* monotone.cc (cpp_main): Use it.
	Everything that writes user-intended output directly (i.e., via
	cout) must call outprep() on that data before printing it.
	
2005-08-23  Nathaniel Smith  <njs@pobox.com>

	* monotone.cc (cpp_main): Trick popt into converting its generated
	help messages into the current locale's charset.

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

	* ui.cc (inform, sanitize): Convert all output from utf8 to
	current locale's charset.

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

	* monotone.cc (cpp_main): Use bind_textdomain_codeset to request
	that all gettext'ed strings be returned in UTF-8.

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

	* idna/nfkc.c (g_utf8_strlen): Expose.
	* transforms.{cc,hh} (length): New function.
	* ui.cc (write_ticks): Use length() instead of .size() to
	calculate string widths; should support multibyte characters
	better.  (Still some problems relating to truncating strings to
	avoid overflow -- calculate truncation by length, but perform
	truncation by bytes...)

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

	* po/fr.po: Updated French translation.

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

	* monotone.cc:
	* commands.cc: Two more i18n strings.

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

	* lua.cc: boost::format vs. F.

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

	* AUTHORS: Add Benoît Dejean <benoit@placenet.org>.  Create new
	section for translators.  Add Benoît there too.

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

	* commands.cc: N_("") -> "".

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

	* commands.cc: Make all CMD() calls use N_() instead of _().
	(commands): Insert _() everywhere usage strings are used.  This is
	icky.

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

	* keys.cc (get_passphrase): Put back trailing ": " removed in
	recent i18n changes.

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

	* change_set.cc (dump_change_set): boost::format instead of F.
	* commands.cc (get_log_message, notify_if_multiple_heads,
	complete, CMD(attr)): Marked some strings for i18n. Replaced a
	multiline string by prefix_lines_with(). Merged strings.
	* diff_patch.cc (merge_provider::try_to_merge_files): Merged
	strings.
	* i18n.h: N_() stands for gettext_noop(), not plural.
	* keys.cc (get_passphrase): Fixed string surgery.
	* netsync.cc: i18nized tickers' labels. Added xgettext comment
	as tickers do not play well with multibytes characters (like é).
	(session::analyze_attachment): Fixed string surgery.
	(session::process_hello_cmd): Merged many strings.
	(session::process_data_cmd): Removed some leading/trailing
	whitespaces.
	* sanity.cc: Marked error prefixes for i18n.
	* ui.cc (tick_write_count::write_ticks): Reworked and fixed
	surgery. Merged some strings.

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

	* commands.cc (CMD*): _("") -> "" as _("") returns the PO
	header.

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

	* transforms.cc (check_idna_encoding): No i18n for unittests.

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

	* change_set.cc (dump_change_set): boost::format instead of F.
	* commands.cc (get_log_message, notify_if_multiple_heads,
	complete, CMD(attr)): Marked some strings for i18n. Replaced a
	multiline string by prefix_lines_with(). Merged strings.
	* diff_patch.cc (merge_provider::try_to_merge_files): Merged
	strings.
	* i18n.h: N_() stands for gettext_noop(), not plural.
	* keys.cc (get_passphrase): Fixed string surgery.
	* netsync.cc: i18nized tickers' labels. Added xgettext comment
	as tickers do not play well with multibytes characters (like é).
	(session::analyze_attachment): Fixed string surgery.
	(session::process_hello_cmd): Merged many strings.
	(session::process_data_cmd): Removed some leading/trailing
	whitespaces.
	* sanity.cc: Marked error prefixes for i18n.
	* ui.cc (tick_write_count::write_ticks): Reworked and fixed
	surgery. Merged some strings.

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

	* netcmd.cc (test_netcmd_functions): Don't translate unittest
	strings.
	* rcs_import.cc (cvs_commit::cvs_commit):
	* database.cc (version_cache::put):
	* lua.cc (dump_stack): boost::format vs. F for strings that are
	not messages.

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

	* xdelta.cc: Don't translate unittest strings.

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

	* monotone.texi: Bring 'update' syntax up to date.

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

	* tests/t_diff_external.at: --diff-args without --external is an
	error.
	* commands.cc (diff): Likewise.

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

	* contrib/ciabot_monotone.py (send_change_for): Handle author
	names with spaces in.

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

	* HACKING: change the vim modeline to something that seems to work
	better.

2005-08-23  Olivier Andrieu  <oliv__a@users.sourceforge.net>

	* contrib/monotone.el: When running monotone commands, re-use
	*monotone* buffers. Make the "status" command use the prefix
	argument. Make the "tree"-restricted commands work in dired
	buffers. Add the "--no-merges" option in the log command. Various
	other innocuous changes.

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

	* mt_version.cc (print_full_version): Typo.

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

	* mt_version.cc: Include sanity.hh.

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

	* netsync.cc (process_error_cmd, run_netsync_protocol): Remove
	some newlines to avoid translation noise.

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

	* po/LINGUAS, po/ja.po: Remove ja translation again, it seems to
	be corrupt.

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

	* commands.cc (update): Don't use F() to indent things.
	
2005-08-22  Nathaniel Smith  <njs@pobox.com>

	* commands.cc (dump_diffs): Don't use F() to create diff headers.
	(commands::process): Put '' in the log message to make Benoît
	Dejean happy ;-).
	
2005-08-22  Nathaniel Smith  <njs@pobox.com>

	* po/LINGUAS, po/ja.po: Add Japanese translation by Satoru SATOH.
	
2005-08-20  Benoît Dejean  <benoit@placenet.org>

	* po/monotone.pot: Remove from version control.
	* po/POTFILES.skip: New file.
	* po/fr.po: French translation (initial version).
	* po/LINGUAS: Add fr.
	
2005-08-22  Nathaniel Smith  <njs@pobox.com>

	* commands.cc (read): Use FP (thanks to Benoît Dejean for
	catch).
	* mt_version.cc (print_version, print_full_version): Mark more
	strings for i18n (also thanks to Benoît Dejean).
	
2005-08-22  Nathaniel Smith  <njs@pobox.com>

	* commands.cc (commands): Revert previous changes, xgettext is
	buggy.
	Mark every CMD() string argument with _().
	* i18n.h, Makefile.am: New file.
	* sanity.hh: Include it.
	* po/Makevars (XGETTEXT_OPTIONS): Learn about _() and N_() as
	markers.

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

	* commands.cc (commands): Oops, can't call gettext on a
	std::string...

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

	* monotone.cc (coptions, options): Use gettext_noop to mark usage
	strings for i18n.
	* commands.cc (commands): gettextify command descriptions
	* po/Makevars (XGETTEXT_OPTIONS): Include the 2nd, 3rd, and 4th
	arguments to CMD macro as translatedable strings.

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

	* database.cc: Replace a bunch of F()'s by boost::format's,
	because F is only for strings displayed to user.

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

	* po/Makevars (XGETTEXT_OPTIONS): Extract FP'ed strings.

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

	* sanity.hh (FP): New macro.  Usage:
	FP("frobbed %i bar", "frobbed %s bars", num_bars) % num_bars

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

	* contrib/monotone-import.pl: When temporarly touching files that
	have disappeared since last import, don't forget to create
	intermediary directories as well (and to remove them later on).
	Make sure all file arguments are quoted.  Finally, pick up the
	newly created revision by reading MT/revision instead of relying
	on backquotes working.
	Notofication and initial correction submitted by
	BigFish <bigfische@gmail.com>.

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

	* revision.hh: Delete doubled line of text in comment.

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

	* monotone.cc (cpp_main): setlocale(LC_ALL).
	* commands.cc (dropkey): Unify warning into a single string.

2005-08-20  Nathaniel Smith  <njs@codesourcery.com>

	* contrib/monoprof.sh (test_commit): Kernel tarball unpacks to
	linux-$KVER/, not $KVER/.

2005-08-19  Nathaniel Smith  <njs@codesourcery.com>

	* contrib/monoprof.sh (SETUP): Put netsync hooks in the default
	hook file.

2005-08-19  Nathaniel Smith  <njs@codesourcery.com>

	* contrib/monoprof.sh: Give a sensible error message if $DATADIR
	doesn't exist.

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

	* database.cc (put_revision): uncomment check_sane_history call
	(was accidentally committed commented out)

2005-08-19  Nathaniel Smith  <njs@codesourcery.com>

	* monotone.texi (Tutorial): Tweak wording, use --db at more
	appropriate places.

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

	* tests/t_crlf.at: Adjust expected line count to accomodate diff
	output change.
	* commands.cc (CMD(diff)): Include base revision ID in diff output
	header when diffing against working copy.  Useful to identify what
	revision a patch was created against.
	* std_hooks.lua (ignore_file): Ignore Visual SourceSafe junk.

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

	* std_hooks.lua: accept_testresult_change now only cares about
	testresults listed in MT/wanted-testresults

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

	* INSTALL: Remove outdated references to configure options and
	Solaris build workarounds.
	* configure.ac: Lower gettext requirement from 0.12.1 to 0.11.5.

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

	* sanity.cc (gasp()): When catching an error from dumping a MM'd
	variable, do not discard output generated prior to the error. This
	way, at least the header line (function name, file, line no.) is
	printed.
	* change_set.cc: write_insane_change_set: new function to write a
	change set without sanity checking it, now used by dump().

2005-08-17  Patrick Mauritz  <oxygene@studentenbude.ath.cx>

	* unix/process.cc: missing include
	* m4/fexceptions.m4, configure.ac, Makefile.am: remove hardcoded
	-fexceptions in CFLAGS and add it only if compiler doesn't freak
	out.

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

	* work.cc (build_additions): Tweak wording.

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

	* netsync.cc: Add IANA port assignment to the todo list.

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

	* unix/process.cc (make_executable): Open the fd read-only, avoids
	problems with read-only files, and a writeable fd doesn't seem to
	be necessary to change permission bits.

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

	* unix/process.cc (is_executable, make_executable): When reporting
	an error in a syscall, include the actual error message.

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

	* lua.cc (dump_stack): New function.
	(Lua::fail): New method; use above.
	(get, get_fn, get_tab, get_str, get_num, get_bool, extract_str)
	(extract_int, extract_double, extract_bool, begin, next, pop): Use
	it, to give better logging.
	
2005-08-17  Nathaniel Smith  <njs@pobox.com>

	* Makefile.am (lib3rdparty_a_CFLAGS): Build 3rd party C code with
	-fexceptions.

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

	* win32/process.cc: Slightly smarter argv->cmdline munging.
	* std_hooks.lua: Merge hooks for TortoiseMerge (part of
	TortoiseSVN).

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

	* lua.cc (lua_hooks): Re-enable panic thrower, we no longer
	support Lua 4.

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

	* netsync.cc: Add more netsync todos.

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

	* tests/t_explicit_merge_with_anc.at: New test.
	* testsuite.at: Add it.

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

	* tests/t_log_brief.at: New test.
	* testsuite.at: Add it.

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

	* commands.cc (fcommit): Remove.  This command has never been
	documented, tested, or maintained; it also doesn't avoid the use
	of temporary files (which was supposed to be its purpose).  Has it
	ever actually been used...?
	
2005-08-15  Nathaniel Smith  <njs@pobox.com>

	* lua.cc (hook_init_attributes): Do more logging; use begin()
	instead of starting iteration by hand.

2005-08-15  Patrick Mauritz  <oxygene@studentenbude.ath.cx>

	* testsuite.at, tests/*.at: make testsuite less demanding:
	- QGREP() and QEGREP() provide a portable [e]grep -q
	- export FOO=bar -> FOO=bar; export FOO
	- tail -n $x -> TAIL($x) with appropriate macro

2005-08-15  Patrick Mauritz  <oxygene@studentenbude.ath.cx>

	* m4/typeof.m4: new test, looks if compiler knows the typeof()
	extension
	* configure.ac: use it
	* sanity.hh: use the test, and boost's abstraction over
	__PRETTY_FUNCTION__ and similar pseudo-macros

2005-08-15  Patrick Mauritz  <oxygene@studentenbude.ath.cx>

	* configure.ac (BOOST_FIX_VERSION): only apply that fix on gcc.

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

	* configure.ac (BOOST_VERSION_CHECK, BOOST_FIX_VERSION): Fix for
	cross-compilation.  (Thanks to John Bowler <jbowler@acm.org>.)

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

	* testsuite.at: Don't use agraph.
	* Makefile.am: Minor cleanups.

2005-08-13  Patrick Mauritz  <oxygene@studentenbude.ath.cx>

	* botan/gzip.cpp, botan/mutex.cpp: c functions via c* headers need
	std:: prefix

2005-08-13  Patrick Mauritz  <oxygene@studentenbude.ath.cx>

	* schema_migration.cc (lowercase): it's only used for processing sha1
	values whos size we know: make array size constant
	* transforms.cc (encode_hexenc, decode_hexenc): they have to work with
	all kinds of string sizes, so at least make them nicer by using
	boost::scoped_array

2005-08-13  Patrick Mauritz  <oxygene@studentenbude.ath.cx>

	* revision.cc: make copy constructor of revision_set behave like
	normal constructor in case it's copying a freshly created object

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

	* testsuite.at: Use SEGV to kill netsync servers, in hopes it will
	give better coverage information.

2005-08-13  Julio M. Merino Vidal  <jmmv@NetBSD.org>

	* configure.ac: Remove an obsolete check to see if SQLite was
	bundled or not, because the bundled version has been used
	exclusively for quite some time.

2005-08-13  Julio M. Merino Vidal  <jmmv@NetBSD.org>

	* database_check.cc: Remove trailing newline from error messages
	when embedding them inside other strings, so that the trailing
	closing parenthesis is printed correctly.

2005-08-13  Julio M. Merino Vidal  <jmmv@NetBSD.org>

	* configure.ac: Add '-mt' as another possible suffix to detect the
	Boost libraries.  It's very common when these libraries are built
	with the "native naming layout".

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

	* monotone.1, monotone.texi: Don't mention agraph.
	* tests/t_netsync_repeated.at: Don't use agraph.
	* tests/t_netsync_unrelated.at: Likewise.

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

	* commands.cc (agraph): Remove.

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

	* tests/t_commit_log_writeback.at: New test.
	* testsuite.at: Add it.

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

	* commands.cc (commit): When user uses --message or
	--message-file, don't require non-empty logs, and don't write out
	message to MT/log.  (This makes re-running a 'commit -m foo'
	command line until it works possible; otherwise the second try
	will get a 'MT/log non-empty and -m supplied' error.)

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

	* netsync.cc: Add a list of ideas for improvement that will break
	network compatibility and thus perhaps should go together.

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

	* tests/t_commit_message_file.at: Un-double file contents.

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

	* lua.cc (ok, extract_str, extract_int, extract_double)
	(extract_bool): Add more logging.

2005-08-11  Patrick Mauritz <oxygene@studentenbude.ath.cx>

	* INSTALL: remove section about crypto++ on solaris
	* config.rpath, mkinstalldirs, po/Makefile.in.in,
	  various files in m4, ABOUT-NLS:
	  remove as they're autogenerated
	* hash_map.hh, m4/gnucxxhashmap.m4, m4/stlporthashmap.m4:
	  new files, abstraction over hash_map differences in STL impls.
	* m4/externtemplate.m4: new file, check if compiler is happy
	  with "extern template"
	* configure.ac: hook up the new autoconf tests
	* Makefile.am: remove -Wall
	* botan/gzip.cpp, botan/mutex.cpp: add includes
	* constants.*: move values to .hh if used for array sizes
	* interner.hh, xdelta.cc: use hash_map.hh
	* merkle_tree.cc, unix/inodeprint.cc: make array size truly
	  constant 
	* sanity.hh: work-around for missing typeof() and
	  __PRETTY_FUNCTIONS on non-gcc compilers
	* schema_migration.cc, transforms.cc: moved dynamically
	  initialized array to heap
	* transforms.hh, vocab.hh: use externtemplate autoconf test

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

	* monotone.spec: include zlib-devel and texinfo as build
	requirements, zlib as a runtime requirement.

2005-08-09  Eric Anderson  <anderse-monotone@cello.hpl.hp.com>

	* tests/perf-test.sh: A repeatable performance test harness
	* tests/parse-accounting.pl: A script that parses the accounting
	output into a nice tabular format

2005-08-09  Eric Anderson  <anderse-monotone@cello.hpl.hp.com>
 
	* Changes to significantly improve network pull performance
	* string_queue.hh: created to store pending data and allow for
	efficient removal from the front.  The string queue automatically
	reduces its buffer size if it is very empty.  	
	* hmac.{cc,hh}: Add in a version of chained_hmac::process that can
	operate on a string_queue for use during read.
	* netcmd.{cc,hh}: update netcmd::read to use a string_queue rather
	than a string, update all the regression tests also.  This required
	the somewhat ugly creation of a read_string function because the
	netcmd read and write functions are no longer using the same type.
	* netio.hh: introduce functions for operating on a string_queue. They
	are identical to the equivalent string functions except for the type
	of the argument.
	* netsync.cc: Use a string_queue rather than a string for storing the 
	input and output buffers.

	* string_queue.cc: unit tests (Matt Johnston)

2005-08-09  Richard Li  <richardl@redhat.com>

	* std_hooks.lua (merge2, merge3): explain a little better why
	monotone can't find a merge command.

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

	* commands.cc (update): Fix helpful error message to suggest
	_current_ commandline syntax.

2005-08-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>

	* contrib/monotone.el: a couple of fixes spotted by the compiler
	* Changelog, contrib/colorize: utf8ize

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

	* NEWS: Put a time in.
	* po/monotone.pot: Regenerate.
	
2005-08-08  Nathaniel Smith  <njs@pobox.com>

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

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

	* UPGRADE: Fix title.
	* NEWS: Add --lca.

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

	* commands.cc (merge, propagate): Take --lca.
	* options.hh: Add OPT_LCA.
	* monotone.cc (coptions, cpp_main): Support it it.
	* app_state.{hh,cc} (app_state::usa_lca): New variable.
	* revision.cc (find_common_ancestor_for_merge): Use LCA if user
	passed --lca.
	* tests/t_merge_lca.at: New test.
	* testsuite.at: Add it.
	* monotone.texi (Tree): Document --lca.
	
2005-08-08  Nathaniel Smith  <njs@pobox.com>

	* NEWS: First-pass for 0.22 release.
	* UPGRADE: Likewise.

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

	* Makefile.am (BOTAN_SOURCES): Add botan headers.
	* po/monotone.pot: Regenerate.

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

	* netsync.cc (rebuild_merkle_trees, insert_with_parents): Make a
	ticker for added revisions, since traversing the tree to pull in
	ancestors causes a noticeable pause before the cert/key tickers
	start up.
	(insert_with_parents): Also simplify logic.

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

	* commands.cc (pull): Clarify what the "doing anonymous pull"
	message means and what you might do about it.

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

	* monotone.texi (Network Service, Hooks): Document
	get_netsync_read_permitted as getting a nil value on anonymous
	connects.
	* lua.{cc.hh} (hook_get_netsync_anonymous_read_permitted):
	Remove. Replace with 1-argument version of
	hook_get_netsync_write_permitted.
	* netsync.cc (process_anonymous_cmd): Update.
	* tests/t_netsync_permissions.at: Likewise.

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

	* botan/{data_snk,es_file}.cpp: Open fstreams in binary mode.
	These changes, plus the same change for data_src.cpp and
	es_ftw.cpp, have been sent upstream.

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

	* commands.cc (commit): Write out the log message to MT/log
	_after_ making sure it's non-empty.
	* tests/t_commit_cancelled.at: New test.
	* testsuite.at: Add it.
	
2005-08-04  Nathaniel Smith  <njs@pobox.com>

	* netsync.cc (rebuild_merkle_trees): Typo.

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

	* netsync.cc (rebuild_merkle_trees): Tweak message ("rebuilding
	merkle trees" does not mean anything to J. Random User...)

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

	* manifest.cc (build_restricted_manifest_map): In 'missing files'
	error message, explain how to recover.

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

	* testsuite.at (NETSYNC_ADDRESS): New macro.
	(NETSYNC_SERVE_N_START, NETSYNC_SERVE_START)
	(NETSYNC_CLIENT_N_RUN): Use it.
	
	* tests/t_netsync_checks_server_key.at: Make sure can unset the
	known-servers entry.

2005-08-03  Matthew A. Nicholson  <matt@matt-land.com>

	* std_hooks.lua (get_preferred_merge2_command)
	(get_preferred_merge3_command): Provide more information on how to
	use vim as merge tool.

2005-08-03  graydon hoare  <graydon@pobox.com>

	* unix/process.cc (make_executable): Fix race, set user/group/other.

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

	* botan/data_src.cpp (DataSource_Stream::DataSourceStream): Open
	fstream as binary file.

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

	* win32/inodeprint.cc: Botan changes.  Also, hash individual
	FileTime structure members rather than the entire structure.
	* keys.cc: Add explicit 'using' for Botan::byte.
	* botan/es_win32.{cpp,h}: Add missing files.
	* Makefile.am: Enable entropy collection via CryptoAPI and Win32
	API.

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

	* botan/gzip.cpp: forgot to commit some semicolons

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

	* botan/gzip.{cpp,h}: rearranged the code to be clearer.

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

	* netsync.cc (get_branches): Remove warning when there are no
	branches.

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

	* globish.cc (matcher::operator()): Log what's happening.
	(checked_globish_to_regex_test): Fix previously added test.

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

	* globish.cc (checked_globish_to_regex_test): Add another test for
	quoted characters.

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

	* update.cc (calculate_update_set): Only include current rev in
	update set if it is an acceptable candidate.
	* commands.cc (update): Clarify error message in this case.
	* tests/t_update_branch.at: Update accordingly.

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

	* monotone.spec: Require boost >= 1.32.

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

	* tests/t_merge_add_del.at: 'drop' does not take a branch (test
	now fails in expected place).
	* tests/t_merge_add_rename_add.at: New test.
	* testsuite.at: Add it.

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

	* tests/t_update_branch.at: New test.
	* testsuite.at: Add it.
	(REVERT_TO): Do not preserve MT/options file (can setup invalid
	branch).
	* app_state.cc (make_branch_sticky): Call write_options when
	already have a working copy.
	* commands.cc (update): Call make_branch_sticky at appropriate
	time.

2005-07-27  Nathaniel Smith  <njs@pobox.com>
	
	* commands.cc: ALIAS(mv, rename).  ALIAS(rm, drop).

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

	* change_set.cc (dump): Add state_renumbering dumper.
	(merge_disjoint_analyses): Add MM().

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

	* change_set.cc (dump): Add path_analysis dumper.
	(merge_change_sets): Add more MM()s.

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

	* change_set.cc (dump): Add path_state dumper.
	(sanity_check_path_state): Add MM().

2005-07-26  Richard Levitte  <richard@levitte.org>

	* revision.cc (check_sane_history): Convert tabs to the
	appropriate amount of spaces.

2005-07-26  Richard Levitte  <richard@levitte.org>

	* sanity.hh, revision.cc (check_sane_history),
	change_set.cc (concatenate_change_sets, merge_change_sets,
	invert_change_set): Because boost currently uses the symbol M, we
	have a clash.  Therefore, let's rename M to MM, for now.

2005-07-26  Richard Levitte  <richard@levitte.org>

	* commands.cc (CMD(privkey)): Change so both the public and
	private key are printed.

	* tests/t_dropkey_2.at, tests/t_lua_privkey.at: Adapt to the new
	private key format.

2005-07-24  Nathaniel Smith  <njs@pobox.com>

	* sanity.cc (MusingI, ~MusingI): No-op when already in the middle
	of dumping.

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

	* Makefile.am, configure.ac: Remove BUNDLED_{LUA,SQLITE} tests and
	clarify the comment for popt.  Using external versions of these
	tools didn't work anyway, so there's no point giving the
	impression that it might.

2005-07-24  Nathaniel Smith  <njs@pobox.com>

	* sanity.cc (gasp): Handle the possibility of multiple valid calls
	to gasp(), 'db check' can trigger multiple invariants without
	dying.

2005-07-24  Nathaniel Smith  <njs@pobox.com>

	* sanity.{hh,cc} (sanity::already_dumping, gasp): Don't let gasp
	be called recursively, in case a dump triggers an invariant.

2005-07-24  Nathaniel Smith  <njs@pobox.com>

	* sanity.cc (gasp): Make more robust against new errors triggered
	during error unwind.  (write_change_set in particular likes to
	blow up when handling in invalid change_set.)

2005-07-24  Nathaniel Smith  <njs@pobox.com>

	* change_set.cc (merge_change_sets, check_sane)
	(concatenate_change_sets, invert_change_set): Add M()s.

2005-07-24  Nathaniel Smith  <njs@pobox.com>

	* sanity.{hh,cc} (dump): Remove templated version, add std::string
	version.
	* vocab.{hh,cc} (dump): Add ATOMIC/DECORATE/ENCODING dumpers.
	* change_set.{hh,cc} (dump): Add change_set dumper.
	* manifest.{hh,cc} (dump): Add manifest_map dumper.
	* revision.cc (check_sane_history): Add some M()s.

2005-07-24  Nathaniel Smith  <njs@pobox.com>

	* sanity.hh (class Musing, gasp, dump): Actually, take a
	std::string instead of a std::ostream; fits our idioms better.

2005-07-24  Nathaniel Smith  <njs@pobox.com>

	* sanity.cc (log, progress, warning): Append '\n' to strings when
	necessary.
	(gasp): Save string properly.
	(M): Apply black magic.  Now works correctly.
	(dump): Write newline.

2005-07-24  Nathaniel Smith  <njs@pobox.com>

	* sanity.hh (dump): Add a default 'dump' implementation for all
	<<able objects.

2005-07-24  Nathaniel Smith  <njs@pobox.com>

	* constants.{cc,hh} (default_terminal_width): New constant.
	* ui.cc (guess_terminal_width): Use it.

2005-07-24  Nathaniel Smith  <njs@pobox.com>

	* diff_patch.cc (unidiff_append_test): Fix typo.

2005-07-24  Nathaniel Smith  <njs@pobox.com>

	* tests/t_annotate_no_rev.at: New test.
	* testsuite.at: Add it.
	
2005-07-24  Nathaniel Smith  <njs@pobox.com>

	* sanity.{hh,cc} (sanity, dump_buffer, invariant_failure)
	(index_failure,	MusingI, Musing, M): Implement macro M(), for
	'musing', which marks data that monotone was musing over when an
	invariant tripped.
	* Makefile.am (MOST_SOURCES): Fix spacing.

2005-07-23  Nathaniel Smith  <njs@pobox.com>

	* ui.{hh,cc} (guess_terminal_width): New function.
	(tick_write_dot::chars_on_line): Make unsigned to quiet gcc warning.
	(tick_write_dot::write_ticks): Use guess_terminal_width.
	* commands.cc (dump_diffs): Take full responsibility for printing
	=== lines, and use guess_terminal_width.
	* diff_patch.cc (make_diff): Don't print === lines.
	(unidiff_append_test): Adjust accordingly.

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

	* commands.cc (CMD(annotate)): Check for a valid revision before
	trying to fetch it from the database.
	* lua/lundump.[ch], lua/ldump.c: Rename VERSION and VERSION0 to
	LUA_DUMP_VERSION and LUA_DUMP_VERSION0 to avoid clashes with
	VERSION from config.h.

2005-07-22  Nathaniel Smith  <njs@pobox.com>

	* monotone.texi (Committing Work): Remove discussion of manifests.

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

	* netsync.cc (rebuild_merkle_trees): Make 'including branch'
	message L() instead of P(); it's nice information, but too much to
	be useful with large databases.

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

	* database_check.cc: check that revisions and manifests
	are normalised to the same for that they would be written as.
	* tests/t_database_check_normalized.at: a test for it.
	* testsuite.at: add it.

2005-07-21  Richard Levitte  <richard@levitte.org>

	* contrib/monotone-import.pl: Now uses the given tag.

2005-07-20  Marcel van der Boom  <marcel@hsdev.com>

	* database.{cc,hh} (get_branches): New method.
	* commands.cc (ls_branches): Use it.
	* netsync.cc (get_branches): Likewise.
	* tests/t_ls_branches.at: New test.
	* testsuite.at: Add it.
	
2005-07-20  Nathaniel Smith  <njs@pobox.com>

	* commands.cc (db): Rename kill_branch_locally to
	kill_branch_certs_locally.
	* tests/t_db_kill_branch_locally.at: Rename to...
	* tests/t_db_kill_branch_certs_locally.at: ...this.  Update.
	* testsuite.at: Update.
	* monotone.texi (Database): Update.

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

	* schema_migration.cc (migrator::migrate): Add a check for schemas
	that are just... wrong.
	* tests/t_migrate_broken_schema.at: New test.

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

	* netcmd.cc (read): Make the bad HMAC error message clearer.

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

	* tests/t_diff_external.at: Canonicalise output for Win32.

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

	* keys.cc (get_passphrase): Do still error out if they keep typing
	empty passphrases.

2005-07-18  Richard Levitte  <richard@levitte.org>

	* database.cc: Move the inclusion of stdarg.h...
	* database.hh: ... here.

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

	* keys.cc (get_passphrase): don't bomb out if they type an empty passphrase.

2005-07-18  Patrick Mauritz  <oxygene@studentenbude.ath.cx>

	* work.cc, manifest.cc: Remove 'using namespace boost'.

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

	* netsync.cc (received_items): New instance variable.
	(session::session): Initialize it.
	(note_item_arrived): Maintain it.
	(item_request_outstanding): Rename it to...
	(item_already_received): ...this, and have it check both
	outstanding and fulfilled requests.
	(queue_send_data_cmd, queue_send_delta_cmd): Call it via new
	name.
	
	Hopefully this will eliminate cases where "revs in" is larger than
	"revs written".
	
2005-07-17  Nathaniel Smith  <njs@pobox.com>

	* constants.cc (legal_key_name_bytes): Allow + and _ to appear in
	key names.

2005-07-17  Nathaniel Smith  <njs@pobox.com>

	* ui.{cc,hh} (tick_write_dot::write_ticks): Start a new line when
	too many dots have been written.
	* netsync.cc (process_refine_cmd): Add comment noting a possible
	optimization regarding subtree refinement.

2005-07-17  Nathaniel Smith  <njs@pobox.com>

	* configure.ac, win32/monotone.iss, monotone.spec:
	* debian/changelog: Bump version numbers to 0.21.
	* NEWS: Commit to a timestamp.

2005-07-17  Nathaniel Smith  <njs@pobox.com>

	* NEWS: Add diff changes, more tweaking.
	* UPGRADE: Update for 0.21.
	* AUTHORS: Add Vladimir Vukicevic.

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

	* netsync.cc: merge fixup
	* botan/pipe_rw.cpp (read_all_as_string): make it smarter and faster

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

	* botan/sha160.{cpp,h}: new faster sha160 implementation from Jack Lloyd
	and Kaushik Veeraraghavan.

2005-07-17  Nathaniel Smith  <njs@pobox.com>

	* tests/t_diff_external.at: New test.
	* testsuite.at: Add it.

2005-07-17  Nathaniel Smith  <njs@pobox.com>

	* monotone.texi (Restrictions): diff -r -r does accept
	restrictions now.
	(CVS Phrasebook): Clarify diff section.
	(Informative): Document diff [--unified|--context|--external],
	--diff-args.

2005-07-17  Nathaniel Smith  <njs@pobox.com>

	* app_state.{cc,hh}: Record whether --diff-args was passed, not
	just a string value.
	* lua.{cc,hh} (hook_external_diff): Take a diff_args_provided
	variable.
	* commands.cc (do_external_diff): Pass it.

2005-07-17  Nathaniel Smith  <njs@pobox.com>

	* std_hooks.lua (external_diff_default_args): New variable.
	(external_diff): Use it as a default, and use user-provided
	diff_args otherwise.
	* monotone.texi (Hooks): Document this.

2005-07-16  Vladimir Vukicevic  <vladimirv@gmail.com>

	* lua.{cc,hh} (hook_external_diff): New hook.
	* std_hooks.lua (external_diff): Add default definition.
	* monotone.texi (Hooks): Document external_diff hook.
	* app_state.{cc,hh}, options.hh, monotone.cc: Add --context,
	--external, --unified, --diff-args options.
	* commands.cc (do_external_diff): New function.
	(dump_diffs): Put a == line between each file's diffs.
	Pass file_ids of pre- and post-states to make_diff.
	(diff): Take new options.
	(cdiff): Remove.
	* diff_patch.{cc,hh} (make_diff): Print file ids in diff file
	headers.
	(unidiff_append_test): Update.
	(enum diff_type): Move to...
	* vocab.hh: ...here.
	* tests/t_restrictions.at, tests/t_crlf.at: Update.

2005-07-16  Nathaniel Smith  <njs@pobox.com>

	* manifest.cc (build_restricted_manifest_map): Remove doubled
	comment.

2005-07-16  Nathaniel Smith  <njs@pobox.com>

	* NEWS: Mention need for 'db migrate'.

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

	* lua/*: Import Lua 5.0.2 from upstream.
	* lua/*: Fix up CVS $Id$ tags, which appear to have been trashed
	since monotone existed in CVS.

2005-07-16  Nathaniel Smith  <njs@pobox.com>

	* NEWS: Update for 0.21.

2005-07-16  Nathaniel Smith  <njs@pobox.com>

	* database.cc (assert_sqlite3_ok): Remove dead function.
	
2005-07-16  Nathaniel Smith  <njs@pobox.com>

	* app_state.cc (require_working_copy): Oops, make it compile.

2005-07-16  Nathaniel Smith  <njs@pobox.com>

	* app_state.{cc,hh} (require_working_copy): Take an optional
	argument to give more details about why a working copy was
	required.
	* commands.cc (log): Give said details.

2005-07-16  Nathaniel Smith  <njs@pobox.com>

	* monotone.texi (CVS Phrasebook): Include 'log'.

2005-07-16  Nathaniel Smith  <njs@pobox.com>

	* monotone.texi (Selectors): Document use of globs.
	* tests/t_selector_globbing.at: New test.
	* testsuite.at: Add it.
	
2005-07-16  Jordan Breeding  <jordan.breeding@mac.com>

	* database.cc (selector_to_certname): Make 't:' selector match
	exactly by default as well.

2005-06-25  Brian Downing <bdowning@lavos.net>

	* database.cc (selector_to_certname, complete): Makes 'b:'
	selector be interpreted as a glob instead of as a partial string
	match.
	
2005-07-16  Nathaniel Smith  <njs@pobox.com>

	* netsync.cc: Revert accidentally committed changes.

2005-07-16  Nathaniel Smith  <njs@pobox.com>

	* ChangeLog: Fix formatting.

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

	* netsync.cc (rebuild_merkle_trees): bad_branch_certs is a set of cert
	hashes, not of revision idents.

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

	* database.cc (get_revision_cert_index): "reserve" and "resize"
	are different.

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

	* netsync.cc (process_delta_cmd): Remove meaningless comment.

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

	* database.hh: Pre-declare sqlite3_stmt, instead of including
	sqlite3.h.

2005-07-14  Derek Scherger  <derek@echologic.com>

	* commands.cc (lca,lcad,try_one_merge): call describe_revision for
	logging common ancestors
	(propagate): log final merged line after propagate completes
	to indicate that it actually worked and to be consistent with merge

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

	* ChangeLog: merge fixup

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

	* database.cc (debug): delete stale comment
	(delete_branch_named):
	(delete_tag_named): 
	(clear): replace vprintf stuff with query parameters

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

	* contrib/ciabot_monotone.py (main): Optimistically run 'db
	migrate' before using database.

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

	* schema_migration.cc (migrate_monotone_schema)
	(migrator::migrate): Move the "nothing happened" check, and don't
	vacuum unless a migration occurred.

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

	* tests/t_restricted_diff_unchanged.at: New test.
	* testsuite.at: Add it.

2005-07-13  graydon hoare  <graydon@pobox.com>

	* rcs_import.cc (cvs_branch::cvs_branch): Initialize bools to false.

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

	* monotone.texi (Database): Document kill_tag_locally.

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

	* tests/t_kill_tag_locally.at, tests/t_ambiguous_tags.at: New
	tests.
	* testsuite.at: Add them.

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

	* AUTHORS: Add Jordan.
	* commands.cc (ls_tags): Do not uniquify tags.
	* constants.{cc,hh} (cvs_window): Change to time_t, tighten to 5 minutes.
	* rcs_import.cc (window): Remove.
	(note_type): Remove dead code.
	(is_sbr): Add test for synthetic branch roots.
	(cvs_commit::is_synthetic_branch_root): New test.
	(process_branch): Skip synthetic branch roots, push new branch
	before picking branch to mark, rather than after.
	(cvs_history::index_branchpoint_symbols): Handle vendor branches.
	(cvs_history::push_branch): Do not duplicate root on private branches.
	(import_branch): Fix up cluster inference.
	(cluster_consumer::consume_cluster): New invariant.
	* tests/t_cvsimport_drepper2.at: Modify to reflect fixes.

2005-07-11  Jordan Breeding  <jordan.breeding@mac.com>

	* commands.cc (db): New subcommand "kill_tag_locally"
	* database.{cc,hh} (delete_tag_named): New function.

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

	* schema_migration.cc (migrator::migrate): When there is nothing
	to be done, do nothing.

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

	* netsync.cc (rebuild_merkle_trees): Reduce memory usage a bit,
	and don't insert branch certs that the other side will just end up
	throwing away (reduces network traffic).

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

	* testsuite.at (NETSYNC_SERVE_START, NETSYNC_SERVE_N_START):
	Really, really really fix up quoting.  Really.
	I hope.

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

	* contrib/ciabot_monotone.py (config.project_for_branch): Clarify
	comment text for non-Python programmers.

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

	* testsuite.at (NETSYNC_SERVE_START, NETSYNC_SERVE_N_START): Fixup
	quoting.

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

	* crypto_tests.cc: New SHA1 correctness tests from Kaushik Veeraraghavan.
	* unit_tests.cc (init_unit_test_suite): 
	* unit_tests.hh (add_crypto_tests): 
	* Makefile.am (unit_tests_SOURCES): Call them.
	* AUTHORS: Add Kaushik Veeraraghavan.

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

	* tests/t_netsync_exclude_default.at: New test.
	* testsuite.at: Add it.
	(NETSYNC_SERVE_N_START, NETSYNC_SERVE_START): Use '*' as pattern
	when none is passed.

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

	* monotone.texi (Network): Tweak documentation for netsync
	commands.

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

	* app_state.{hh,cc} (exclude_patterns, add_exclude): 
	* options.hh (OPT_EXCLUDE): 
	* monotone.cc (coptions, cpp_main): New option --exclude.
	* commands.cc (pull, push, sync, serve): Accept it.
	(process_netsync_args): Implement it.
	* tests/t_netsync_exclude.at: New test.
	* testsuite.at: Add it.

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

	* options.hh, app_state.{hh,cc}, monotone.cc: New command specific
	option, "--exclude=x", puts arg into a vector app.excludes .
	Used by the netsync commands.
	* commands.cc (netsync commands): accept said option
		(process_netsync_args): Handle excludes.
	* monotone.texi: document it

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

	* interner.hh: make slightly faster

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

	* hmac.cc: <string> not <string.h>

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

	* keys.cc (encrypt_rsa): fix typo
	* hmac.{cc,hh}: store key as SymmetricKey, pass correctly to
	MAC_Filter

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

	* ChangeLog, configure.ac: Re-remove mysteriously revived
	jibberish.

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

	* tests/t_netsync_read_permissions.at: New test.
	* testsuite.at: Run it.
	* netsync.cc (set_session_key, dispatch_payload)
	(respond_to_auth_cmd): Refactor to key HMAC earlier, so error
	packets will get the right HMAC.

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

	* Makefile.am (monotone_CPPFLAGS, unit_tests_CPPFLAGS): Re-remove
	previously removed stuff.

	* ChangeLog, configure.ac: Revert accidentally-recommitted changes.

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

	* monotone.texi (Network), monotone.1: Mention the default port
	number.

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

	* configure.ac: Check for boost >= 1.32.

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

	* schema.sql (revision_ancestry__child, revision_certs__id,
	revision_certs__name_value): New indexes.
	* database.cc (dump, dump_table_cb, dump_index_cb): Include
	indexes in dumps.
	(database::database): 
	* schema_migration.cc (migrate_monotone_schema) 
	(migrate_client_to_add_indexes): 
	* tests/t_migrate_schema.at: Corresponding migration gunk.

2005-07-09  Jordan Breeding  <jordan.breeding@mac.com>

	* Makefile.am (monotone_CPPFLAGS, unit_tests_CPPFLAGS): 
	* configure.ac (BOOST_FIX_VERSION): Restrict boost compile kluges
	to boost 1.32.

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

	* schema_migration.cc (calculate_schema_id): Include indexes in
	the schema id.

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

	* ChangeLog, configure.ac: Revert accidentally-committed changes.

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

	* monotone.texi (Generating Keys): Make it a little clearer that
	we aren't necessarily recommending people store their passphrase
	in plaintext.

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

	* propagate mainline to botan branch

	* constants.{cc,hh}: add sha1_digest_length as botan
	doesn't provide a convenient definition.
	* hmac.{cc,hh}: convert to use botan
	* keys.cc (encrypt_rsa, decrypt_rsa): use botan
	* transforms.{cc,hh}: use botan

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

	* tests/t_normalized_filenames.at: expect exit code of 1 not 3 for
	"cat manifest" with a directory in MT/work
	* file_io.cc, netcmd.cc, transforms.cc, vocab.hh: revert changes which
	used swap() for strings and atomic types since strings are
	copy-on-write.

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

	* file_io.cc (ident_existing_file): new function to calculate
	the ident of a file failing gracefully if it doesn't exist
	or is a directory.
	* file_io.hh (classify_manifest_paths,
	build_restricted_manifest_map): use ident_existing_file
	* ui.cc: cast to avoid compiler warnings

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

	* contrib/ciabot_monotone.py (Monotone.log): Fix to work with
	0.20.

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

	* Makefile.am (monotone_CPPFLAGS, unit_tests_CPPFLAGS): Add
	-DBOOST_REGEX_V4_CHAR_REGEX_TRAITS_HPP to work around g++
	4.0/boost 1.32.0 lossage.

2005-07-07  Vaclav Haisman  <V.Haisman@sh.cvut.cz>

	* Makefile.am: Compile fix for FreeBSD.

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

	* netsync.cc (process_hello_cmd, process_anonymous_cmd) 
	(process_auth_cmd): Change permission checking -- always build
	merkle tree (even when a pure sink), send permission denied and
	abort whenever client tries to read/write a branch they don't have
	access to.

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

	* ChangeLog: fixup formatting.

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

	* database.cc (assert_sqlite3_ok): database corruption and similar
	problems are errors, not invariants.

2005-07-06  Nathaniel Smith  <njs@pobox.com>

	* commands.cc (push, pull, sync): Fix --help description.	
	
2005-07-06  Nathaniel Smith  <njs@pobox.com>

	* options.hh (OPT_SET_DEFAULT): 
	* app_state.{hh,cc} (app_state::set_default):
	* monotone.cc (coptions, cpp_main): New option.
	* commands.cc (pull, push, sync): Accept it.
	(process_netsync_args): Use it.
	* tests/t_set_default.at, testsuite.at: New test.

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

	* win32/monotone.iss: Bump version number.

2005-07-05  Nathaniel Smith  <njs@pobox.com>

	* debian/rules (config.status): Use bundled sqlite.
	* debian/control (Build-Depends): Remove popt and sqlite.

2005-07-05  Nathaniel Smith  <njs@pobox.com>

	* NEWS: Add timestamp.  Barring unforeseen issues, this is 0.20.

2005-07-05  Nathaniel Smith  <njs@pobox.com>

	* Makefile.am (EXTRA_DIST): Include some missed contrib/ stuff.

2005-07-05  Nathaniel Smith  <njs@pobox.com>

	* po/monotone.pot: Regenerate for release.

2005-07-05  Nathaniel Smith  <njs@pobox.com>

	* configure.ac, debian/changelog, monotone.spec: Bump version
	number.
	* UPGRADE: Update for 0.20 release.

2005-07-05  Nathaniel Smith  <njs@pobox.com>

	* ChangeLog, NEWS, AUTHORS: Fixup Eric Anderson's email address.

2005-07-05  Nathaniel Smith  <njs@pobox.com>

	* monotone.texi (Database): Note that db kill_rev_locally also
	will trigger "unreferenced manifest" warnings from db check.

2005-07-05  Nathaniel Smith  <njs@pobox.com>

	* NEWS: Oops, 'automate select' was in 0.19 after all.

2005-07-05  Nathaniel Smith  <njs@pobox.com>
	
	* contrib/ciabot_monotone.py: Fix multiple collection support.

2005-07-05  Richard Levitte  <richard@levitte.org>

	* monotone.texi (Hooks): Add space after periods where there's
	a lack of space.

	* NEWS: Correct the blurb about
	get_netsync_{read,anonymous_read,write}_permitted

2005-07-05  Nathaniel Smith  <njs@codesourcery.com>

	* NEWS: Add more explicit note on how to upgrade.

2005-07-05  Nathaniel Smith  <njs@codesourcery.com>

	* NEWS: First cut at 0.20 release notes.

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

	* sqlite/*, Makefile.am: Import SQLite 3.2.2 from upstream.
	* sqlite/main.c: Compile fix.
	* sqlite/{callback.c,prepare.c}: Add new files.

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

	* sqlite/{sqlite3.h,tokenize.c} (sqlite3_complete_last): New
	function to find the last valid SQL statement in a string; based
	on sqlite3_complete.  This change should be offered upstream, but
	probably not before sqlite3_complete_last16 is implemented.
	* database.cc (database::load): Load and execute dump in chunks,
	fixes bug 13570.

2005-07-01  Eric Anderson  <anderse-monotone@cello.hpl.hp.com>

	* file_io.cc: Pre-allocate space for the file read so that the
	string doesn't have to be incrementally expanded during the read.

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

	* tests/t_cvsimport_drepper2.at: Canonicalise monotone output so
	that the test passes on Win32.

2005-06-30  Eric Kidd  <eric.kidd@dartmouth.edu>

	* contrib/monotone-import.pl: Changed $branch to
	$user_branch.  This script may need more work, but at least Perl
	compiles it now.

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

	* automate.cc, basic_io.hh, cert.cc, change_set.cc,
	cryptopp/config.h, cryptopp/integer.cpp, main.cc, merkle_tree.cc,
	merkle_tree.hh, monotone.cc, netcmd.cc, netsync.cc,
	netxx/osutil.h, packet.cc: Namespace and include file cleanup.

2005-06-29  graydon hoare  <graydon@pobox.com>

	* tests/t_cvsimport_drepper2.at: New test.
	* testsuite.at: Call it.

2005-06-23  graydon hoare  <graydon@pobox.com>

	* rcs_import.cc (import_cvs_repo): Put branch imports inside
	transaction blocks, add a couple tickers.

2005-06-22  graydon hoare  <graydon@pobox.com>

	* rcs_file.cc: Track file:line numbers, accept files which violate
	some lies in rcs file format.
	* rcs_import.cc (cvs_tree_walker): 
	Warn rather than crash on parse errors.
	(cvs_history)
	(cvs_commit)
	(cvs_cluster)
	(prepared_revision)
	(import_branch)
	(import_cvs_repo): Support non-branch tags.

2005-06-21  graydon hoare  <graydon@pobox.com>

	* rcs_import.{cc,hh} (import_rcs_file): Rename to test_parse_rcs_file.
	* commands.cc (rcs_import): rename call.

2005-06-19  graydon hoare  <graydon@pobox.com>

	* rcs_import.cc: Rewrite change set inference logic.

2005-06-28  Roland Illig  <roland.illig@gmx.de>

	* app_state.cc: #include <unistd.h>, needed on NetBSD.

2005-06-28  Nathaniel Smith  <njs@codesourcery.com>

	* std_hooks.lua (ignore_file): Ignore vim swap files and emacs
	temp files.

2005-06-27  Nathaniel Smith  <njs@codesourcery.com>

	* INSTALL: Bump required version of Boost to 1.32.

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

	* app_state.cc (app_state::app_state()): Initialise no_merges to
	false so that 'log' will show merges by default (the recently
	added --no-merges option provides a means to disable the merge
	entries).

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

	* tests/t_automate_stdio.at, tests/t_cvsimport_drepper.at,
	tests/t_selector_later_earlier.at: Further canonicalisation of
	monotone output to resolve test failures on Win32.

2005-06-25  Brian Campbell  <brian.p.campbell@dartmouth.edu>

	* commands.cc (CMD(db)): Added db kill_branch_locally command. 
	* database.cc, database.hh (delete_branch_named): New function to
	delete all branch certs with a given branch name.
	* monotone.texi (Database): Added documentation for db
	kill_branch_locally.
	* tests/t_db_kill_branch_locally.at: New test for db
	kill_branch_locally.
	* testsuite.at: Add the test. 
	* AUTHORS: Add myself.
	* ChangeLog: Change my email address on an old contribution to 
	match my pubkey. 

2005-06-24  Nathaniel Smith  <njs@codesourcery.com>

	* tests/t_db_kill_rev_locally.at: Clean up style.

2005-06-24  Nathaniel Smith  <njs@codesourcery.com>

	* unix/process.cc (process_spawn): Format log output correctly.

2005-06-24  Nathaniel Smith  <njs@codesourcery.com>

	* unix/process.cc (existsonpath): Reindent.  Add logging, and use
	'command -v' instead of 'which' (as per Matt Johnston's discovery
	that it is more portable).
	(process_spawn): Handle exec failure more properly.
	* tests/t_existsonpath.at: New test.
	* testsuite.at: Add it.

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

	* monotone.cc: Log correct locale set for LC_MESSAGES.

2005-06-24  Nathaniel Smith  <njs@codesourcery.com>

	* unix/process.cc: Remove tabs.

2005-06-24  Nathaniel Smith  <njs@codesourcery.com>

	* std_hooks.lua (get_preferred_merge2_command)
	(get_preferred_merge3_command): Move meld to the bottom of the
	default merge tool search order.  Also, use xemacs if it appears
	in $EDITOR, otherwise use emacs.
	* revision.cc (check_sane_history): Remove stale comment.

2005-07-05  Nathaniel Smith  <njs@codesourcery.com>

	* globish.cc (combine_and_check_globish): Don't add unnecessary
	{}'s.
	* tests/t_netsync_globs.at, testsuite.at: New test.

2005-07-04  Nathaniel Smith  <njs@codesourcery.com>

	* netcmd.cc (do_netcmd_roundtrip, test_netcmd_mac): Update for new
	chained_hmac object.
	* constants.hh (netsync_key_initializer): Update comment.
	* hmac.hh (hmac_length): Expose length of MACs.
	* hmac.cc: I() that it matches what CryptoPP wants to give.
	* netcmd.cc: I() that it matches the length hard-coded into the
	netsync protocol.
	* vocab.cc (verify(netsync_hmac_value)): Fix error message.
	
2005-07-04  Nathaniel Smith  <njs@codesourcery.com>

	* tests/t_netsync_defaults.at: Update for new var names.  All
	tests now pass.

2005-07-04  Nathaniel Smith  <njs@codesourcery.com>

	* lua.cc (hook_get_netsync_write_permitted): Fix typo.

2005-07-04  Nathaniel Smith  <njs@codesourcery.com>

	* globish.cc (globish_matcher_test): Add check for {foo} (no
	commas).

2005-07-04  Nathaniel Smith  <njs@codesourcery.com>

	* globish.cc (checked_globish_to_regex): Make the special case for
	the empty pattern, actually work.  Unit tests now pass.

2005-07-04  Nathaniel Smith  <njs@codesourcery.com>

	* netcmd.cc (test_netcmd_functions): Update for new anonymous/auth
	packet formats.

2005-07-04  Nathaniel Smith  <njs@codesourcery.com>

	* monotone.texi, monotone.1: Update for new glob stuff.
	* commands.cc (process_netsync_args, push, pull, sync, serve):
	'serve' always requires arguments, rather than falling back on db
	defaults.
	
2005-07-04  Nathaniel Smith  <njs@codesourcery.com>

	* commands.cc (process_netsync_args, push, pull, sync, serve):
	Adapt for patterns instead of regexen; slight refactoring too.

2005-07-03  Nathaniel Smith  <njs@codesourcery.com>

	* netsync.cc: Finally self-consistent.

2005-07-03  Nathaniel Smith  <njs@codesourcery.com>

	* netsync.hh (run_netsync_protocol): Fix prototype.

2005-07-03  Nathaniel Smith  <njs@codesourcery.com>

	* globish.hh: Document the empty pattern as never matching.
	* globish.cc (checked_globish_to_regex): Implement it.
	(globish_matcher_test): Check it.

2005-07-03  Nathaniel Smith  <njs@codesourcery.com>

	* monotone.texi (Network Service, Hooks):
	* testsuite.at: 
	* tests/t_netsync_permissions.at: 
	* tests/t_netsync_single.at: Update to match new
	get_netsync_write_permitted definition.

2005-07-03  Nathaniel Smith  <njs@codesourcery.com>

	* lua.{cc,hh} (hook_get_netsync_write_permitted): Don't take a
	branch argument; write permission is now all or none.  (It really
	was before anyway...)
	* netsync.cc: Update accordingly.

2005-07-03  Nathaniel Smith  <njs@codesourcery.com>

	* netsync.cc: More updating for pattern stuff; getting there...

2005-06-28  Nathaniel Smith  <njs@codesourcery.com>

	* netsync.cc: Update low-level functions to use include_pattern
	and exclude_pattern.

2005-06-28  Nathaniel Smith  <njs@codesourcery.com>

	* netcmd.{cc,hh} (read_anonymous_cmd, write_anonymous_cmd)
	(read_auth_cmd, write_auth_cmd): Take include_pattern and
	exclude_pattern arguments.

2005-06-28  Nathaniel Smith  <njs@codesourcery.com>

	* globish.{cc,hh}: New files.
	* Makefile.am (MOST_SOURCES): Add them.
	* transforms.{cc,hh}: Remove glob-related stuff.
	* unit_tests.{cc,hh}: Call globish unit tests.

2005-06-27  Nathaniel Smith  <njs@codesourcery.com>

	* transforms.cc (glob_to_regex, globs_to_regex, regexes_to_regex):
	Choose "regex" as standard spelling.  Clean up code, add code for
	handling sets, start improving tests (don't currently pass).
	* transforms.hh (glob_to_regex, globs_to_regex, regexes_to_regex):
	Prototype.

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

	* constants.cc: increase db_version_cache_sz to 7 MB
	* netsync.cc: use a deque<string> rather than a single
	string buffer for outbuf.
	* netsync.cc (arm): only queue data when there is
	available space
	* AUTHORS: added Eric Anderson

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

	* transforms.hh: remove extraneous #ifdef
	* hmac.cc, hmac.hh: actually add them

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

	* netcmd.cc (netcmd::read, netcmd::write): change to using a HMACs 
	chained by including the previous HMAC in the input data, rather
	than altering the key each time.
	* netcmd.cc ({read,write}_{data,delta}_cmd): use encode_gzip/decode_gzip
	  rather than raw xform.
	* hmac.{cc,hh}: new chained_hmac abstraction
	* Makefile.in: add them
	* netsync.cc: each session keeps a chained_hmac for read/write
	* transforms.hh: add a string variant for encode_gzip

2005-06-25  Nathaniel Smith  <njs@codesourcery.com>

	* netsync.cc: Tweak comment.

2005-06-25  Nathaniel Smith  <njs@codesourcery.com>

	* AUTHORS: Add Ethan Blanton <elb@elitists.net>.

2005-06-22  Nathaniel Smith  <njs@codesourcery.com>

	* netcmd.hh (netcmd::read, netcmd::write): Don't have defaults for
	key/hmac arguments.
	* netcmd.cc (do_netcmd_roundtrip): New function.
	(test_netcmd_functions): Use it.  Also, make work with hmac
	changes.
	(test_netcmd_mac): New test.
	(add_netcmd_tests): Call it.

2005-06-22  Nathaniel Smith  <njs@codesourcery.com>

	* netcmd.cc (read): Remove unused variable.
	* netsync.cc (call_server, process)
	(arm_sessions_and_calculate_probe, handle_read_available): Give
	better error message on bad_decode exceptions.

2005-06-22  Nathaniel Smith  <njs@codesourcery.com>

	* netcmd.cc, netsync.cc: Revert backwards compatibility code; 0.19
	and 0.20 can't be usefully compatible, and the code as it existed
	would cause real version mismatch error reporting to not work
	right.  (Old client with new server would give a generic "server
	disconnected" error message instead of something useful.)

2005-06-21  Nathaniel Smith  <njs@codesourcery.com>

	* netsync.cc (rebuild_merkle_trees): Fix FIXME comments to match
	reality.
	* tests/t_netsync_diffbranch.at: No longer a bug, remove
	priority.

2005-06-20  Nathaniel Smith  <njs@codesourcery.com>

	* monotone.texi (Hook Reference): Oops, missed a @ref.

2005-06-20  Nathaniel Smith  <njs@codesourcery.com>

	* monotone.texi (Default monotonerc): Rename section to...
	(Default hooks): ...this, to emphasize is still read even when a
	monotonerc exists.

2005-06-19  Richard Levitte  <richard@levitte.org>

	* Makefile.am: There's no reason for monotone.pdf or .dvi to
	depend on monotone.info, since they are built from the .texi
	files.  Also, make the monotone.html and html targets depend
	on version.texi and std_hooks.lua as well.

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

	* INSTALL: fix typo, should be -Iboost_1_31_0 not -Iboost_1_31_2

2005-06-18  Riccardo Ghetta  <birrachiara@tin.it>
	* monotone.texi: include std_hooks.lua as an appendix and remove long
	lua excerpts from hook reference.
	* Makefile.am : make monotone.pdf/eps depend on monotone.info
	
2005-06-24  Matt Johnston  <matt@ucc.asn.au>

	* transforms.{cc,hh}: combine gzip and base64 in one
	pipe for pack()/unpack() to save memory
	* vocab.hh: add swap() to encodings/atomics
	* file_io.cc: use swap() to avoid copying

2005-06-21  Nathaniel Smith  <njs@codesourcery.com>

	* commands.cc (do_diff): Use calculate_arbitrary_change_set,
	instead of reimplementing it.

2005-06-21  Nathaniel Smith  <njs@codesourcery.com>

	* revision.cc (find_least_common_ancestor): Handle left == right
	case.
	* tests/t_diff_currev.at: Un-XFAIL.
	
2005-06-21  Nathaniel Smith  <njs@codesourcery.com>

	* netsync.cc (rebuild_merkle_trees): Fix FIXME comments to match
	reality.
	* tests/t_netsync_diffbranch.at: No longer a bug, remove
	priority.

2005-06-20  Nathaniel Smith  <njs@codesourcery.com>

	* monotone.texi (Hook Reference): Oops, missed a @ref.

2005-06-20  Nathaniel Smith  <njs@codesourcery.com>

	* monotone.texi (Default monotonerc): Rename section to...
	(Default hooks): ...this, to emphasize is still read even when a
	monotonerc exists.

2005-06-19  Richard Levitte  <richard@levitte.org>

	* Makefile.am: There's no reason for monotone.pdf or .dvi to
	depend on monotone.info, since they are built from the .texi
	files.  Also, make the monotone.html and html targets depend
	on version.texi and std_hooks.lua as well.

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

	* INSTALL: fix typo, should be -Iboost_1_31_0 not -Iboost_1_31_2

2005-06-18  Riccardo Ghetta  <birrachiara@tin.it>
	* monotone.texi: include std_hooks.lua as an appendix and remove long
	lua excerpts from hook reference.
	* Makefile.am : make monotone.pdf/eps depend on monotone.info
	
2005-06-17  Matt Johnston  <matt@ucc.asn.au>

	* database.cc (database::execute()): truncate long query log messages
	before copying, saving memory. 
	Patch from Eric Anderson <anderse-monotone@cello.hpl.hp.com>

2005-06-17  Riccardo Ghetta  <birrachiara@tin.it>
	Adds include()/includedir() to lua hooks and extend --rcfile
	* lua.cc: handle --rcfile with directories, implement
	include() and includedir()
	* testsuite.at, t_lua_includedir.at, t_rcfile_dir.at:
	test new functionality
	* monotone.texi: document all functions available to hook
	writers, including the new include() and includedir()

2005-06-16  Nathaniel Smith  <njs@codesourcery.com>

	* diff_patch.cc (merge_extents): Typo caught by anonymous reader.

2005-06-16  Nathaniel Smith  <njs@codesourcery.com>

	* commands.cc (cat): Account for being in a subdir in 'cat file
	REV PATH'.
	* tests/t_cat_file_by_name.at: Test.

2005-06-17  Richard Levitte  <richard@levitte.org>

	* app_state.cc (app_state::app_state()): Avoid a gcc warning by
	having the class members initialised in the same order they are
	defined in the class.

2005-06-16  Nathaniel Smith  <njs@pobox.com>

	* std_hooks.lua (ignore_file): Add Cons/SCons cache files to
	default ignore list.

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

	* ui.cc: increase the divisor as required so that we don't get spurious
	screen updates when we're using the kilobyte/megabyte tickers

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

	* monotone.texi: clarify some netsync parts of the tutorial

2005-06-15  Richard Levitte  <richard@levitte.org>

	* netsync.cc (struct session): Add a pattern regex cache.
	(analyze_ancestry_graph): Use the regex cache instead of the
	pattern string itself.  This is especially important when the
	pattern is used as an old-style collection.
	(process_hello_cmd): Recreate the pattern regex cache with the
	conversion of the pattern to a regex when it's used as an
	old-style collection.
	(process_auth_cmd): When the pattern changes, change the regex
	cache as well.

2005-06-14  Richard Levitte  <richard@levitte.org>

	* std_hooks.lua (get_preferred_merge2_command,
	get_preferred_merge3_command): EDITOR may be undefined.  In that
	case, os.getenv() returns nil, on which string.lower() chokes.
	It's much better to check for that and default to an empty
	string.

2005-06-11  Derek Scherger  <derek@echologic.com>

	* commands.cc (complete_command): log command expansion messages
	with L instead of P to reduce chatter
	(status): add --brief option and corresponding output
	(identify): add trailing space to comment gcc complains about
	* monotone.cc: fix comment typo and add additional details for
	command specific options
	* monotone.texi (Automation): list inventory status code
	combinations and descriptions
	* tests/t_status.at: new test of status command and --brief option
	* testsuite.at: add it

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

	* commands.cc: revert should ignore the ignore hooks, otherwise bad
	things happen (revert a single ignored file, resultant empty ignore list
	reverts the whole working copy).
	* app_state.cc, app_state.hh: give set_restriction a flag to disregard
	file-ignore hooks.
	* tests/t_revert_restrict.at, testsuite.at: a test

2005-06-09  Riccardo Ghetta  <birrachiara@tin.it>

	* std_hooks.lua: make binary_file return nil on unreadable/empty files
	
2005-06-10  Joel Reed  <joelwreed@comcast.com>

	* commands.cc (CMD(cdiff)): Add OPT_DEPTH to command options.
	* t_restrictions.at: Add to testcase.

2005-06-09  Joel Reed  <joelwreed@comcast.com>

	* commands.cc (CMD(diff)): Add OPT_DEPTH back in, as it is used.
	* t_restrictions.at: Add to testcase to increase likelihood of 
	keeping it around :)

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

	* commands.cc (CMD(diff)): Remove OPT_DEPTH, as it was never
	used.

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

	* monotone.texi (Merging): I assume that "apposite" was supposed
	to be "appropriate".

2005-06-09  Riccardo Ghetta  <birrachiara@tin.it>

	* diff_patch.cc/hh: honor the new manual_merge attribute
	* file_io.cc/hh: move here the guess_binary function
	* lua.cc: let guess_binary available to lua
	* std_hooks.lua: handle manual_merge as an add-time attribute and
	initialize by default make it true if the file appears to be binary.
	Make read_contents_of_file able to read "binary" files.
	* tests/t_merge_manual.at: tests new behaviour, superceding the
	old XFAIL t_merge_binary.at test.
	* monotone.texi: document changes, adding a small section on merging.

2005-06-07  Nathaniel Smith  <njs@codesourcery.com>

	* ChangeLog: Fixup.

2005-06-07  Nathaniel Smith  <njs@codesourcery.com>

	* monotone.texi (Storage and workflow): Attempt to thwart some
	common misconceptions.

2005-06-07  Nathaniel Smith  <njs@codesourcery.com>

	* netsync.cc (rebuild_merkle_trees): Add a comment describing how
	this code should work (and why it currently doesn't quite).

2005-06-05  Nathaniel Smith  <njs@codesourcery.com>

	* tests/t_bad_packets.at: Expect certs on a non-existent rev to
	fail.  Run db check instead.
	* commands.cc (complete): Let callers specify they're okay with
	non-existent revisions.
	(CMD(trusted)): So specify.

2005-06-05  Nathaniel Smith  <njs@codesourcery.com>

	* tests/t_tags.at: 'tag' on a non-existent revid should fail.
	* commands.cc (complete): Fail on non-existent revids.

2005-05-29  Nathaniel Smith  <njs@codesourcery.com>

	* tests/t_epoch.at: Typo.
	* tests/t_automate_certs.at, tests/t_selector_later_earlier.at:
	Throw in some calls to CANONICALISE, maybe this will help on
	Win32...

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

	* netsync.cc, netcmd.cc: Style cleanups (mostly whitespace).

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

	* netsync.cc (process_hello_cmd): Warn about collection/regex
	usage when talking to an old server.

2005-06-04  Derek Scherger  <derek@echologic.com>

	* commands.cc (update): update MT/work based on the changes
	between the chosen revision and the new merge revision
	* tests/t_update_with_pending_drop.at: 
	* tests/t_update_with_pending_add.at: 
	* tests/t_update_with_pending_rename.at: un-XFAIL and clean up now
	that things work

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

	* netcmd.{cc,hh}, netsync.cc: Move {read,write}_*_cmd_payload
	to netcmd::{read,write}_*_cmd .
	* netcmd.cc, netsync.cc: Compatibility infrastructure.
	* netsync.cc: Interoperate with v4 servers.

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

	* automate.cc (print_some_output): Fix compiler warning.

2005-06-04  Derek Scherger  <derek@echologic.com>

	* app_state.cc (app_state): initialize diffs to false; it seemed
	to be defaulting to true for me

2005-06-04  Derek Scherger  <derek@echologic.com>

	* tests/t_update_with_pending_drop.at: 
	* tests/t_update_with_pending_add.at: 
	* tests/t_update_with_pending_rename.at: 
	* tests/t_restricted_commit_with_inodeprints.at: new bug reports
	* testsuite.at: call them

2005-06-04  graydon hoare  <graydon@pobox.com>

	* rcs_import.cc 
	(note_state_at_branch_beginning): Move time back when
	there are known commits on a branch.

2005-06-03  Joel Reed  <joelwreed@comcast.com>

	* commands.cc, monotone.texi: provide --verbose option for 
	monotone complete revision which adds date and author 
	completion output
	* contrib/monotone.zsh_completion: use verbose output when
	completing revisions

2005-06-02  graydon hoare  <graydon@pobox.com>

	* rcs_import.cc
	(cvs_key::is_synthetic_branch_founding_commit): New field.
	(cvs_key::operator==): Handle synthetic case specially.
	(cvs_key::operator<): Likewise.
	(note_state_at_branch_beginning): Likewise.	
	* tests/t_cvsimport_drepper.at: Converted bug testcase.
	* testsuite.at: Call it.

	* monotone.cc, commands.cc, options.hh 
	(OPT_NO_MERGES, OPT_DIFFS): New options.
	* app_state.cc (app_state::no_merges, app_state::diffs): Likewise.
	* commands.cc (log): Honor no_merges, diffs.
	* contrib/color_logs.{sh,conf}: Helpers for reviewing work in a
	nice colorized, easy-to-read fashion.
	* contrib/colorize: A colorization script found on the net.

	* HACKING, ROADMAP: Expand a bit.
	* commands.cc (changes_summary::print): Change macro to helper fn.
	* contrib/monotone.el (monotone-cmd): Handle nil exit code.

2005-06-02  Joel Reed  <joelwreed@comcast.com>

	* commands.cc, database.cc, database.hh, vocab.hh, vocab_terms.hh:
	add complete key subcommand and provide --brief option of zsh/bash
	completion. See http://lists.gnu.org/archive/html/monotone-devel/2005-05/msg00461.html
	* tests/t_rebuild.at: add tests for complete key subcommand
	* monotone.texi: document new subcommand
	* contrib/monotone.zsh_completion: update for new complete key
	command, improve _monotone_existing_entries using new --depth=0
	option,	add revision completion for cert command, and a	bugfix 
	for cat command

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

	* tests/t_i18n_changelog.at: capitalise UTF-8 CHARSET to keep
	solaris happy.

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

	* netsync.cc (analyze_ancestry_graph): Try to fix segfault.
	Always accept tags.

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

	* netsync.cc (process_auth_cmd, analyze_ancestry_graph): Move
	write-permission checking to where it belongs, *after* we know
	exactly what we're checking permissions about. Drop things we
	don't want.

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

	* tests/t_cvsimport_deleted_invar.at: don't use -C with tar
	* tests/t_i18n_file.at: capitalise CHARSET=UTF-8, seems more standard.
	* tests/t_merge_normalization_edge_case.at: use known-good output
	rather than using diff3 --merge

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

	* tests/t_epoch_server.at: fix typo
	* netsync.cc (session::process_auth_cmd): If no branches are allowed
	for writing, also check for write permissions to branch "" (needed
	for serving empty dbs). For sync, don't refuse connection if there
	are no readable branches (only do this for pull).

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

	* monotone.texi: Update documentation for get_netsync_*_permitted
	hooks to reflect that they now get individual branch names.

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

	* netsync.cc: session::rebuild_merkle_trees now takes a set of
	branches to include as an argument. On the server, calculate
	this set at the same time the get_netsync_*_permitted hooks are
	called; call said hooks on each branch individually.

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

	Remove old collection support in favor of using regexes exclusively.
	* netsync.cc (convert_pattern): Remove function.
	* (14 files): collections are unexist; do not mention (potential
	for confusion)
	* constants.cc: Increase netsync protocol version.
	* monotone.texi: Update documentation.
	* tests/t_epoch_unidirectional.at: Fix to sync subbranches.
	* commands.cc (CMD update): Fix usage check.
	* tests/t_select_cert.at: Fix to use --revision.

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

	* netsync.cc: Call note_netsync_*_received hooks in the order they're
	written to the db (for revisions, gives topological order).

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

	* lua.{cc,hh}: Replace note_netsync_commit with
	note_netsync_{revision,cert,pubkey}_received
	* packet.{cc,hh}: Callbacks for cert or key written to the database.
	* netsync.cc: Use said callbacks, call note_netsync_*_received hooks.
	* monotone.texi: Update documentation.

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

	* packet.{cc,hh}, netsync.cc: on_revision_written callback now takes
	the revision_id as an argument.
	* lua.{cc,hh}: New Lua hook, note_netsync_commit.
	* netsync.cc: At end of netsync session, call new hook for each
	revision received.
	monotone.texi: Document new hook.

2005-05-30  Richard Levitte  <richard@levitte.org>

	* commands.cc (CMD(checkout), CMD(cdiff), CMD(diff), CMD(log)):
	Remove '[--revision=REVISION]' from command argument synopsis,
	and add more text to the help to explain what happens when
	--revision options are used.
	(CMD(update)): Instead of the optional revision argument, use
	the --revision option.  Add information on what happens when the
	--revision option is used, and when it's not.

	* tests/t_add_stomp_file.at, tests/t_add_vs_commit.at,
	tests/t_annotate.at, tests/t_lf_crlf.at,
	tests/t_update_nonexistent.at, tests/t_update_off_branch.at,
	tests/t_update_to_revision.at: Update to use --revision with
	'monotone update'.

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

	* netsync.cc: cosmetic linebreak tidying for "double-check the
	fingerprint" message.
	* main.cc: make it clearer that "unknown type" refers to an exception
	* monotone.cc: catch early informative_failures (due to charset
	problems etc)

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

	* tests/t_fmerge.at: scrap all the diff3/ed, just compare it with
	known-good output.

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

	* revision.cc (toposort): Better algorithm.

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

	* tests/t_fmerge.at: make sure we write the file with the ed script.

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

	* testsuite.at: use "command -v" rather than "which", since
	Solaris doesn't give useful exit codes for "which".
	* tests/t_fmerge.at: don't use --merge with diff3, pipe to ed instead
	so we don't rely on gnu diff3.

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

	* contrib/monoprof.sh: Add support for using valgrind for
	heap profiling.

2005-05-28  Joel Reed  <joelwreed@comcast.com>

	* app_state.cc, app_state.hh, commands.cc, monotone.cc, options.h:
	add new --depth command, and rename log's --depth to --last
	* monotone.texi: update documentation
	* tests/t_log_depth.at, tests/t_log_depth_single.at: update
	log tests to use --last instead of --depth
	* tests/t_options.at, tests/t_restrictions.at: test usage of
	--depth for commands using restrictions
	* contrib/ciabot_monotone.py, contrib/monotone-notify.pl,
	contrib/monotone.el, contrib/monotone.zsh_completion,
	contrib/mtbrowse.sh: change all occurences of "depth" to "last"

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

	* netcmd.cc (read_netcmd): Reserve space in the buffer if needed,
		swap buffers instead of copying (memory savings for sync
		large files)
	* netsync.cc (session::arm): Don't clear the buffer (now done
		by read_netcmd).

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

	* netsync.cc: Allow REGEXes as well as collections.
		Fix out-of-branch ancestor handling.
	* tests/t_netsync_diffbranch.at: Remove bug report and XFAIL (fixed).
	* commands.cc: Update description fields for netsync commands.
	* monotone.texi: Update documentation.

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

	* tests/t_automate_stdio.at: Make it self-contained.

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

	* contrib/get_stdio.pl (new file): Perl script to parse the output from
	"mtn automate stdio". Used by...
	* tests/t_automate_stdio.at (new file): Test for "mtn automate stdio".
	* testsuite.at: Add it.

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

	* automate.cc ("automate stdio"): Fix block size limiting.
		Honor "output.flush()" in commands.

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

	* automate.cc: Fix buffering for "automate stdio"

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

	* automate.cc: Put back lost "automate certs".

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

	* commands.cc (try_one_merge, CMD(merge), CMD(explicit_merge), 
	CMD(propagate): allow --author flag.

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

	* automate.cc: Fix comment for automate stdio to match the code.
	* monotone.texi: Document ignored locations in automate stdio
	input as reserved.

2005-05-24  Riccardo Ghetta  <birrachiara@tin.it>

	* tests/t_merge_binary.at: new XFAIL test to cover monotone
	inclination to algorithmically merge binary files.

2005-05-24  Richard Levitte  <richard@levitte.org>

	* commands.cc (try_one_merge): Change 'rid' to 'merged_id'.

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

	Fix "automate stdio" input/output format according to ML discussion
	* automate.cc: changed: automate_stdio
		added: print_some_output, class my_stringbuf
	* constants.{cc,hh}: add constant for automate stdio block size
	* monotone.texi: update documentation

2005-05-23  Nathaniel Smith  <njs@codesourcery.com>

	* win32/terminal.cc (have_smart_terminal): Call _isatty on stderr,
	not stdout.

2005-05-23  Richard Levitte  <richard@levitte.org>

	* commands.cc (try_one_merge): Use the value of --date and
	--author if there are any.
	(CMD(merge), CMD(propagate), CMD(explicit_merge)): Change to
	accept --date and --author.

2005-05-23  Riccardo Ghetta  <birrachiara@tin.it>

	* selectors.cc/.hh, database.cc: add two new selectors:
	"earlier or equal than" and "later than".
	* lua.cc/.hh, std-hooks.lua: create a new "expand_date" hook
	* monotone.texi: document the changes
	* testsuite.at, tests/t_selector_later_earlier.at: add specific tests 
	for the new selectors

2005-05-21  Richard Levitte  <richard@levitte.org>

	* Makefile.am: Make monotone.pdf and monotone.dvi depend on
	version.texi.

2005-05-21  Richard Levitte  <richard@levitte.org>

	* monotone.texi: Add a note about the --brief option with
	'monotone log', and restructure the synopsis since it was getting
	a bit silly with all possible variants.

2005-05-21  Richard Levitte  <richard@levitte.org>

	* commands.cc (log_certs): Add two arguments; a separator string
	to be used in front of the second to last cert for multi-valued
	cert types, a bool to say if each cert should be ended with a
	newline.  Overload with shortcuts.
	(CMD(log)): Use the --brief option and implement it using the
	shortcut variants of log_certs.
	* monotone.cc, options.hh: Add the --brief option (OPT_BRIEF
	internally).
	* sanity.cc, sanity.hh (struct sanity): Add the member variable
	and function to hold and set the brief flag.

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

	* tests/t_short_opts.at: remove the saved MT/log message
	from the failed commit.
	* Makefile.am: MAKEINFOFALGS to MAKEINFOFLAGS

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

	* commands.cc (commit): write the log message to MT/log
	during the commit, so it will be available later if the commit
	fails.
	* work.{cc,hh} (write_user_log): new function

2005-05-20  Nathaniel Smith  <njs@codesourcery.com>

	* contrib/mtbrowse.sh: New file.
	* contrib/README: Document it.  Also, document some missed files,
	and re-order listing.
	* Makefile.am (EXTRA_DIST): Add several missing contrib/ files.

2005-05-21  Grahame Bowland  <grahame@angrygoats.net>

	* automate.cc: (automate_certs) change "status" field 
	to "signature". Check whether each cert is trusted, and 
	output in the "trusted" field.
	* testsuite.at: add t_automate_certs.at
	* tests/t_automate_certs.at: Test that the output of 
	"automate certs" is consistent, and that we exit with
	error when rev is incomplete or missing.
	* monotone.texi: update output documentation for 
	"automate certs"

2005-05-20  Emile Snyder  <emile@alumni.reed.edu>

	* annotate.{hh,cc}: Rework to handle lineage dependent line
	mappings and lines which split from a single line in a parent
	revision into multiple lines in some descendent.  Fixes bug where
	some lines remained unannotated.  Fixes wrong assignment of lines
	bug.
	* tests/t_annotate.at: Check no-changes since addition of file
	case.
	* tests/t_annotate_lineage_dependent.at
	* tests/t_annotate_split_lines.at:  New tests.
	* testsuite.at: Add them.
	
2005-05-20  Nathaniel Smith  <njs@codesourcery.com>

	* monotone.texi (Network): Clarify that ports can be specified on
	the command line to serve/pull/push/sync.

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

	* packet.cc (db_packet_writer::~impl, prerequisite.cleanup): 
	add code to remove up circular dependencies between prerequisite
	and delayed_packet shared_ptrs upon destruction, so that unsatisified
	dependency warnings are printed.

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

	* change_set.cc (merge_disjoint_analyses): handle the case where
	a file is dropped on both sides but re-added on one.
	* tests/t_drop_vs_dropadd.at: a test for it
	* testsuite.at

2005-05-19  Derek Scherger  <derek@echologic.com>

	* commands.cc (checkout): rearrange to use --revision option
	* monotone.1: 
	* monotone.texi: document checkout --revision option
	* tests/t_attr.at:
	* tests/t_attributes.at:
	* tests/t_checkout_id_sets_branch.at:
	* tests/t_checkout_noop_on_fail.at:
	* tests/t_checkout_options.at:
	* tests/t_cwork.at:
	* tests/t_delete_dir.at:
	* tests/t_delete_dir_patch.at:
	* tests/t_empty_path.at:
	* tests/t_i18n_file_data.at:
	* tests/t_inodeprints_hook.at:
	* tests/t_inodeprints_update.at:
	* tests/t_largish_file.at:
	* tests/t_lf_crlf.at:
	* tests/t_monotone_up.at:
	* tests/t_netsync_defaults.at:
	* tests/t_netsync_set_defaults.at:
	* tests/t_persistent_server_revision.at:
	* tests/t_rename_added_in_rename.at:
	* tests/t_rename_dir_cross_level.at:
	* tests/t_rename_dir_patch.at:
	* tests/t_single_char_filenames.at:
	* tests/t_subdir_add.at:
	* tests/t_subdir_attr.at:
	* tests/t_subdir_drop.at:
	* tests/t_subdir_rename.at:
	* tests/t_subdir_revert.at:
	* tests/t_tags.at:
	* tests/t_update_off_branch.at:
	* tests/t_versions.at:
	* testsuite.at: add --revision option to checkout

2005-05-18  Richard Levitte  <richard@levitte.org>

	* ui.cc: Move the copyright and license section to the top of the
	file, and add an emacs mode specifier.
	* ui.cc (write_ticks): Change the counter ticker so the trailer
	comes at the end of the counter line instead of the title line.
	This is especially important for code that changes the trailer
	a little now and then.

2005-05-17  Grahame Bowland  <grahame@angrygoats.net>

	* commands.cc: add "automate certs ID" to the help string 
	for the automate command
	* automate.cc: implement "automate certs". Add to the list 
	of commands available through "automate stdio".
	* monotone.texi: document "automate certs"

2005-05-17  Nathaniel Smith  <njs@codesourcery.com>

	* monotone.texi (Network): Document 'serve' as taking more than
	one collection argument.

2005-05-15  graydon hoare  <graydon@pobox.com>

	* rcs_import.cc (note_state_at_branch_beginning): collect
	branch beginning states into a single synthetic commit.

2005-05-15  graydon hoare  <graydon@pobox.com>

	* rcs_import.cc: rewrite most of the branch logic to 
	address issues raised in bugs 13032 and 13063.
	* tests/t_cvsimport_deleted_invar.at: un-XFAIL.

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

	* commands.cc (commit): change scope of the transaction guard so that
	the transaction will fail before MT/revision is written (which could
	leave a non-committed revision/bad working dir).

2005-05-16  Grahame Bowland  <grahame@angrygoats.net>

	* monotone.texi: update "monotone log" documentation
	* commands.cc: fix "monotone log" when run with no --revision args

2005-05-15  Derek Scherger  <derek@echologic.com>

	* tests/t_update_with_blocked_rename.at: new test
	* testsuite.at: call it

2005-05-15  Derek Scherger  <derek@echologic.com>

	* netsync.cc (process_anonymous_cmd, process_auth_cmd): log
	details of permissions allowed/denied
	* tests/t_netsync_permissions.at: new test
	* testsuite.at: call it

2005-05-15  Richard Levitte  <richard@levitte.org>

	* contrib/monotone-notify.pl (revision_is_in_branch): Another
	place where --revision was missing.

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

	* contrib/monoprof.sh: Clean up variable definitions some.
		- Add option --datadir, should now be usable without editing
		variables to match system paths
		- Add option --setup, generates most of the needed files

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

	Add "monotone automate stdio", to let the automation interface
	take commands on standard input.
	* automate.cc: (automate_stdio) New function.
		(automate_command) Add it.
	* commands.cc: Add to description for "automate".
	* monotone.texi: Add to documentation.

2005-05-13  Joel Reed  <joelwreed@comcast.com>

	* tests/t_unidiff3.at: opps. forgot to add this file which
	should have been included as fix for bug 13072.

2005-05-13  Joel Reed  <joelwreed@comcast.com>

	* diff_patch.cc, transforms.cc, testsuite.at: Patch from 
	drepper@redhat.com, who writes: "The attached patch should fix bug
	13072.  I have no idea why the code in transform.cc insists on
	adding an empty line in case the file is empty. Removing the code
	didn't cause any regressions in the test suite and the
	diff_patch.cc change corrects the output format.  A new test case
	is included as well."

2005-05-13  Joel Reed  <joelwreed@comcast.com>

	* automate.cc: add automate attributes command
	* commands.cc: add attributes subcommand helptext
	* contrib/monotone.zsh_completion: use automate attributes
	for completion of monotone attr and cleanup ignore files code
	* tests/t_automate_attributes.at: add testcase
	* testsuite.at: include new testcaes

2005-05-13  Jon Bright  <jon@siliconcircus.com>
	* testsuite.at (UNGZ): Change the way the ungzipping works on
	Win32, in the hope that test 206 will no longer be given invalid
	files.

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

	* automate.cc: bump version number to 1.0
	(struct inventory_item): add pre/post states
	(inventory_paths): remove obsolete function
	(inventory_pre_state, inventory_post_state, inventory_file_state,
	inventory_renames): add fancy new functions
	(automate_inventory): rework for new output format
	* manifest.{cc,hh} (classify_paths): rename to ...
	(classify_manifest_paths): ... this and work solely from manifest
	* monotone.texi: (Automation): update inventory docs
	* tests/t_automate_inventory.at: update for new format and add
	some more tests
	
2005-05-13  Matthew Gregan  <kinetik@orcon.net.nz>

	* HACKING: New file.  First pass at a brief document to help
	newcomers hack on monotone.

2005-05-12  Riccardo Ghetta <birrachiara@tin.it>

	* options.hh (OPT_MSGFILE): New option.
	* monotone.cc (message-file): New option.
	(cpp_main): Handle it.
	* app_state.{cc,hh} (set_message_file): New function.
	* commands.cc (commit): Accept and handle new option.
	* monotone.1, monotone.texi: Document it.
	* tests/t_commit_message_file.at: New test.
	* testsuite.at: Add it.
	
2005-05-12  Timothy Brownawell  <tbrownaw@gmail.com>

	* (20 files): Do not indent with both tabs and spaces in the same file.

2005-05-13  Ulrich Drepper  <drepper@redhat.com>

	* rcs_import.cc (process_one_hunk): Improve handling of corrupt
	RCS files.

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

	* testsuite.at: Fix typo error in Win32 kill logic that was
	causing the testsuites to hang on Win32 machines that don't have
	pskill installed.

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

	* file_io.cc (write_data_impl): Use portable boost::filesystem
	calls in place of unlink(2)/remove(2).

2005-05-12  Grahame Bowland  <grahame@angrygoats.net>

	* commands.cc: Modify the "log" command to accept multiple 
	revisions on command line, and display the log for all 
	of those revisions.

2005-05-11  Nathaniel Smith  <njs@codesourcery.com>

	* std_hooks.lua (ignore_file): Organize a bit more, add
	patterns for autotools cache files, and darcs, codeville, git
	metadata directories.

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

	* revision.cc (expand_dominators): Fix bitmap size-matching.
		(find_common_ancestor_for_merge): Do not wait for ancestors
		to be expanded to the beginning of time before expanding
		dominators. Requires above fix for correct behavior.
	* ChangeLog: Fix date on previous entry.

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

	* contrib/monoprof.sh: Add profiling test for "netsync large file".
		Add options to only run specific profile tests.

2005-05-11  Stanislav Karchebny <stanislav.karchebny@skype.net>

	* contrib/monotone-notify.pl: 'monotone log' takes a revision
	through the --revision= option.

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

	* contrib/monotone-notify.pl: Change all occurences of $symbol' to
	${symbol}' to avoid a confusing Perl warning.

2005-05-11  Joel Reed  <joelwreed@comcast.com>

	* contrib/monotone.zsh_completion: add zsh completion contrib.

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

	* tests/t_add_intermediate_MT_path.at: remove the drop dir part
	* tests/t_delete_dir.at: add a note about re-enabling the above test
	* tests/t_cvsimport3.at: ignore stderr

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

	* rcs_import.cc (find_branchpoint): if a branch is derived from two 
	differing parent branches, take the one closest to the trunk.
	* tests/t_cvsimport3.at: add a test for cvs_importing where branches
	come off a vendor import.
	* testsuite.at: add it

2005-05-11  Nathaniel Smith  <njs@codesourcery.com>

	* work.cc (build_deletions): Disable delete_dir.

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

	* constants.cc (constants::bufsz): Increase buffer size.  Reduces
	the runtime to tests/t_netsync_largish_file.at by four to seven
	times on my test machines.

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

	* revision.cc: Make expand_{ancestors,dominators} twice as fast.
	Loop over revisions in the other direction so that changes at the
	frontier propogate fully in 1 pass, instead of one level at a time.

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

	* packet.{cc,hh}: Give packet_consumer and children a callback to call
	after writing out a revision.
	* netsync.cc: Use this callback to add a "revisions written" ticker,
	to provide user feedback while sanity checking.

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

	* ui.cc: Make tick_write_count take less horizontal space

2005-05-09  Nathaniel Smith  <njs@codesourcery.com>

	* AUTHORS: Give Riccardo his real name.
	* ChangeLog: Likewise.

2005-05-09  Riccardo Ghetta <birrachiara@tin.it>
	
	* std_hooks.lua: Support kdiff3.

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

	* lua.cc (loadstring, run_string): New parameter to identify the
	source of the Lua string being loaded.
	(add_{std,test}_hooks, load_rcfile): Pass an identity through.

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

	* monotone.cc: Absolutify and tilde expand pid file.

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

	* testsuite.at: Revert bogus changes committed in revision 9d478.

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

	* commands.cc (pid_file): use fs::path .empty() rather than ==, since
	boost 1.31 doesn't seem to have the latter.

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

	* lua.cc (report_error, load{file,string}): New member functions.
	Error handling in call moved into report_error.
	(call): Call report_error.
	(run_{file,string}): Call load{file,string} member functions to
	load Lua code into the VM.  Allows us to report syntax errors when
	loading rc files.
	* testsuite.at: test_hooks.lua was calling nonexistent (obsolete)
	strfind function and failing silently.  The improved error
	reporting from Lua caught this and cause testsuite failures.

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

	* monotone.1: Document --pid-file option.  Also make some minor
	spelling and punctuation fixes.

2005-05-08  Timothy Brownawell  <tbrownaw@gmail.com>
	* app_state.cc: {read,write}_options now print a warning instead of
	failing on unreadable/unwritable MT/options .
	* tests/t_unreadable_MT.at: add matching test
	* testsuite.at: add test
	* tests/README: Mention that new tests must be added to testsuite.at
	* work.cc: (get_revision_id) Friendlier error message for
	unreadable MT/revision .

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

	* monotone.texi: Right words, wrong order.
	* testsuite.at: Drop pid mapping trickery, it doesn't work
	consistently.  We now try and use SysInternal's pskill to kill the
	process.  If pskill is not available, we fall back to the old
	'kill all monotone processes' method. These changes affect
	Win32/MingW only.

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

	* commands.cc (pid_file): Remove leftover debugging output.
	* configure.ac: Correct typos in TYPE_PID_T test.
	* testsuite.at: Use some trickery on MingW/Cygwin to map the
	Windows pid to the Cygwin pid.
	* win32/process.cc (process_wait): Correct return type.
	(process_spawn): Replace dropped cast on return.

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

	* change_set.cc: fix the code which skips deltas on deleted files,
	  it was looking at the merged filename not the ancestor
	  filename.
	* tests/t_drop_vs_patch_rename.at: a test for the above fix
	* testsuite.at: add it

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

	* contrib/monoprof.sh: Add lcad test.
		Add options to pull/rebuild before profiling.

2005-05-06  Nathaniel Smith  <njs@codesourcery.com>

	* INSTALL: s/g++ 3.2 or 3.3/g++ 3.2 or later/.

2005-05-06  Nathaniel Smith  <njs@codesourcery.com>

	* monotone.1: 
	* monotone.texi (Commands, Importing from CVS, RCS): Clarify
	cvs_import documentation on cvsroot vs. module issues.

2005-05-05  Richard Levitte  <richard@levitte.org>

	* AUTHORS: Add rghetta.

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

	* monotone.texi: Document --pid-file option for serve command.
	* app_state.{cc,hh} (set_pidfile, pidfile): New function, new
	member.
	* commands.cc (pid_file): New class.
	(CMD(serve)): Use pid_file.
	* monotone.cc (coptions, cppmain): Add command-specific option
	--pid-file.
	* options.hh (OPT_PIDFILE): New option.
	* {unix,win32}/process.cc (get_process_id): New function.
	(process_{spawn,wait,kill}): Use pid_t.
	* platform.hh (process_{spawn,wait,kill}): Use pid_t.
	(get_process_id): New function
	* configure.ac: Test for pid_t.
	* lua.cc (monotone_{spawn,wait,kill}_for_lua): Use pid_t.
	* testsuite.at: Update netsync kill functions to use pid file.
	* tests/t_netsync_sigpipe.at: Update to use pid file.
	* tests/t_netsync_single.at: Update to use pid file.

2005-05-04  Nathaniel Smith  <njs@codesourcery.com>

	* tests/t_monotone_up.at: New test.
	* testsuite.at: Add it.

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

	* work.cc: Use attr_file_name rather than hardcoded strings.

2005-05-04  Brian Campbell  <brian.p.campbell@dartmouth.edu>

	* contrib/monotone.el (monotone-vc-register): Fix arguments to
	monotone-cmd-buf, to make work.

2005-05-03  Nathaniel Smith  <njs@codesourcery.com>

	* file_io.cc (read_data_for_command_line): Check that file exists,
	if reading a file.

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

	* configure.ac: Add TYPE_SOCKLEN_T function from the Autoconf
	archive.	
	* cryptopp/cryptlib.h (NameValuePairs): Change GetVoidValue from a
	pure virtual to an implemented (but never called) member function
	to work around build problem with GCC 4 on OS X 10.4
	* netxx/osutil.h: Include config.h, use new HAVE_SOCKLEN_T define
	to determine socklen_t type.

2005-05-03  Nathaniel Smith  <njs@codesourcery.com>

	* lua.cc (load_rcfile): Make a version that takes utf8 strings,
	and understands -.
	* app_state.cc (load_rcfiles): Use it.
	* file_io.{cc,hh} (absolutify_for_command_line): New function.
	* monotone.cc (cpp_main): Use it.
	* tests/t_rcfile_stdin.at: New test.
	* testsuite.at: Include it.

2005-05-03  Nathaniel Smith  <njs@codesourcery.com>

	* netsync.cc (load_epoch): Remove unused function.

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

	* tests/t_cvsimport_manifest_cycle.at: Add missing symbols.
	* tests/t_cvsimport_deleted_invar.at: Add new test.
	* testsuite.at: New test.

2005-05-03  Nathaniel Smith  <njs@codesourcery.com>

	* netsync.cc (run_netsync_protocol): Don't use the word
	"exception" in error messages.

2005-05-03  Nathaniel Smith  <njs@codesourcery.com>

	* UPGRADE: Fix version number.

2005-05-03  Nathaniel Smith  <njs@codesourcery.com>

	* debian/compat: New file.

2005-05-03  Nathaniel Smith  <njs@codesourcery.com>

	* UPGRADE: Mention upgrading from 0.18.
	* debian/copyright: Re-sync with AUTHORS.
	* win32/monotone.iss, monotone.spec, debian/changelog: Bump
	version numbers to 0.19.
	* NEWS: Finish updating for 0.19.

2005-05-03  Jon Bright  <jon@siliconcircus.com>
	* win32/monotone.iss: Bump version to 0.19
	
2005-05-03  Jon Bright  <jon@siliconcircus.com>
	* tests/t_automate_select.at: Use arithmetic comparison for
	checking output of wc, since wc pads its results with initial
	spaces on MinGW.
	
2005-05-03  Nathaniel Smith  <njs@codesourcery.com>

	* tests/t_cvsimport2.at: Pass correct module directory.

2005-05-02  Nathaniel Smith  <njs@codesourcery.com>

	* configure.ac: Bump version to 0.19.
	* NEWS: Tweaks.
	* Makefile.am (MOST_SOURCES): Add options.hh.
	(%.eps): Fix ps2eps calling convention.
	* po/monotone.pot: Regenerate.
	* testsuite.at (CHECK_SAME_CANONICALISED_STDOUT): New macro.

2005-05-02  Nathaniel Smith  <njs@codesourcery.com>

	* NEWS: More updates.
	* rcs_import.cc (store_manifest_edge): Fix some edge cases.
	* tests/t_cvsimport_manifest_cycle.at: Make work.  Un-XFAIL.

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

	* diff_patch.cc (normalize_extents): broaden the condition when
	changes can be normalised.
	* tests/t_merge_6.at: now passes.

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

	* annotate.cc: Fix bug that njs pointed out when a merge has one
	side with no changes.  Be smarter about how we get parent
	file_id's to do file diffs; give another big speedup.
	* tests/t_annotate_copy_all.at: New test for the bug that is fixed.
	* testsuite.at: Add the new test.

2005-05-02  Richard Levitte  <richard@levitte.org>

	* tests/t_override_author_date.at: Adapt to the new way to give
	revision IDs to 'monotone log'.

2005-05-01  Richard Levitte  <richard@levitte.org>

	* monotone.texi: Document the change in 'monotone log'.

2005-05-01  Riccardo Ghetta <birrachiara@tin.it>

	* commands.cc (CMD(log)): Use --revision.

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

	* netsync.cc (process_auth_cmd): make it clearer what the "unknown
	key hash" refers to.

2005-05-01  Richard Levitte  <richard@levitte.org>

	* commands.hh: Expose complete_commands().
	* commands.cc (explain_usage, command_options, process): Don't
	call complete_command().  Except the caller to have done that
	already.
	* monotone.cc (cpp_main): Start with completing the command after
	processing the options.  Use the result everywhere the command is
	required.  This avoids giving the user duplicate (or in some case,
	triplicate) messages about command expansion.

2005-04-30  Derek Scherger  <derek@echologic.com>

	* app_state.{cc,hh}: remove --all-files option
	* automate.cc: move inventory command and associated stuff here from ...
	* commands.cc: ... here, where it has been removed
	* monotone.1: relocate inventory command, remove --all-files option
	* monotone.cc: remove --all-files option
	* monotone.texi: relocate inventory documentation to automation
	section, remove --all-files option
	* tests/t_automate_inventory.at: renamed and updated for move to automate
	* testsuite.at: adjust for rename

2005-04-30  Derek Scherger  <derek@echologic.com>

	* Makefile.am (MOST_SOURCES): add restrictions.{cc,hh} 
	* commands.cc (extract_rearranged_paths): 
	(extract_delta_paths):
	(extract_changed_paths):
	(add_intermediate_paths):
	(restrict_path_set):
	(restrict_rename_set):
	(restrict_path_rearrangement):
	(restrict_delta_map):
	(calculate_restricted_rearrangement):
	(calculate_restricted_revision):
	(calculate_current_revision):
	(calculate_restricted_change_set): move to restrictions.{cc,hh}
	(maybe_update_inodeprints):
	(cat):
	(dodiff):
	(update): rename calculate_current_revision to
	calculate_unrestricted_revision
	* database_check.hh: update header guard #define
	* restrictions.{cc,hh}: add new files

2005-04-30  Nathaniel Smith  <njs@codesourcery.com>

	* commands.cc: Add a placeholder OPT_NONE for commands that don't
	take any command-specific options; use it everywhere.  Now the
	last argument to CMD never starts with %, and the last argument is
	always required to be present.

2005-04-30  Richard Levitte  <richard@levitte.org>

	* contrib/monotone-nav.el (mnav-rev-make): Move it so it's defined
	after the definition of the macro mnav-rev-id.  Otherwise, the
	byte compiler complains there is no setf method for mnav-rev-id.

2005-04-30  Nathaniel Smith  <njs@codesourcery.com>

	* monotone.texi (Database): Minor correction.

2005-04-30  Nathaniel Smith  <njs@codesourcery.com>

	* vocab.cc (trivially_safe_file_path): New function.
	(verify): Use it.
	(test_file_path_verification, test_file_path_normalization): Add a
	few more checks.

	* transforms.{cc,hh} (localized_as_string): New function.
	* {win32,unix}/inodeprint.cc (inodeprint_file): Use it, to avoid
	mkpath().

	* commands.cc (add_intermediate_paths): Hand-code intermediate
	path generator, taking advantage of normalization of file_path's,
	to avoid mkpath().

2005-04-29  Joel Rosdahl  <joel@rosdahl.net>

	* monotone.texi: Minor corrections.

2005-04-29  Nathaniel Smith  <njs@codesourcery.com>

	* commands.cc (ls_tags): Sort output.
	* tests/t_tags.at: Test that output is sorted.

2005-04-29  Derek Scherger  <derek@echologic.com>

	* commands.cc (struct file_itemizer): move to ...
	* work.hh (file_itemizer} ... here
	* work.cc (file_itemizer::visit_file} ... and here

2005-04-29  Emile Snyder  <emile@alumni.reed.edu>

	* annotate.cc (do_annotate_node): Stop doing expensive
	calculate_arbitrary_change_set when we already know we have parent
	and child revisions.  Cuts annotate run time in half.
	
2005-04-29  Nathaniel Smith  <njs@codesourcery.com>

	* commands.cc (update_inodeprints): Rename to...
	(refresh_inodeprints): ...this, so 'monotone up' continues to mean
	update.
	
	* monotone.texi (Inodeprints): Mention refresh_inodeprints in the
	Inodeprints section.
	
	* testsuite.at: 
	* tests/t_update_inodeprints.at: 
	* tests/t_refresh_inodeprints.at: 
	* monotone.texi (Working Copy, Commands): 
	* monotone.1: Update accordingly.

2005-04-29  Nathaniel Smith  <njs@codesourcery.com>

	* change_set.cc (dump_change_set): Don't truncate output.
	(invert_change_test): New unit test.
	(invert_change_set): Make it pass.  This fixes (some?)
	isect.empty() invariant failures.
	
	* NEWS: Start updating for 0.19.

	* revision.cc (check_sane_history): Make comment more
	informative.

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

	* netxx/types.h: Add new NetworkException type network 
	issue not caused by calling program
	* netsync.cc: Catch Netxx::NetworkException and display 
	as informative_error.
	* netxx/address.cxx: NetworkException for unparsable URIs.
	* netxx/datagram.cxx: NetworkException for connection failure.
	* netxx/resolve_getaddrinfo.cxx, resolve_gethostbyname.cxx:
	NetworkException when DNS resolution fails.
	* netxx/serverbase.cxx: NetworkException if unable to bind 
	to server port.
	* netxx/streambase.cxx: NetworkException if unable to 
	connect.

2005-04-28  Nathaniel Smith  <njs@codesourcery.com>

	* tests/t_netsync_error.at: New test.
	* testsuite.at: Add it.

2005-04-28  Nathaniel Smith  <njs@codesourcery.com>

	* tests/t_rename_attr.at: Fix a bit; also test that rename refuses
	to move a file to a name that already has attrs.
	* work.cc (build_rename): Cleanup a bit; refuse to move a file to
	a name that already has attrs.

	* monotone.texi (Working Copy): Document explicitly that "drop"
	and "rename" do not modify the filesystem directly, and do affect
	attributes.

2005-04-28  Derek Scherger  <derek@echologic.com>

	* commands.cc (get_work_path): 
	(get_revision_path): 
	(get_revision_id):
	(put_revision_id):
	(get_path_rearrangement):
	(remove_path_rearrangement):
	(put_path_rearrangement):
	(update_any_attrs):
	(get_base_revision):
	(get_base_manifest): move to work.{cc,hh}
	(update): indicate optional revision with [ and ]
	(explicit_merge): indicate optional ancestor with [ and ] 

	* manifest.{cc,hh} (extract_path_set): move here from work.{cc,hh}
	* revision.{cc,hh} (revision_file_name): move to work.{cc,hh}

	* work.{cc,hh} (extract_path_set): move to manifest.{cc,hh}
	(get_work_path): 
	(get_path_rearrangement): 
	(remove_path_rearrangement): 
	(put_path_rearrangement): 
	(get_revision_path): 
	(get_revision_id): 
	(put_revision_id): 
	(get_base_revision): 
	(get_base_manifest): 
	(update_any_attrs): move here from commands.cc
	
2005-04-28  Derek Scherger  <derek@echologic.com>

	* ChangeLog: 
	* Makefile.am
	* tests/t_automate_select.at: merge fixups

2005-04-28  Emile Snyder <emile@alumni.reed.edu>

	* annotate.cc: Fix broken build after propagate from .annotate
	branch to mainline.  The lcs stuff was changed to use
	quick_allocator, so our use of it had to change as well.
	
2005-04-28  Emile Snyder  <emile@alumni.reed.edu>

	* commands.cc: New command "annotate"
	* annotate.{cc,hh}: New files implement it.
	* Makefile.am: Build it.
	* monotone.texi: Document it.	
	* tests/t_annotate.at:
	* tests/t_annotate_add_collision.at:
	* tests/t_annotate_branch_collision.at: 
	* testsuite.at: Test it.
	
2005-04-28  Matt Johnston  <matt@ucc.asn.au>

	* tests/t_merge_6.at: narrow the testcase down considerably.

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

	* tests/t_merge_6.at, testsuite.at: add a new test for the case where
	duplicate lines appear in a file during a merge. This testcase can
	be correctly handled by merge(1).

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

	* tests/t_i18n_file.at, transforms.cc: OS X expects all paths to be
	utf-8, don't try to use other encodings in the test.

2005-04-28  Richard Levitte  <richard@levitte.org>

	* tests/t_automate_select.at: silly ignores not needed any more.

2005-04-28  Richard Levitte  <richard@levitte.org>

	* commands.cc (complete): Don't talk of there really was no
	expansion.

2005-04-28  Richard Levitte  <richard@levitte.org>

	* commands.cc, commands.hh: Selector functions and type are moved
	to...
	* selectors.cc, selectors.hh: ... these files.
	* database.cc, database.hh: Adapt to this change.
	* automate.cc (automate_select): New function, implements
	'automate select'.
	(automate_command): Use it.
	* monotone.texi (Automation): Document it.

	* tests/t_automate_select.at: New test.
	* testsuite.at: Use it.

	* Makefile.am (MOST_SOURCES): reorganise.  Add selectors.{cc,hh}.

2005-04-27  Derek Scherger  <derek@echologic.com>

	* commands.cc (ls_unknown): remove unneeded braces
	(struct inventory_item): new struct for tracking inventories
	(print_inventory): removed old output functions 
	(inventory_paths): new functions for paths, data and renames
	(inventory): rework to display two column status codes
	* monotone.texi (Informative): update for new status codes
	* tests/t_inventory.at: update for two column status codes

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

	* quick_alloc.hh: Define QA_SUPPORTED when quick allocation is
	supported.
	* sanity.hh: Only defined the QA(T) variants of checked_index()
	when QA_SUPPORTED is defined.

2005-04-27  Joel Reed  <joelwreed@comcast.com>

	* work.cc: on rename move attributes as well.
	* tests/t_rename_attr.at: No longer a bug.

2005-04-27  Nathaniel Smith  <njs@codesourcery.com>

	* monotone.texi (Working Copy, Commands): Document update_inodeprints.
	* monotone.1: Likewise.

	* tests/t_update_inodeprints.at: New test.
	* testsuite.at: Add it.

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

	* database.cc (selector_to_certname): Add a case for
	commands::sel_cert.

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

	* sanity.hh: Add a couple of variants of checked_index() to
	accomodate for indexes over vector<T, QA(T)>.

	* commands.hh: Add new selector to find arbitrary cert name and
	value pairs.  The syntax is 'c:{name}={value}'.
	* commands.cc (decode_selector): Recognise it.
	* database.cc (complete): Parse it.
	* std_hooks.lua (expand_selector): Add an expansion for it.
	* monotone.texi (Selectors): Document it.

	* tests/t_select_cert.at: Add test.
	* testsuite.at: Use it.

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

	* vocab.cc (verify(file_path)): don't find() twice.
	* change_set.cc (extend_state): remove commented out line 

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

	* tests/t_cvsimport_manifest_cycle.at: New test.
	* testsuite.at: Add test.
	* AUTHORS: Add self.

2005-04-27  Nathaniel Smith  <njs@codesourcery.com>

	* AUTHORS: Add Timothy Brownawell.

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

	* ui.{cc,hh}: Delegate tick line blanking to tick_writers.

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

	* change_set.cc (extend_state): don't mix find() and insert() on
	the path_state, to avoid hitting the smap's worst-case.

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

	* change_set.cc (confirm_proper_tree): move things out of the loops
	for better performance.

2005-04-26  Nathaniel Smith  <njs@codesourcery.com>

	* work.cc: Don't include boost/regex.hpp.

2005-04-26  Nathaniel Smith  <njs@codesourcery.com>

	* manifest.cc, inodeprint.cc: Don't include boost/regex.hpp.

2005-04-26  Nathaniel Smith  <njs@codesourcery.com>

	* sqlite/vdbeaux.c (MAX_6BYTE): Apply patch from
	http://www.sqlite.org/cvstrac/chngview?cn=2445.  It shouldn't
	affect monotone's usage, but just in case.

2005-04-26  Nathaniel Smith  <njs@codesourcery.com>

	* rcs_import.cc (struct cvs_key, process_branch): Fix
	indentation.
	(build_change_set): Handle the case where a file is "added dead".

	* tests/t_cvsimport2.at: Un-XFAIL, improve description.

2005-04-26  Richard Levitte  <richard@levitte.org>

	* monotone.cc (cpp_main): Count the number of command specific
	options exist.  If there is any, add a title for them.

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

	* change_set.cc (analyze_rearrangement): get rid of damaged_in_first
	since it is not used.

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

	* monotone.texi: fix mashed up merge of docs for kill_rev_locally
	and db check.

2005-04-26  Richard Levitte  <richard@levitte.org>

	* monotone.cc, commands.cc: Make some more options global.

2005-04-25  Nathaniel Smith  <njs@codesourcery.com>

	* tests/t_i18n_file_data.at: New test.
	* testsuite.at: Add it.

2005-04-25  Nathaniel Smith  <njs@codesourcery.com>

	* automate.cc (automate_parents, automate_children) 
	(automate_graph): New automate commands.
	(automate_command): Add them.
	* commands.cc (automate): Synopsisfy them.
	* monotone.texi (Automation): Document them.
	* tests/t_automate_graph.at, test/t_parents_children.at: Test
	them.
	* testsuite.at: Add the tests.

	* tests/t_automate_ancestors.at: Remove obsolete comment.
	
2005-04-24  Derek Scherger  <derek@echologic.com>

	* tests/t_rename_file_to_dir.at:
	* tests/t_replace_file_with_dir.at:
	* tests/t_replace_dir_with_file.at: new bug reports
	* testsuite.at: include new tests

2005-04-24  Derek Scherger  <derek@echologic.com>

	* app_state.{cc,hh} (app_state): add all_files flag to the constructor
	(set_all_files): new method for setting flag

	* basic_io.{cc,hh} (escape): expose public method to quote and
	escape file_paths
	(push_str_pair): use it internally

	* commands.cc (calculate_restricted_rearrangement): new function
	factored out of calculate_restricted_revision
	(calculate_restricted_revision): use new function
	(struct unknown_itemizer): rename to ...
	(struct file_itemizer): ... this; use a path_set rather than a
	manifest map; build path sets of unknown and ignored files, rather
	than simply printing them
	(ls_unknown): adjust to compensate for itemizer changes
	(print_inventory): new functions for printing inventory lines from
	path sets and rename maps
	(inventory): new command for printing inventory of working copy
	files

	* manifest.cc (inodeprint_unchanged): new function factored out
	from build_restricted_manifest_map
	(classify_paths): new function to split paths from an old manifest
	into unchanged, changed or missing sets for inventory
	(build_restricted_manifest_map): adjust to use
	inodeprint_unchanged
	* manifest.hh (classify_paths): new public function
	
	* monotone.1: document new inventory command and associated
	--all-files option

	* monotone.cc: add new --all-files option which will be specific
	to the inventory command asap

	* monotone.texi (Informative): document new inventory command
	(Commands): add manpage entry for inventory
	(OPTIONS): add entries for --xargs, -@ and --all-files

	* tests/t_status_missing.at: remove bug priority flag
	* tests/t_inventory.at: new test
	* testsuite.at: include new test
	
2005-04-24  Nathaniel Smith  <njs@codesourcery.com>

	* monotone.texi (Database): Document 'db kill_rev_locally'.

2005-04-24  Nathaniel Smith  <njs@codesourcery.com>

	* ChangeLog: Fixup after merge.

2005-04-24  Nathaniel Smith  <njs@codesourcery.com>

	* manifest.cc (build_restricted_manifest_map): Careful to only
	stat things once on the inodeprints fast-path.
	(read_manifest_map): Hand-code a parser, instead of using
	boost::regex.
	* inodeprint.cc (read_inodeprint_map): Likewise.

2005-04-23  Derek Scherger  <derek@echologic.com>

	* (calculate_restricted_revision): remove redundant variables,
	avoiding path_rearrangement assignments and associated sanity
	checks
	(calculate_current_revision): rename empty to empty_args for
	clarity

2005-04-23  Derek Scherger  <derek@echologic.com>

	* commands.cc (calculate_base_revision): rename to ...
	(get_base_revision): ... this, since it's not calculating anything
	(calculate_base_manifest): rename to ...
	(get_base_manifest): ... this, and call get_base_revision
	(calculate_restricted_revision): call get_base_revision and remove
	missing files stuff
	(add):
	(drop):
	(rename):
	(attr): call get_base_manifest
	(ls_missing): 
	(revert): call get_base_revision
	* manifest.{cc,hh} (build_restricted_manifest_map): don't return
	missing files and don't produce invalid manifests; do report on
	all missing files before failing
	
2005-04-23  Derek Scherger  <derek@echologic.com>

	* app_state.cc:
	* database.cc:
	* file_io.{cc, hh}: fix bad merge

2005-04-23  Nathaniel Smith  <njs@codesourcery.com>

	* database.cc (put_key): Check for existence of keys with
	conflicting key ids, give more informative message than former SQL
	constraint error.

2005-04-23  Nathaniel Smith  <njs@codesourcery.com>

	* transforms.cc (filesystem_is_ascii_extension_impl): Add EUC to
	the list of ascii-extending encodings.

	* tests/t_multiple_heads_msg.at: Make more robust, add tests for
	branching.

2005-04-23  Nathaniel Smith  <njs@codesourcery.com>

	* app_state.cc (restriction_includes): Remove some L()'s that were
	taking 5-6% of time in large tree diff.

2005-04-23  Nathaniel Smith  <njs@codesourcery.com>

	* file_io.{cc,hh} (localized): Move from here...
	* transforms.{cc,hh} (localized): ...to here.  Add lots of gunk to
	avoid calling iconv whenever possible.

2005-04-23  Richard Levitte  <richard@levitte.org>

	* monotone.cc, options.hh: Move the option numbers to options.hh,
	so they can be easily retrieved by other modules.
	* monotone.cc: split the options table in global options and
	command specific options.  The former are always understood, while
	the latter are only understood by the commands that declare it
	(see below).
	(my_poptStuffArgFile): There's no need to keep a copy of the
	stuffed argv.  This was really never a problem.
	(coption_string): New function to find the option string from an
	option number.
	(cpp_main): Keep track of which command-specific options were
	given, and check that the given command really uses them.  Make
	sure that when the help is written, only the appropriate command-
	specific options are shown.  We do this by hacking the command-
	specific options table.
	Throw away sub_argvs, as it's not needed any more (and realy never
	was).

	* commands.cc: Include options.hh to get the option numbers.
	(commands_ops): New structure to hold the option
	numbers used by a command.
	(commands): Use it.
	(command_options): Function to get the set of command-specific
	options for a specific command.
	(CMD): Changed to take a new parameter describing which command-
	specific options this command takes.  Note that for commands that
	do not take command-specific options, this new parameter must
	still be given, just left empty.
	Update all commands with this new parameter.
	* commands.hh: Declare command_options.

	* tests/t_automate_heads.at: 'automate heads' never used the value
	of --branch.
	* tests/t_sticky_branch.at: and neither did 'log'...
	* tests/t_update_missing.at: nor did 'add'...

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

	* tests/t_diff_currev.at: Use CHECK_SAME_STDOUT.

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

	* tests/t_diff_currev.at: New test.
	* testsuite.at: Add new test.

2005-04-22  Christof Petig <christof@petig-baender.de>

	* sqlite/*: update to sqlite 3.2.1

2005-04-22  Nathaniel Smith  <njs@codesourcery.com>

	* manifest.cc (build_restricted_manifest_map): Fixup after merge
	-- use file_exists instead of fs::exists.

2005-04-22  Derek Scherger  <derek@echologic.com>

	* manifest.{cc,hh} (build_restricted_manifest_map): keep and
	return a set of missing files rather than failing on first missing
	file
	* commands.cc (calculate_restricted_revision): handle set of
	missing files
	* revision.hh: update comment on the format of a revision
	* tests/t_status_missing.at: un-XFAIL and add a few tests
	
2005-04-22  Nathaniel Smith  <njs@codesourcery.com>

	* vocab.cc (verify(file_path), verify(local_path)): Normalize
	paths on the way in.
	* tests/t_normalized_filenames.at: Fix to match behavior
	eventually declared "correct".

2005-04-22  Nathaniel Smith  <njs@codesourcery.com>

	* vocab.{cc,hh}: Make verify functions public, make ATOMIC(foo)'s
	verify function a friend of foo, add ATOMIC_NOVERIFY macro, add
	long comment explaining all this.
	* vocab_terms.hh: Add _NOVERIFY to some types.

2005-04-22  Nathaniel Smith  <njs@codesourcery.com>

	* file_io.{cc,hh} (localized): Take file_path/local_path instead
	of string; expose in public interface.  Adjust rest of file to
	match.
	(walk_tree): Don't convert the (OS-supplied) current directory
	from UTF-8 to current locale.
	
	* transforms.{cc,hh} (charset_convert): Be more informative on
	error.
	(calculate_ident): Localize the filename, even on the fast-path.
	Also assert file exists and is not a directory, since Crypto++
	will happily hash directories.  (They are like empty files,
	apparently.)
	
	* manifest.cc (build_restricted_manifest_map): Use file_exists
	instead of fs::exists, to handle localized paths.
	* {win32,unix}/inodeprint.cc (inodeprint_file): Use localized
	filenames to stat.

	* tests/t_i18n_file.at: Rewrite to work right.

	* tests/t_normalized_filenames.at: New test.
	* testsuite.at: Add it.
	* vocab.cc (test_file_path_verification): MT/path is not a valid
	file_path either.
	(test_file_path_normalization): New unit-test.

2005-04-22  Joel Reed  <joelwreed@comcast.net>

	* work.cc (build_deletions) : on drop FILE also drop attributes.
	* tests/t_drop_attr.at : test for success now, fixed bug.

2005-04-22  Jon Bright <jon@siliconcircus.com>
	* monotone.texi: Changed all quoting of example command lines to
	use " instead of ', since this works everywhere, but ' doesn't
	work on Win32

2005-04-21  Jeremy Cowgar  <jeremy@cowgar.com>

	* tests/t_multiple_heads_msg.at: Now checks to ensure 'multiple head'
	  message does not occur on first commit (which creates a new head
	  but not multiple heads).
	* commands.cc (CMD(commit)): renamed head_size to better described
	  old_head_size, now checks that old_head_size is larger than 0 as
	  well otherwise, on commit of a brand new project, a new head was
	  detected and a divergence message was displayed.

2005-04-21  Richard Levitte  <richard@levitte.org>

	* commands.cc (ALIAS): refactor so you don't have to repeat all
	the strings given to the original command.
	(ALIAS(ci)): added as a short form for CMD(commit).

	* Makefile.am (%.eps): create .eps files directly from .ps files,
	using ps2eps.

2005-04-21 Sebastian Spaeth <Sebastian@SSpaeth.de>

	* monotone.texi: add command reference docs about kill_rev_locally
	
2005-04-21  Nathaniel Smith  <njs@codesourcery.com>

	* change_set.cc (apply_path_rearrangement_can_fastpath) 
	(apply_path_rearrangement_fastpath) 
	(apply_path_rearrangement_slowpath, apply_path_rearrangement):
	Refactor into pieces, so all versions of apply_path_rearrangement
	can take a fast-path when possible.

2005-04-21  Jeremy Cowgar  <jeremy@cowgar.com>

	* commands.cc: Renamed maybe_show_multiple_heads to
	  notify_if_multiple_heads, renamed headSize to head_size for
	  coding standards/consistency.
	* tests/t_multiple_heads_msg.at: Added to monotone this time.

2005-04-20  Jeremy Cowgar  <jeremy@cowgar.com>

	* commands.cc: Added maybe_show_multiple_heads, update now notifies
	  user of multiple heads if they exist, commit now notifies user
	  if their commit created a divergence.
	* tests/t_multiple_heads_msg.at: Added
	* testsuite.at: Added above test

2005-04-20  Nathaniel Smith  <njs@codesourcery.com>

	* Makefile.am (EXTRA_DIST): Put $(wildcard) around "debian/*", so
	it will actually work.

2005-04-20  Nathaniel Smith  <njs@codesourcery.com>

	* Makefile.am (EXTRA_DIST): Include tests, even when not building
	packages out in the source directory.

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

	* commands.cc (kill_rev_locally): Move up with rest of non-CMD()
	functions.  Mark static.  Minor whitespace cleanup.
	* commands.hh (kill_rev_locally): Declaration not needed now.

2005-04-20 Sebastian Spaeth <Sebastian@SSpaeth.de>
	* automate.cc: fix typo, add sanity check to avoid empty r_id's
	bein passed in. The automate version was bumped to 0.2 due to
	popular request of a single person.
	* t_automate_ancestors.at: adapt test; it passes now

2005-04-20 Sebastian Spaeth <Sebastian@SSpaeth.de>
	* testuite.at:
	* t_automate_ancestors.at: new test; automate ancestors. This is still
	_failing_ as a) it outputs empty newlines when no ancestor exists and
	b) does not output all ancestors if multiple ids are supplied as input
	
2005-04-20 Sebastian Spaeth <Sebastian@SSpaeth.de>

	* commands.cc:
	* automate.cc: new command: automate ancestors
	* monotone.texi: adapt documentation
	
2005-04-20  Nathaniel Smith  <njs@codesourcery.com>

	* tests/t_log_depth_single.at: 
	* tests/t_add_stomp_file.at: 
	* tests/t_log_depth.at: Shorten blurbs.

2005-04-20  Nathaniel Smith  <njs@codesourcery.com>

	* std_hooks.lua (ignore_file): Ignore compiled python files.

2005-04-20  Jon Bright  <jon@siliconcircus.com>
	* tests/t_sticky_branch.at: Really fix this test

2005-04-20  Jon Bright  <jon@siliconcircus.com>
	* tests/t_sticky_branch.at: Canonicalise stdout before comparison
	* tests/t_setup_checkout_modify_new_dir.at: Ditto
	* tests/t_netsync_largish_file.at: Check the file out rather
	than catting it, so that canonicalisation is unneeded.  
	Canonicalisation is bad here, because the file is random
	binary data, not text with line-ending conventions

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

	* contrib/monotone.el: define-after-key's KEY argument has to be a
	vector with only one element.  The code I used is taken directly
	from the Emacs Lisp Reference Manual, section "Modifying Menus".

2005-04-20  Nathaniel Smith  <njs@codesourcery.com>

	* commands.cc (mdelta, mdata, fdelta, fdata, rdata): Check for
	existence of command line arguments.

	* lua.{cc,hh} (hook_use_inodeprints): New hook.
	* std_hooks.lua (use_inodeprints): Default definition.
	* monotone.texi (Inodeprints): New section.
	(Reserved Files): Document MT/inodeprints.
	(Hook Reference): Document use_inodeprints.
	* work.{cc,hh} (enable_inodeprints): New function.
	* app_state.cc (create_working_copy): Maybe call
	enable_inodeprints.
	
	* tests/t_inodeprints_hook.at: New test.
	* tests/t_bad_packets.at: New test.
	* testsuite.at: Add them.

2005-04-20  Nathaniel Smith  <njs@codesourcery.com>

	* AUTHORS: Actually add Joel Reed (oops).

2005-04-20  Nathaniel Smith  <njs@codesourcery.com>

	Most of this patch from Joel Reed, with only small tweaks myself.
	
	* AUTHORS: Add Joel Reed.

	* platform.hh (is_executable): New function.
	* {unix,win32}/process.cc: Define it.

	* lua.cc (monotone_is_executable_for_lua): New function.
	(lua_hooks): Register it.
	(Lua::push_nil): New method.
	(lua_hooks::hook_init_attributes): New hook.
	* lua.hh: Declare it.
	* monotone.texi (Hook Reference): Document it.

	* work.cc (addition_builder): Call new hook, collect attributes
	for added files.
	(build_additions): Set attributes on new files.

	* tests/t_attr_init.at: New test.
	* tests/t_add_executable.at: New test.
	* testsuite.at: Add them.
	
2005-04-19  Nathaniel Smith  <njs@codesourcery.com>

	* file_io.cc (read_localized_data, write_localized_data): Remove
	logging of complete file contents.
	* tests/t_lf_crlf.at: Remove --debugs, clean up, test more.

2005-04-19 Emile Snyder <emile@alumni.reed.edu>
	
	* file_io.cc: Fix bugs with read/write_localized_data when using
	CRLF line ending conversion.
	* transforms.cc: Fix line_end_convert to add correct end of line
	string if the split_into_lines() call causes us to lose one from
	the end.
	* tests/t_lf_crlf.at: Clean up and no longer XFAIL.
 
2005-04-19  Sebastian Spaeth  <Sebastian@SSpaeth.de>

	* monotone.texi: modified documentation to match changes due to
	previous checking.
	* AUTHORS: Adding myself
	
2005-04-19  Sebastian Spaeth  <Sebastian@SSpaeth.de>

	* automate.cc: make BRANCH optional in "automate heads BRANCH"
	we use the default branch as given in MT/options if not specified
	* commands.cc: BRANCH -> [BRANCH] in cmd description

2005-04-19  Richard Levitte  <richard@levitte.org>

	* contrib/monotone-import.pl (my_exit): As in monotone-notify.pl,
	my_exit doesn't close any network connections.

	* testsuite.at (REVERT_TO): Make it possible to revert to a
	specific branch.  This is useful to resolve ambiguities.
	* tests/t_merge_add_del.at: Use it.

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

	* sanity.hh: Mark {naughty,error,invariant,index}_failure methods
	as NORETURN.
	* commands.cc (string_to_datetime): Drop earlier attempt at
	warning fix, it did not work with Boost 1.31.0.  Warning fixed by
	change to sanity.hh.

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

	* lua.cc (default_rcfilename): Use ~/.monotone/monotonerc.  This
	change is to prepare for the upcoming support for storing user
	keys outside of the database (in ~/.monotone/keys/).
	* app_state.cc (load_rcfiles): Refer to new rc file location in
	comments.
	* monotone.cc (options): Refer to new rc file location.
	* monotone.texi: Refer to new rc file location.  Also change bare
	references to the rc file from '.monotonerc' to 'monotonerc'.

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

	* commands.cc (log): 'depth' option did not handle the single file
	case correctly. Also a couple of minor cleanups.
	* tests/t_log_depth_single.at: New test.
	* testsuite.at: Add test.

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

	* commands.cc (string_to_datetime): Fix warning.

2005-04-18  Richard Levitte  <richard@levitte.org>

	* Makefile.am (EXTRA_DIST): Add contrib/monotone-import.pl.

	* contrib/monotone-import.pl: New script to mimic "cvs import".
	* contrib/README: describe it.

	* commands.cc (CMD(attr)): Make it possible to drop file
	attributes.

	* contrib/monotone-notify.pl (my_exit): The comment was incorrect,
	there are no network connections to close gracefully.
	Implement --ignore-merges, which is on by default, and changes the
	behavior to not produce diffs on merges and propagates where the
	ancestors hve already been shown.

	* tests/t_attr_drop.at: New test to check that 'attr drop'
	correctly drops the given entry.
	* tests/t_drop_attr.at: New test, similar to t_rename_attr.at.
	* testsuite.at: Add them.

2005-04-18  Nathaniel Smith  <njs@codesourcery.com>

	* monotone.texi (Dealing with a Fork): Clarify (hopefully) what we
	mean when we say that "update" is a dangerous command.

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

	* change_set.cc (confirm_proper_tree): remove incorrect code
	setting confirmed nodes.

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

	* change_set.cc (confirm_proper_tree): use a std::set rather than
	dynamic_bitset for the ancestor list, improving performance for
	common tree structures.
	* basic_io.cc: reserve() a string

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

	* packet.cc: fix up unit test compilation.
	* transforms.cc: fix up unit test compilation.

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

	* vocab_terms.hh: remove commented out lines.

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

	* Move base64<gzip> code as close to the database as possible,
	to avoid unnecessary inflating and deflating.

2005-04-17  Nathaniel Smith  <njs@codesourcery.com>

	* monotone.texi (Branching and Merging): A few small edits.

2005-04-17  Nathaniel Smith  <njs@codesourcery.com>

	* change_set.cc (path_item, sanity_check_path_item): Mark things
	inline.

2005-04-17  Henrik Holmboe <henrik@holmboe.se>

	* contrib/monotone-notify.pl: Add signal handlers.  Correct some
	typos.
	(my_exit): New function that does a cleanup and exit.

2005-04-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>

	* transforms.cc: fix glob_to_regexp assertions

2005-04-17  Sebastian Spaeth <Sebastian@sspaeth.de>
	
	* tests/t_db_kill_rev_locally.at: new test; 
	make sure that db kill_rev_locally works as intended

2005-04-17  Sebastian Spaeth <Sebastian@sspaeth.de>

	* commands.cc,database.cc: add 'db kill_rev_locally <id>' command
	still missing: documentation and autotests. Otherwise seems ok.
	
2005-04-17  Richard Levitte  <richard@levitte.org>

	* transforms.cc: Remove tabs and make sure emacs doesn't add
	them.

2005-04-17  Nathaniel Smith  <njs@codesourcery.com>

	* sanity.{hh,cc} (E, error_failure): New sort of invariant.
	* netsync.cc (process_hello_cmd): Make initial pull message
	more clear and friendly.
	Also, if the key has changed, that is an error, not naughtiness.
	* database_check.cc (check_db): Database problems are also errors,
	not naughtiness.  Revamp output in case of errors, to better
	distinguish non-serious errors and serious errors.
	* tests/t_database_check.at: Update accordingly.
	* tests/t_database_check_minor.at: New test.
	* testsuite.at: Add it.
	
2005-04-17  Richard Levitte  <richard@levitte.org>

	* transforms.cc (glob_to_regexp): New function that takes a glob
	expression and transforms it into a regexp.  This will be useful
	for globbing branch expressions when collections are exchanged to
	branch globs and regexps.
	(glob_to_regexp_test): A unit test for glob_to_regexp().

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

	* commands.cc: warn that dropkey won't truly erase the privkey
	from the database
	* monotone.texi: same

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

	* database.cc: mention that it could be the filesystem that
	is full in the SQLITE_FULL error message

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

	* monotone.cc: Fix warnings: add missing initializers.
	* netsync.cc: Fix warnings: inline static vs static inline.

2005-04-16  Emile Snyder  <emile@alumni.reed.edu>

	* tests/t_add_stomp_file.at: New test for failing case.  
        If you have a file foo in your working dir (not monotone 
        controlled) and someone else adds a file foo and commits, 
        update should at least warn you before stomping your 
        non-recoverable foo file.
	* testsuite.at: Add it.
	
2005-04-16  Derek Scherger  <derek@echologic.com>

	* work.cc (known_preimage_path): rename to...
	(known_path): this, since it's image agnostic
	(build_deletions): update for renamed function
	(build_rename): ensure rename source exists in current revision
	and rename target does not exist in current revision

	* tests/t_no_rename_overwrite.at: un-XFAIL 

2005-04-16  Nathaniel Smith  <njs@codesourcery.com>

	* app_state.{cc,hh} (set_author, set_date): New methods.
	* cert.cc (cert_revision_date): Rename to...
	(cert_revision_date_time): ...an overloaded version of this.
	(cert_revision_author_default): Check app.date.
	* cert.hh: Expose cert_revision_date_time.
	* commands.cc (commit): Handle --date.
	* main.cc: Parse --date and --author options.
	* monotone.1: Document --date, --author.
	* monotone.texi (Working Copy, OPTIONS): Likewise.

	* tests/t_override_author_date.at: New test.
	* testsuite.at: Add it.
	
	This commit heavily based on a patch by Markus Schiltknecht
	<markus@bluegap.ch>.
	
2005-04-16  Nathaniel Smith  <njs@codesourcery.com>

	* ChangeLog: Fixup after merge.

2005-04-16  Nathaniel Smith  <njs@codesourcery.com>

	* tests/t_update_nonexistent.at: New test.
	* testsuite.at: Add it.
	
	* commands.cc (update): Verify that user's requested revision
	exists.

2005-04-16  Nathaniel Smith  <njs@codesourcery.com>

	* ChangeLog: Fixup after merge.

2005-04-16  Emile Snyder <emile@alumni.reed.edu>

	* tests/t_add_vs_commit.at: New test for failing case.  If you
	add a file in you working dir, someone else adds the same file
	and commits, then you do an update it messes up your working
	directory.
	* testsuite.at: Add it.
	
2005-04-16  Nathaniel Smith  <njs@codesourcery.com>

	* commands.cc (checkout): Move check for existence of revision
	earlier.
	
	* tests/t_netsync_defaults.at, tests/t_netsync_single.at:
	Don't hard-code netsync port.

2005-04-16  Nathaniel Smith  <njs@codesourcery.com>

	* testsuite.at: Use a random server port.
	
	* .mt-attrs, contrib/README: Update for Notify.pl ->
	monotone-notify.pl rename.
	
	* monotone.1: Warn people off rcs_import.
	* monotone.texi (Commands): Likewise.

2005-04-16  Nathaniel Smith  <njs@codesourcery.com>

	* AUTHORS: Add Emile Snyder <emile@alumni.reed.edu>.

2005-04-16  Nathaniel Smith  <njs@codesourcery.com>

	* tests/t_lf_crlf.at: New test from Emile Snyder
	<emile@alumni.reed.edu>, with tweaks.
	* testsuite.at: Add it.

2005-04-16  Nathaniel Smith  <njs@codesourcery.com>

	* ChangeLog: Small fixups.

2005-04-16  Sebastian Spaeth <Sebastian@sspaeth.de>
	
	* tests/t_cvsimport2.at: new test; CVS Attic files fail test
	reported by: hjlipp@web.de 15.04.2005 02:45

2005-04-16  Sebastian Spaeth <Sebastian@sspaeth.de>
	
	* tests/t_rcs_import.at: new test; problematic CVS import as
	reported in the list. However it works just fine here, so it
	really tests for a successful pass

2005-04-16  Sebastian Spaeth <Sebastian@sspaeth.de>

	* tests/README: new file, on how to create/run tests

2005-04-16  Nathaniel Smith  <njs@codesourcery.com>

	* tests/t_rename_dir_add_dir_with_old_name.at: XFAIL.

2005-04-16  Nathaniel Smith  <njs@codesourcery.com>

	* tests/t_diff_binary.at: Un-XFAIL.

2005-04-16  Nathaniel Smith  <njs@codesourcery.com>

	* monotone.texi (Network Service): Rewrite to include former
	Exchanging Keys section.
	(Branching and Merging): New tutorial section, inspired by a patch
	from Martin Kihlgren <zond@troja.ath.cx>.
	(CVS Phrasebook): Add "Importing a New Project".

	* AUTHORS: Add Martin Dvorak.
	
2005-04-16  Matt Johnston  <matt@ucc.asn.au>

	* change_set.cc (compose_rearrangement): remove logging statements
	that were using noticable CPU time.

2005-04-15 Martin Dvorak <jezek2@advel.cz>
	
	* tests/t_rename_dir_add_dir_with_old_name.at: New test.
	* testsuite.at: Add it.
	
2005-04-15  Olivier Andrieu  <oliv__a@users.sourceforge.net>

	* diff_patch.cc(guess_binary): do not use '\x00' as first
	character of a C string ...

2005-04-15  Sebastian Spaeth  <Sebastian@SSpaeth.de>

	* ui.cc: print byte progress to one decimal place
	  in k or M.
	* netsync.cc: update dot ticker every 1024 bytes.

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

	* change_set.cc (confirm_proper_tree): use bitsets rather than maps
	for tracking set membership.
	* smap.hh: return reverse iterators properly, iterate over the vector
	rather than self in ensure_sort()

2005-04-14  Derek Scherger  <derek@echologic.com>

	* database_check.cc (check_db): fail with N(...) when problems are
	detected to exit with a non-zero status

2005-04-14  Derek Scherger  <derek@echologic.com>

	* monotone.texi (Informative): update description of 'diff' with
	two revision arguments
	
2005-04-14  Matthew Gregan  <kinetik@orcon.net.nz>

	* win32/process.cc: Fix build on MingW 3.2.0-rc[123] by adding
	<sstream> include.

2005-04-14  Jon Bright  <jon@siliconcircus.com>
	* win32/process.cc (process_spawn): Add some extra debug info
	* std_hooks.lua (execute): If pid is -1, don't try and wait on
	the process

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

	* change_set.cc (confirm_unique_entries_in_directories): use a
	  std::vector rather than std::map for better performance (only sort
	  once).
	* smap.hh: an invariant

2005-04-14  Nathaniel Smith  <njs@codesourcery.com>

	* tests/t_vcheck.at: Update notes.

2005-04-14  Jeremy Cowgar  <jeremy@cowgar.com>

	* monotone.texi (Making Changes): Fixed duplicate paragraph
	* NEWS: Corrected spelling error in my name.

2005-04-14  Olivier Andrieu  <oliv__a@users.sourceforge.net>

	* Makefile.am: silence cmp

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

	* win32/terminal.cc (have_smart_terminal): Implement for Win32.

2005-04-13  Nathaniel Smith  <njs@codesourcery.com>

	* monotone.texi (Informative): 'diff' with two revision arguments
	can now be filtered by file.
	
	* constants.cc (netcmd_payload_limit): Bump to 256 megs.

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

	* tests/t_netsync_largish_file.at: Add test for netsyncing largish
	(32MB) files.  This test is failing at present.
	* testsuite.at: Add new test.

2005-04-13  Nathaniel Smith  <njs@codesourcery.com>

	* tests/t_setup_checkout_modify_new_dir.at:
	* tests/t_update_off_branch.at: New tests.
	* testsuite.at: Add them.
	
	* commands.cc (checkout): Tweak branch checking logic.
	(update): Make user explicitly switch branches.

2005-04-13  Nathaniel Smith  <njs@codesourcery.com>

	* rcs_import.cc (import_cvs_repo): Check that user isn't trying to
	import a whole CVS repo.
	* tests/t_cvsimport.at: Test new check.
	
2005-04-13  Richard Levitte  <richard@levitte.org>

	* contrib/Notify.pl: Rename ...
	* contrib/monotone-notify.pl: ... to this.
	* Makefile.am (EXTRA_DIST): Take note of the change.
	* debian/docs: Distribute the contributions as well.
	* debian/compat, debian/files, debian/monotone.1: Remove, since
	they are self-generated by debhelper.  They were obviously added
	by mistake.

2005-04-13  Nathaniel Smith  <njs@codesourcery.com>

	* cert.cc (guess_branch): Call app.set_branch.
	* app_state.cc (create_working_copy): Call make_branch_sticky
	here...
	* commands.cc (checkout): ...instead of here.
	(approve, disapprove, fcommit, commit): Don't call app.set_branch
	on guess_branch's output.
	(checkout): Call guess_branch.
	
	* tests/t_sticky_branch.at: 
	* tests/t_checkout_id_sets_branch.at: New tests.
	* testsuite.at: Add them.

2005-04-13  Matthew Gregan  <kinetik@orcon.net.nz>
	* cryptopp/integer.h: Fix detection of GCC version for SSE2
	builds.

2005-04-12  Florian Weimer  <fw@deneb.enyo.de>

	* app_state.cc (app_state::allow_working_copy): Only update
	branch_name from the options file if it has not yet been set.  Log
	the branch name.
	(app_state::set_branch): No longer update the options map.
	(app_state::make_branch_sticky): New function which copies the
	stored branch name to the options map.  Only commands which call
	this function change the branch default stored in the working
	copy.

	* commands.cc (CMD(checkout)): Mark branch argument as sticky.
	(CMD(commit)): Likewise.
	(CMD(update)): Likewise.

	* monotone.texi (Working Copy): Mention that the "commit" and
	"update" commands update the stored default branch ("checkout"
	does, too, but this one should be obvious).

2005-04-12  Jon Bright <jon@siliconcircus.com>
	* rcs_import.cc (find_key_and_state): Fix stupid bug in storing the
	list of files a cvs_key contains.  CVS delta invariant failure now
	really fixed.  The rearrangement failure still exists, though.

2005-04-12  Jon Bright <jon@siliconcircus.com>
	* tests/t_cvsimport_samelog.at: Add test for the deltas.find 
	cvs import problem as sent to the ML by Emile Snyder.
	* testsuite.at: Call it
	* rcs_import.cc (cvs_key): Add an ID for debug output purposes,
	sprinkle a little more debug output about what's being compared to
	what
	* rcs_import.cc (cvs_key): Maintain a map of file paths and CVS
	versions appearing in this CVS key.
	(cvs_key::similar_enough): A key is only similar enough if it doesn't
	include a different version of the same file path.
	(cvs_history::find_key_and_state): Add files to cvs_keys as
	appropriate

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

	* win32/terminal.cc (terminal_width): Use
	GetConsoleScreenBufferInfo to request width information for
	terminals.
	
2005-04-12  Nathaniel Smith  <njs@codesourcery.com>

	* ChangeLog: Fixup after merge.

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

	* platform.hh (terminal_width): New function.
	* {unix,win32}/have_smart_terminal.cc: Rename to...
	* {unix,win32}/terminal.cc: ...these.  Implement terminal_width.
	* ui.cc (write_ticks): Call it.
	* Makefile.am: Update for renames.
	
2005-04-11  Matt Johnston <matt@ucc.asn.au>

	* ui.{cc,hh}, netsync.cc: netsync progress ticker in kilobytes to
	avoid wrapping.

2005-04-11  Jon Bright <jon@siliconcircus.com>
	* Makefile.am (EXTRA_DIST): Add debian/*

2005-04-11  Jon Bright <jon@siliconcircus.com>
	* Makefile.am (EXTRA_DIST): Add win32/monotone.iss, PNG_FIGURES
	(PNG_FIGURES): Add, constructing in same way as EPS_FIGURES
	(monotone.html): Use .perlbak workaround so that this works on Win32

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

	* unix/inodeprint.cc, configure.ac: Use nanosecond time resolution for
	inodeprints on BSDs and other platforms if available.

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

	* Makefile.am (BUILT_SOURCES_CLEAN): Add package_revision.txt.

	This is the 0.18 release.

2005-04-10  Derek Scherger  <derek@echologic.com>

	* monotone.texi (Informative): fix typo in ls known docs

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

	* Makefile.am: Use pdftops instead of acroread.
	(EXTRA_DIST): Include new contrib/ files, and fix wildcards.
	* NEWS: Update for 0.18.
	* configure.ac: Bump version number.
	* debian/changelog: Mention new release.
	* debian/copyright: Update from AUTHORS.
	* monotone.spec: Mention new release.
	* po/monotone.pot: Regenerate.

2005-04-10  Florian Weimer  <fw@deneb.enyo.de>

	* monotone.texi (Commands): Use "working copy" instead of "working
	directory", to match the rest of the manual.

2005-04-10  Florian Weimer  <fw@deneb.enyo.de>

	* commands.cc (ls_known): New function which prints all known
	files in the working copy.
	(CMD(list)): Invoke ls_known for "list known".  Update help
	message.
	(ALIAS(ls)): Update help message.

	* monotone.texi: Document "list known".
	* tests/t_ls_known.at: New file.
	* testsuite.at: Include it.

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

	* contrib/Notify.pl: Count the number of messages sent, and
	display the count at the end.
	Version bumped to 1.0.

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

	* unix/inodeprint.cc, configure.ac: don't use the nsec time
	on non-Linux-style systems (quick compile fix for OS X and probably
	others, can be made generic later).

2005-04-10  Olivier Andrieu  <oliv__a@users.sourceforge.net>

	* contrib/monotone.el: Some elisp code for running monotone from
	inside Emacs. Supports diff, status, add, drop, revert and commit.

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

	* contrib/Notify.pl: Allow globbing branches.  Make the revision
	records branch specific.  Show what records you would have updated
	even with --noupdate.  Add --before and --since, so users can
	select datetime ranges to create logs for.  Remove --to and add
	--difflogs-to and --nodifflogs-to to send logs with diffs to one
	address and logs without diffs to another (both can be given at
	once).  More and better documentation.

2005-04-08  Nathaniel Smith  <njs@codesourcery.com>

	* change_set.cc (basic_change_set): Remove problematic
	rename_dir/add combination, until directory semantics are
	fixed.

2005-04-08  Nathaniel Smith  <njs@codesourcery.com>

	* commands.cc (revert): Call maybe_update_inodeprints.
	* app_state.cc (set_restriction): Clear any old restrictions
	first.

2005-04-08  Jon Bright <jon@siliconcircus.com>
	* testsuite.at (NOT_ON_WIN32): Add a function to prevent tests from
	running on Win32 (for cases where the functionality being tested 
	makes no sense on Win32.  Not for cases where the functionality
	just isn't there yet on Win32.)
	* tests/t_final_space.at: Use NOT_ON_WIN32.  The filenames "a b" 
	and "a b " refer to the same file on Win32, obviating this test

2005-04-08  Jon Bright <jon@siliconcircus.com>
	* win32/inodeprint.cc (inodeprint_file): Still close the file if
	getting its time failed.
	* tests/t_netsync_sigpipe.at: Don't bother doing a kill -PIPE on
	Win32.  There is no real SIGPIPE on Win32 and sockets don't get this
	signal if their pipe goes away.  MinGW's kill seems to translate
	-PIPE to some signal that *does* kill monotone, so it seems like the
	easiest solution is just not to send the signal in the first place
	here.
	* tests/t_automate_ancestry_difference.at: Remove old 
	CHECK_SAME_STDOUT call which I'd left by accident.
	* tests/t_automate_leaves.at: Canonicalise monotone output before
	passing to CHECK_SAME_STDOUT
	* tests/t_log_depth.at: Check line count with arithmetic comparison
	rather than autotest's string comparison

2005-04-08  Nathaniel Smith  <njs@codesourcery.com>

	* inodeprint.cc (operator<<): Typo.

	* inodeprint.{hh,cc} (build_inodeprint_map,
	build_restricted_inodeprint_map): Remove unused functions.

2005-04-08  Nathaniel Smith  <njs@codesourcery.com>

	* work.cc: Remove doxygen comments.  Comments are good; comments
	that are longer than the function they document, and give less
	information, are not so good...

2005-04-08  Nathaniel Smith  <njs@codesourcery.com>

	* ChangeLog: Fixup after merge.

2005-04-08  Nathaniel Smith  <njs@codesourcery.com>

	* commands.cc (calculate_current_revision): Defer to
	calculate_restricted_revision instead of special casing.
	(put_revision_id): constify argument.
	(maybe_update_inodeprints): New function.
	(commit, update, checkout): Call it.
	
	* manifest.{cc,hh} (build_manifest_map): Remove, since only caller
	was removed.
	(build_restricted_manifest_map): Go faster if the user is using
	inode signatures.

	* tests/t_inodeprints.at:
	* tests/t_inodeprints_update.at: Typoes.
	
	* work.cc (read_inodeprints): Typo.

2005-04-08  Nathaniel Smith  <njs@codesourcery.com>

	* tests/t_inodeprints.at:
	* tests/t_inodeprints_update.at: New tests.
	* testsuite.at: Add them.
	
	* UPGRADE: Document 0.17 -> 0.18 upgrade path.

2005-04-08  Jon Bright <jon@siliconcircus.com>
	* tests/t_cat_file_by_name.at: CHECK_SAME_STDOUT can only be used
	to check two 'cat' processes or two monotone processes on Win32,
	not to check monotone and 'cat'.  Change to go through an 
	intermediate stdout
	* tests/t_automate_erase_ancestors.at: Ditto
	* tests/t_automate_toposort.at: Ditto
	* tests/t_automate_ancestry_difference.at: Ditto
	* tests/t_vars.at: Call CANONICALISE for stdout output.
	* tests/t_netsync_absorbs.at: Ditto.
	* tests/t_empty_env.at: For Win32, copy libiconv-2.dll to the 
	current dir before the test, otherwise Win32 will search the
	(empty) path for it and not find it.
	* tests/t_automate_descendents.at: Ditto
	* win32/inodeprint.cc: Implement inodeprint_file for Win32, based
	on mode, device, size, create time and write time.
	
	
2005-04-08  Jon Bright <jon@siliconcircus.com>
	* win32/inodeprint.cc: Change the function name to match the one
	on Unix.

2005-04-08  Nathaniel Smith  <njs@codesourcery.com>

	* {win32,unix}/fingerprint.cc: Rename to...
	* {win32,unix}/inodeprint.cc: ...this.  Change function name and
	calling conventions.
	* platform.hh (inodeprint_file): Likewise.
	* inodeprint.{cc,hh}: New files.
	* Makefile.am (MOST_SOURCES, UNIX_PLATFORM_SOURCES,
	WIN32_PLATFORM_SOURCES): Fixup accordingly.
	* vocab_terms.hh (inodeprint): New ATOMIC.
	* work.hh: Prototype inodeprint working copy functions.
	* work.cc: Implement them.

	* manifest.{hh,cc} (manifest_file_name): Remove unused variable.

2005-04-08  Jeremy Cowgar  <jeremy@cowgar.com>

	* doxygen.cfg: added
	* Makefile.am: added apidocs target (builds doxygen docs)

2005-04-07  Nathaniel Smith  <njs@codesourcery.com>

	* manifest.{hh,cc}: Remove some commented out unused functions.

	* win32/have_smart_terminal.cc: Include platform.hh.
	* unix/fingerprint.cc: New file, with new function.
	* win32/fingerprint.cc: New file, with stub function.
	* Makefile.am (UNIX_PLATFORM_SOURCES, WIN32_PLATFORM_SOURCES): Add
	them.

2005-04-07  Nathaniel Smith  <njs@codesourcery.com>

	* manifest.hh, manifest.cc: Remove tabs.

2005-04-07  Nathaniel Smith  <njs@codesourcery.com>

	* tests/t_final_space.at: New test.
	* testsuite.at: Add it.

2005-04-07  Nathaniel Smith  <njs@codesourcery.com>

	* monotone.texi (Dealing with a Fork): 'merge' has slightly
	different output.

	* NEWS: Summarize changes of last 2.5 weeks.

2005-04-07  Nathaniel Smith  <njs@codesourcery.com>

	* database.{cc,hh} (space_usage): New method.
	* database.cc (info): Use it.

2005-04-07  Nathaniel Smith  <njs@codesourcery.com>

	* vocab.cc (verify): Cache known-good strings, to speed up
	repeated processing of related changesets.

	* change_set.cc (basic_change_set_test): Revert last change; the
	old version _was_ valid.

2005-04-07  Nathaniel Smith  <njs@codesourcery.com>

	* smap.hh (insert): Fix stupid bug in assertion condition.

2005-04-07  Nathaniel Smith  <njs@codesourcery.com>

	* change_set.cc (basic_change_set_test): Test a _valid_
	change_set.
	(directory_node): Make a std::map, instead of an smap.  Add a
	comment explaining the bug that makes this temporarily necessary.

	* smap.hh (smap): Don't check for duplicates at insert time,
	unless we've decided not to mark things damaged; don't return
	iterators from insert.  Do check for duplicates at sort time, and
	always sort, instead of sometimes doing linear search.  This makes
	insert O(1), while still preserving the invariant that keys must
	be unique.
	
	* commands.cc (commit): Explain why we're aborting, in the case
	that we detect that a file has changed under us in the middle of a
	commit.

2005-04-07  Richard Levitte  <richard@levitte.org>

	* cryptopp/config.h: typo...

2005-04-06  Nathaniel Smith  <njs@codesourcery.com>

	* work.cc (build_deletions): Issue warning when generating
	delete_dir's; they're totally broken, but I don't want to disable
	them, because then our tests won't see when they're fixed...

2005-04-05  Nathaniel Smith  <njs@codesourcery.com>

	* tests/t_db_execute.at (db execute): New test.
	* testsuite.at: Add it.
	* database.cc (debug): Don't printf-interpret %-signs in input.

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

	* database.cc: remove dulicated block introduced
	in rev 9ab3031f390769f1c455ec7764cc9c083f328a1b
	(merge of 76f4291b9fa56a04feb2186074a731848cced81c and
	c7917be7646df52363f39d2fc2f7d1198c9a8c27). Seems to be another
	instance of the case tested in t_merge_5.at

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

	* basic_io.hh: reserve() the string which we're appending to
	frequently. Seems to give ~5% speedup in 
	diff -r t:revision-0.16 -r t:revision-0.17 - can't hurt.

2005-04-04  Nathaniel Smith  <njs@codesourcery.com>

	* monotone.spec, debian/control: We no longer need external popt.
	* INSTALL: Ditto, plus some general updating.
	
2005-04-04  Nathaniel Smith  <njs@codesourcery.com>

	* tests/t_sql_unpack.at: New test.
	* testsuite.at: Add it.

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

	* file_io.cc (read_data_stdin): make it use botan
	* mkstemp.cc: merge cleanup (missed something up the manual merge)

2005-04-04  Nathaniel Smith  <njs@codesourcery.com>

	* contrib/ciabot_monotone.py (config): Genericize again, so lazy
	people using it won't start sending commits for monotone.
	* .mt-attrs: Make it executable.

2005-04-04  Richard Levitte  <richard@levitte.org>

	* Makefile.am (EXTRA_DIST): Add the extra popt files.

	* popt/popt.3, popt/popt.ps, popt/testit.sh: Include a few more
	  files from popt, mostly to have documentation on hand.  post.ps
	  is mentioned in popt/README.

2005-04-03  Nathaniel Smith  <njs@codesourcery.com>

	* Makefile.am (EXTRA_DIST): Add contrib/ stuff to distributed
	files list.
	* contrib/ciabot_monotone.py (config.delivery): Turn on.
	(send_change_for): Don't include "ChangeLog:" line when extracting
	changelog.

2005-04-03  Nathaniel Smith  <njs@codesourcery.com>

	* contrib/ciabot_monotone.py: New file.
	* contrib/README: Describe it.

2005-04-03  Richard Levitte  <richard@levitte.org>

	* AUTHORS: Add information about popt.

	* monotone.cc (my_poptStuffArgFile): Include the bundled popt.h.
	Since we now have a working popt, we can remove the restrictions
	on the use of -@.
	* tests/t_at_sign.at: Test that we can take more tha one -@.
	* monotone.1: Document it.

	* popt/poptint.h (struct poptContext_s): Add field to keep track
	  of the number of allocated leftovers elements.
	* popt/popt.c (poptGetContext): Initialise it and use it.
	  (poptGetNextOpt): Use it and realloc leftovers when needed.
	  Also make sure that the added element is a dynamically allocated
	  copy of the original string, or we may end up with a dangling
	  pointer.  These are huge bugs in popt 1.7, when using
	  poptStuffArgs().
	  (poptFreeContext): Free the leftovers elements when freeing
	  leftovers.
	  (poptSaveLong, poptSaveInt): Apply a small patch from Debian.

	* popt/CHANGES, popt/COPYING, popt/README, popt/findme.c,
	  popt/findme.h, popt/popt.c, popt/poptconfig.c, popt/popt.h,
	  popt/popthelp.c, popt/poptint.h, popt/poptparse.c,
	  popt/system.h, popt/test1.c, popt/test2.c, popt/test3.c: Bundle
	  popt 1.7.
	* configure.ac, Makefile.am: Adapt.

2005-04-01  Richard Levitte  <richard@levitte.org>

	* contrib/Notify.pl: Complete rewrite.  Among other things, it
	  makes better use of some new monotone automate features.  It's
	  also better organised and much more documented.

2005-04-01  Jeremy Cowgar  <jeremy@cowgar.com>

	* tests/t_dropkey_2.at: Updated to test dropkey instead of delkey
	* tests/t_dropkey_1.at: Updated to test dropkey instead of delkey
	* monotone.texi (Key and Cert): Changed references to delkey
	  to dropkey
	  (Commands): Changed references to delkey to dropkey
	* testsuite.at: changed references from t_delkey* to t_dropkey*
	* t_delkey_1.at: renamed to t_dropkey_1.at
	* t_delkey_2.at: renamed to t_dropkey_2.at
	* commands.cc (CMD(delkey)): renamed to dropkey to maintain
	  command consistency (with existing drop command)

2005-04-01  Richard Levitte  <richard@levitte.org>

	* monotone.cc (my_poptStuffArgFile): An argument file might be
	empty, and therefore contain no arguments to be parsed.  That's
	OK.
	* tests/t_at_sign.at: Test it.

2005-04-01  Nathaniel Smith  <njs@codesourcery.com>

	* monotone.cc: Fixup after merge.

2005-04-01  Nathaniel Smith  <njs@codesourcery.com>

	* file_io.cc (read_data_for_command_line): New function.
	(read_data_stdin): New function.
	* file_io.hh (read_data_for_command_line): Add prototype.
	
	* monotone.cc (my_poptStuffArgFile): Clean up a little.  Use
	read_data_for_command_line.  Don't free argv, but rather return
	it.
	(cpp_main): Keep a list of allocated argv's, and free them.
	(options): Tweak wording of help text on -@.
	
2005-04-01  Nathaniel Smith  <njs@codesourcery.com>

	* file_io.hh: Remove tabs.

2005-04-01  Nathaniel Smith  <njs@codesourcery.com>

	* monotone.cc (cpp_main): Actually remove newline.

2005-04-01  Nathaniel Smith  <njs@codesourcery.com>

	* ChangeLog: Fixup after merge.
	* monotone.text (Making Changes): Fix typo.
	
2005-04-01  Nathaniel Smith  <njs@codesourcery.com>

	* monotone.cc (cpp_main): Remove now-unneccessary newline.
	
	* commands.cc (commit): Fix typo.
	
	* monotone.texi (Making Changes): Don't claim that writing to
	MT/log prevents the editor from starting.  Clarify later that
	having written to MT/log still means the editor will pop up
	later.

2005-04-01  Richard Levitte  <richard@levitte.org>

	* monotone.cc: Add the long name --xargs for -@.
	* monotone.1: Document it.
	* tests/t_at_sign.at: Remove extra empty line and test --xargs.

	* monotone.texi (Making Changes): Cleanupy tweaks.

	* monotone.cc (my_poptStuffArgFile): New function to parse a file
	for more arguments and stuff them into the command line.
	(cpp_main): Add the -@ option
	* tests/t_at_sign.at, testsuite.at: Test it
	* monotone.1: Document it.

2005-03-31  Nathaniel Smith  <njs@codesourcery.com>

	* tests/t_log_depth.at: Cleanupy tweaks.

2005-03-31  Jeremy Cowgar  <jeremy@cowgar.com>

	* monotone.texi: Tutorial updated to include example of
	  editing/committing with MT/log
	* work.cc (has_contents_user_log) Added
	* work.hh (has_contents_user_log) Added
	* commands.cc (CMD(commit)): Checks to ensure both MT/log and the
	  --message option does not exist during commit.
	* transforms.hh (prefix_lines_with): Added
	* transforms.cc (prefix_lines_with): Added
	* sanity.cc (naughty_failure): Made use of prefix_lines_with()
	* ui.cc (inform): now handles messages w/embedded newlines
	* tests/t_commit_log_3.at: Created to test new functionality
	  added to CMD(commit)
	* testsuite.at: Added above test

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

	* monotone.cc: Add the --depth option...
	* app_state.hh (class app_state),
	  app_state.cc (app_state::set_depth): ... and the field and
	  method to store and set it.
	* commands.cc (CMD(log)): ... then handle it.

	* tests/t_log_depth.at: Add a test for 'log --depth=n'
	* testsuite.at: Add it.
	* monotone.texi (Informative): Document it.

2005-03-31  Nathaniel Smith  <njs@codesourcery.com>

	* automate.cc (automate_erase_ancestors): Accept zero arguments,
	and in such case print nothing.  (Important for scripting.)
	* commands.cc (automate):
	* monotone.texi (Automation):
	* tests/t_automate_erase_ancestors.at: Update accordingly.

2005-03-31  Nathaniel Smith  <njs@codesourcery.com>

	* automate.cc (automate_toposort): Accept zero arguments, and in
	such case print nothing.  (Important for scripting.)
	* commands.cc (automate):
	* monotone.texi (Automation):
	* tests/t_automate_toposort.at: Update accordingly.

2005-03-30  Richard Levitte  <richard@levitte.org>

	* contrib/Notify.pl: A new Perl hack to send change logs by
	email.

	* contrib/README: Add a quick description.

2005-03-30  Nathaniel Smith  <njs@codesourcery.com>

	* automate.cc (automate_leaves): New function.
	(automate_command): Add it.
	* commands.cc (automate): Synopsify it.
	* monotone.1: Add it.
	* monotone.texi (Automation, Commands): Likewise.
	
	* tests/t_automate_leaves.at: New test.
	* testsuite.at: Add it.

2005-03-30  Nathaniel Smith  <njs@codesourcery.com>

	* monotone.texi (Automation): Make newly added sample outputs
	verbatim also.

2005-03-30  Nathaniel Smith  <njs@codesourcery.com>

	* tests/t_automate_toposort.at: New test.
	* tests/t_automate_ancestry_difference.at: New test.
	* tests/t_diff_first_rev.at: New test.
	* testsuite.at: Add them.
	
	* revision.cc (calculate_ancestors_from_graph): Do not keep an
	"interesting" set and return only ancestors from this set;
	instead, simply return all ancestors.  Returning a limited set of
	ancestors does not speed things up, nor reduce memory usage in
	common cases.  (The only time it would reduce memory usage is when
	examining only a small ancestor set, which the important case,
	'heads', does not; even then, erase_ancestors would need to intern
	the interesting revisions first so they got low numbers, which it
	doesn't.)
	(erase_ancestors): Adjust accordingly.
	(toposort, ancestry_difference): New functions.
	* revision.hh (toposort, ancestry_difference): Declare.
	* automate.cc (automate_toposort, automate_ancestry_difference):
	New functions.
	(automate_command): Add them.
	All functions: clarify in description whether output is sorted
	alphabetically or topologically.
	* commands.cc (automate): Synopsify them.
	* monotone.1: Add them.
	* monotone.texi (Commands): Likewise.
	(Automation): Likewise.  Also, clarify for each command whether
	its output is alphabetically or topologically sorted.
	
2005-03-29  Richard Levitte  <richard@levitte.org>

	* commands.cc (CMD(ls)): Update with the same information as
	CMD(list)

	* monotone.texi (Automation): Make the sample output verbatim

2005-03-26  Nathaniel Smith  <njs@codesourcery.com>

	* automate.cc (automate_erase_ancestors): New function.
	(automate_command): Use it.
	* commands.cc (automate): Document it.

	* tests/t_automate_erase_ancestors.at: New test.
	* testsuite.at: Add it.

	* monotone.texi (Automation, Commands): Document automate
	erase_ancestors.
	* monotone.1: Document automate erase_ancestors.

2005-03-26  Nathaniel Smith  <njs@codesourcery.com>

	* automate.cc (interface_version): Bump to 0.1.
	(automate_descendents): New function.
	(automate_command): Call it.
	* commands.cc (automate): Add it to help text.

	* tests/t_automate_descendents.at: New test.
	* testsuite.at: Add it.
	
	* monotone.texi (Automation, Commands): Document automate
	descendents.
	* monotone.1: Document automate descendents, and vars stuff.

2005-03-26  Nathaniel Smith  <njs@codesourcery.com>

	* tests/t_attr.at: No longer a bug report.
	* tests/t_rename_attr.at: New test.
	* testsuite.at: Add it.

2005-03-26  Joel Crisp  <jcrisp@s-r-s.co.uk>

	* contrib/Log2Gxl.java: New file.

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

	* contrib/README: New file.

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

	* commands.cc (user_log_file_name): Remove unused variable
	again.  Hopefully it will take this time...

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

	* commands.cc (user_log_file_name): Remove unused variable.

2005-03-25  Jeremy Cowgar  <jeremy@cowgar.com>

	* monotone.texi: Added a bit more documentation about MT/log
	  Updated edit_comment hook and addded delkey docs
	* commands.cc: Added delkey command
	* t_delkey_1.at: Tests delkey command on public key
	* t_delkey_2.at: Tests delkey command on public and private key
	* testsuite.at: Added above tests
	* std_hooks.lua: Transposed the MT: lines and user_log_contents,
	  user_log_contents now appears first.

2005-03-25  Jeremy Cowgar  <jeremy@cowgar.com>

	* t_setup_creates_log.at: Ensures that MT/log is created
	  on setup
	* t_checkout_creates_log.at: Ensures that MT/log is created
	  on checkout
	* t_commit_log_1.at: Ensures that:
	  1. Read and entered as the ChangeLog message
	  2. Is blanked after a successful commit
	* t_commit_log_2.at: Ensures that commit works w/o MT/log being
	  present
	* testsuite.at: Added the above tests.

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

        * {unix,win32}/platform_netsync.cc, platform.hh, Makefile.am: new
        functions to disable and enable sigpipe.
        * netsync.cc, main.cc: call the functions from netsync rather than
        globally, so that sigpipe still works for piping output of commands
        such as 'log'.
        * tests/t_netsync_sigpipe.at: test it.
        * testsuite.at: add it.

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

	* tests/t_database_check.at: re-encode the manifestX
	data so that it doesn't use any fancy gzip features like
	filenames (so that the botan parse can handle it).
	( if it should be able to handle it, an additional test
	can be added testing it explicitly).

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

	* botan/base64.h: Change default break value so that
	output is split into 72 col lines.

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

	* monotone.cc: add short options -r, -b, -k, and -m
	for --revision, --branch, --key, and --message respectively.
	* monotone.texi, monotone.1: document them
	* tests/t_short_opts.at: test them
	* testsuite.at: add it

2005-03-24  Nathaniel Smith  <njs@codesourcery.com>

	* tests/t_empty_env.at: New test.
	* testsuite.at: Add it.  Absolutify path to monotone so it will
	work.
	
	* unix/have_smart_terminal.cc (have_smart_terminal): Handle the
	case where TERM is unset or empty.

2005-03-24  Nathaniel Smith  <njs@codesourcery.com>

	* ui.hh (tick_write_nothing): New class.
	* monotone.cc (cpp_main): Enable it.

2005-03-24  Nathaniel Smith  <njs@codesourcery.com>

	* work.cc (build_deletions, build_additions): Fixup after merge.

2005-03-23  Nathaniel Smith  <njs@codesourcery.com>

	* tests/t_cat_file_by_name.at: Check for attempting to cat
	non-existent files.
	* tests/t_empty_id_completion.at: New test.
	* tests/t_empty_path.at: New test.
	* testsuite.at: Add them.
	
	* database.cc (complete): Always generate some sort of limit term,
	even a degenerate one.
	
	* app_state.cc (create_working_copy): Check for null directory.

	* work.cc (build_deletion, build_addition, build_rename): Check
	for null paths.

2005-03-23  Derek Scherger  <derek@echologic.com>

	* Makefile.am UNIX_PLATFORM_SOURCES:
	WIN32_PLATFORM_SOURCES: add have_smart_terminal.cc
	* platform.hh (have_smart_terminal): prototype
	* ui.cc (user_interface): set ticker to dot/count based on
	have_smart_terminal
	* unix/have_smart_terminal.cc: 
	* win32/have_smart_terminal.cc: new file
	
2005-03-23  Derek Scherger  <derek@echologic.com>

	* commands.cc (add): pass list of prefixed file_path's to
	build_additions
	(drop): pass list of prefixed file_path's to build_deletions
	(attr): pass attr_path as a 1 element vector to build_additions
	* work.{cc,hh} (build_addition): rename to...
	(build_additions): this, and accept a vector of paths to be added
	in a single path_rearrangement
	(build_deletion): rename to ...
	(build_deletions): this, and accept a vector of paths to be
	dropped in a single path_rearrangement
	(known_preimage_path): replace manifest and path_rearrangement
	args with a path_set to avoid extracting paths for every file
	(build_rename): adjust for change to known_preimage_path

2005-03-23  Nathaniel Smith  <njs@codesourcery.com>

	* monotone.cc (my_poptFreeContext, cpp_main): Apparently
	poptFreeContext silently changed its return type at some unknown
	time.  Hack around this.

2005-03-23  Nathaniel Smith  <njs@codesourcery.com>

	* monotone.cc (cpp_main): Remove the special code to dump before
	printing exception information, since we no longer dump to the
	screen, so it's always better to have the little status message
	saying what happened to the log buffer at the end of everything.
	* sanity.cc (dump_buffer): Give a hint on how to get debug
	information, when discarding it.
	* work.{hh,cc} (get_local_dump_path): New function.
	* app_state.cc (allow_working_copy): Use it for default
	global_sanity dump path.
	* monotone.texi (Reserved Files): Document MT/debug.
	(Network): Capitalize Bob and Alice (sorry graydon).
	Document new defaulting behavior.

2005-03-23  Nathaniel Smith  <njs@codesourcery.com>

	* work.cc, sanity.cc: Remove tabs.

2005-03-23  Nathaniel Smith  <njs@codesourcery.com>

	* monotone.texi (Network Service): Mention that monotone remembers
	your server/collection.
	(Vars): New section.
	* netsync.cc (process_hello_cmd): Touch more cleaning.
	* tests/t_merge_5.at: More commentary.
	
2005-03-23  Matt Johnston  <matt@ucc.asn.au>

	* tests/t_merge_5.at: new test for a merge which ends up with
	duplicate lines.
	* testsuite.at: add it

2005-03-22  Jeremy Cowgar  <jeremy@cowgar.com>

	* AUTHORS: Added my name
	* app_state.cc, commands.cc, lua.cc, lua.hh, monotone.texi,
	  std_hooks.lua, work.cc, work.hh: Added functionality to
	  read the MT/log file for commit logs. In this revision
	  tests are not yet complete nor is documenation complete
	  but the reading, blanking and creating of MT/log is.

2005-03-22  Nathaniel Smith  <njs@codesourcery.com>

	* vocab_terms.hh: Declare base64<var_name>.
	* database.cc (clear_var, set_var, get_vars): base64-encode
	var_names in the database.
	* monotone.texi (Internationalization): Update description of
	vars.
	* transforms.{cc,hh} ({in,ex}ternalize_var_name): Remove.
	* commands.cc (set, unset, ls_vars): Update accordingly.
	(unset): Error out if the variable doesn't exist.
	* tests/t_vars.at: Verify this works.

	* netcmd.cc (test_netcmd_functions): Properly type arguments to
	{read,write}_hello_cmd_payload.
	(write_hello_cmd_payload): Properly type arguments.
	* netcmd.hh (write_hello_cmd_payload):
	* netsync.cc (queue_hello_cmd): Adjust accordingly.
	(process_hello_cmd): More cleaning.  Also, save new server keys to
	a var, and check old server keys against the var.
	
	* tests/t_netsync_checks_server_key.at: New test.
	* testsuite.at: Add it.  Better docs for some netsync macros,
	while I'm here...
	* tests/t_netsync_absorbs.at: Add 'netsync' keyword.
	
2005-03-22  Nathaniel Smith  <njs@codesourcery.com>

	* tests/t_netsync_absorbs.at: New test.
	* testsuite.at: Add it.

	* netcmd.{cc,hh} (read_hello_cmd_payload): Properly type
	arguments.
	* netsync.cc (dispatch_payload): Adjust accordingly.  Move some
	logic into process_hello_cmd.
	(known_servers_domain): New constant.
	(process_hello_cmd): Tweak arguments appropriately.  Include logic
	formerly in dispatch_payload.  Cleanup.

	No semantic changes.
	
2005-03-21  Nathaniel Smith  <njs@codesourcery.com>

	* monotone.texi (Starting a New Project): Tweak phrasing.

2005-03-21  Nathaniel Smith  <njs@codesourcery.com>

	* commands.cc (process_netsync_client_args): If user specifies
	server/collection and there is no default, set the default.
	* tests/t_netsync_set_defaults.at: New test.
	* testsuite.at: Add it.

2005-03-21  Nathaniel Smith  <njs@codesourcery.com>

	* vocab.hh (var_key): New typedef.
	* database.{cc,hh}: Use it.  Make most var commands take it.
	* commands.cc (set, unset): Adjust accordingly.
	(default_server_key, default_collection_key): New constants.
	(process_netsync_client_args): New function.
	(push, pull, sync): Use it.

	* tests/t_netsync_defaults.at: New test.
	* testsuite.at: Add it.

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

	* change_set.cc: use std::map rather than smap for 
	confirm_unique_entries_in_directories() and confirm_proper_tree()
	since they perform a lot of insert()s.

2005-03-21  Nathaniel Smith  <njs@codesourcery.com>

	* monotone.texi (list tags, list vars, set, unset): Document.
	(Internationalization): Document vars.

2005-03-21  Nathaniel Smith  <njs@codesourcery.com>

	* transforms.{hh,cc} ({in,ex}ternalize_var_{name,domain}): New
	functions.
	* vocab_terms.hh (base64<var_value>): Declare template.
	* database.hh (get_vars): Simplify API.
	* database.cc (get_vars, get_var, var_exists, set_var, clear_var):
	Implement.
	* commands.cc (set, unset): New commands.
	(ls): New "vars" subcommand.
	* tests/t_vars.at: Fix.  Un-XFAIL.
	
2005-03-21  Nathaniel Smith  <njs@codesourcery.com>

	* transforms.{cc,hh}: Remove tabs.

2005-03-20  Nathaniel Smith  <njs@codesourcery.com>

	* tests/t_vars.at: New test.
	* testsuite.at: Add it.

2005-03-20  Nathaniel Smith  <njs@codesourcery.com>

	* schema.sql (db_vars): New table.
	* database.cc (database::database): Update schema id.
	* schema_migration.cc (migrate_client_to_vars): New function.
	(migrate_monotone_schema): Use it.
	* tests/t_migrate_schema.at: Another schema, another test...
	
	* vocab_terms.hh (var_domain, var_name, var_value): New types.
	* database.hh (get_vars, get_var, var_exists, set_var, clear_var):
	Prototype new functions.
	
2005-03-20  Derek Scherger  <derek@echologic.com>

	* file_io.cc (book_keeping_file): return true only if first
	element of path is MT, allowing embedded MT elements
	(walk_tree_recursive): check relative paths for ignoreable book
	keeping files, rather than absolute paths
	(test_book_keeping_file): add fs::path tests for book keeping
	files
	* tests/t_add_intermediate_MT_path.at: un-XFAIL, fix some problems
	with commas, add tests for renames and deletes with embedded MT
	path elements.

2005-03-20  Nathaniel Smith  <njs@codesourcery.com>

	* monotone.texi: Add some missing @sc{}'s.
	* cryptopp/config.h: Use "mt-stdint.h", not <stdint.h>, for
	portability.

2005-03-19  Nathaniel Smith  <njs@codesourcery.com>

	* Makefile.am (EXTRA_DIST): Add UPGRADE and README.changesets.
	* debian/files: Auto-updated by dpkg-buildpackage.

	* This is the 0.17 release.
	
2005-03-18  Nathaniel Smith  <njs@codesourcery.com>

	* Makefile.am (MOST_SOURCES): Add package_{full_,}revision.h.
	* NEWS: Fill in date.
	* debian/copyright: Update from AUTHORS.
	* configure.ac: Bump version number to 0.17.
	* debian/changelog, monotone.spec: Update for release.
	* po/monotone.pot: Auto-updated by distcheck.

2005-03-18  Christof Petig <christof@petig-baender.de>

	* sqlite/*: Imported sqlite version 3.1.6 tree

2005-03-18  Nathaniel Smith  <njs@codesourcery.com>

	* monotone.1, commands.cc, Makefile.am: Fixup after merge.

2005-03-18  Nathaniel Smith  <njs@codesourcery.com>

	* path_component (split_path): Fix bug.
	Also, add unit tests for file.
	* unit_tests.{hh,cc}: Add path_component unit tests.
	
2005-03-18  Nathaniel Smith  <njs@codesourcery.com>

	* Makefile.am: Fixup after merge.
	
2005-03-18  Nathaniel Smith  <njs@codesourcery.com>

	* change_set.cc: Move path_component stuff to...
	* path_component.{hh,cc}: ...these new files.
	* Makefile.am: Add them.

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

	* txt2c.cc: add --no-static option
	* Makefile.am, package_revision.h, package_full_revision.h:
	create revision info files as standalone .c files to speed
	compilation (mt_version.cc doesn't need to recompile each time)

2005-03-17  Derek Scherger  <derek@echologic.com>

	* INSTALL: add note about creating a ./configure script

2005-03-16  Nathaniel Smith  <njs@codesourcery.com>

	* UPGRADE: Finish, hopefully.
	* monotone.texi (db check): Be more clear about what is normally
	checked, and when 'db check' is useful.

2005-03-16  Patrick Mauritz <oxygene@studentenbude.ath.cx>

	* monotone.texi (Hook Reference): Typo.

2005-03-16  Nathaniel Smith  <njs@codesourcery.com>

	* monotone.texi: Add Derek Scherger to the copyright list.
	Various tweaks.
	(Starting a New Project): Rewrite to clarify that only Jim runs
	"setup", and explain why.
	(Network Service): Add a note that most people do use a central
	server, since people on the mailing list seem to perhaps be
	getting the wrong idea.
	(Making Changes): Expand a little on what the "." in "checkout ."
	means, since people seem to accidentally checkout stuff into real
	directories.
	(db check): Add much verbiage on the implications
	of various problems, and how to fix them.  Also clarify some
	wording.
	* NEWS: Small tweaks.
	* UPGRADE: More instructions, not done yet...
	
2005-03-15  Matt Johnston  <matt@ucc.asn.au>

	* commands.cc, monotone.texi, monotone.1: mention that agraph
          output is in VCG format.

2005-03-14  Nathaniel Smith  <njs@codesourcery.com>

	* commands.cc (cat): 'cat file REV PATH'.
	* monotone.texi: Mention it.
	* tests/t_cat_file_by_name.at: New test.
	* testsuite.at: Add it.

2005-03-11  Nathaniel Smith  <njs@codesourcery.com>

	* automate.cc (automate_heads): Remove app.initialize call.
	* revision.cc, revision.hh (calculate_arbitrary_change_set): New
	function.
	(calculate_composite_change_set): Touch more sanity checking.

	* commands.cc (update): Use it.

2005-03-10  Derek Scherger  <derek@echologic.com>

	* app_state.cc (set_restriction): adjust bad path error message
	* commands.cc (get_valid_paths): refactor into ...
	(extract_rearranged_paths): ... this
	(extract_delta_paths): ... this
	(extract_changed_paths): ... this
	(add_intermediate_paths): ... and this
	(restrict_delta_map): new function
	(calculate_restricted_change_set): new function
	(calculate_restricted_revision):
	(ls_missing):
	(revert): rework using new valid path functions
	(do_diff): adjust --revision variants to work with restrictions
	* tests/t_diff_restrict.at: un-XFAIL

2005-03-09  Jon Bright <jon@siliconcircus.com>
	* win32/monotone.iss: Install the many-files version of the
	docs, install the figures, create a start-menu icon for the
	docs.
	* Makefile.am: Make docs generation work with MinGW

2005-03-09  Jon Bright <jon@siliconcircus.com>
	* win32/monotone.iss: Monotone -> monotone

2005-03-09  Jon Bright <jon@siliconcircus.com>
	* win32/monotone.iss: Added an Inno Setup script for 
	generating a Windows installer.  Inno Setup is GPLed, see
	http://www.jrsoftware.org for download

2005-03-09  Jon Bright <jon@siliconcircus.com>
	* t_diff_binary.at: binary.bz.b64 -> binary.gz.b64

2005-03-08  Derek Scherger  <derek@echologic.com>

	* Makefile.am: adjust for fsck rename
	* commands.cc (db fsck): rename to db check and add short help;
	adjust for fsck file renames
	* database.{cc,hh}: minor alignment adjustments
	(get_statistic): remove redundant method
	(info): use count in place of get_statistic
	(count): return unsigned long instead of int
	(get_keys): new method
	(get_public_keys): new method
	(get_private_keys): rewrite using get_keys
	(get_certs): new method to get all certs in database from
	specified table
	(get_revision_certs): ditto
	* fsck.{cc,hh}: rename to...
	* database_check.{cc,hh}: ...this; add key, cert and sane revision
	history checking
	* monotone.1: document db dump/load/check commands
	* monotone.texi: document db check command
	* tests/t_fsck.at: rename to...
	* tests/t_database_check.at: ...this; and add tests for key and
	cert problems
	* testsuite.at: account for new test name

2005-03-08  Nathaniel Smith  <njs@codesourcery.com>

	* ChangeLog: Insert some missing newlines.
	* NEWS: Note file format changes.
	* file_io.cc (tilde_expand): Clarify error message.

2005-03-08  Nathaniel Smith  <njs@codesourcery.com>

	* keys.{cc,hh} (require_password): Simplify interface, do more
	work.
	* rcs_import.cc (import_cvs_repo): Update accordingly.
	* commands.cc (server): Likewise.
	* revision.cc (build_changesets_from_existing_revs) 
	(build_changesets_from_manifest_ancestry): Require passphrase
	early.

2005-03-08  Nathaniel Smith  <njs@codesourcery.com>

	* NEWS, INSTALL, README.changesets: Update in preparation for
	0.17.
	* UPGRADE: New file.
	
	* tests/t_diff_restrict.at: Oops.  XFAIL it.
	
2005-03-08  Jon Bright  <jon@siliconcircus.com>
	
	* win32/process.cc (process_spawn): Escape the parameters,
	surround them with quotes before adding them to the consolidated
	command line string
	* mkstemp.cc (monotone_mkstemp): Now takes a std::string&, and
	returns the *native* form of the path in this.
	* mkstemp.hh: Now always use monotone_mkstemp
	(monotone_mkstemp): Update prototype
	* lua.cc (monotone_mkstemp_for_lua): Use new-style 
	monotone_mkstemp

2005-03-08  Jon Bright  <jon@siliconcircus.com>
	
	* win32/read_password.cc (read_password): Now correctly hides 
	password when run in a Windows console.  Does at least enough in
	a MinGW rxvt console to make sure that you can't see the password.
	* win32/process.cc: Change indentation.
	(process_spawn): Log commands executed, as for unix process.cc

2005-03-07  Nathaniel Smith  <njs@codesourcery.com>

	* tests/t_diff_restrict.at: New test.
	* testsuite.at: Add it.

2005-03-05  Nathaniel Smith  <njs@codesourcery.com>

	* netsync.cc (encountered_error, error): New variable and method.
	(session::session): Initialize encountered_error.
	(write_netcmd_and_try_flush, read_some, write_some): Check it.
	(queue_error_cmd): Consider it like sending a goodbye.
	(process_error_cmd): Throw an exception instead of considering it
	a goodbye.
	(process_data_cmd): Call error() if epochs don't match.
	* tests/t_epoch.at, tests/t_epoch_server.at: More minor tweaks.
	Expect failed pulls to exit with status 0.  This isn't really
	correct, but looks complicated to fix...

2005-03-05  Nathaniel Smith  <njs@codesourcery.com>

	* testsuite.at (NETSYNC_SERVE_N_START): New macro.
	* tests/t_epoch_server.at: Misc. fixes.

	* netsync.cc (session::session): Don't open valve yet.
	(maybe_note_epochs_finished): New method to open
	valve.
	(process_done_cmd, process_data_cmd): Call it.
	(rebuild_merkle_trees): Actually calculate hashes for epoch merkle
	trees.  Also, only include epochs that meet the branch mask.
	(session): Remove unused id_to_epoch map.
	
2005-03-05  Nathaniel Smith  <njs@codesourcery.com>

	* netcmd.cc (read_netcmd_item_type): Handle epoch_item.
	(test_netcmd_functions): Update for new confirm_cmd_payload
	format.
	* netsync.cc (process_confirm_cmd): Cut and paste error.

2005-03-05  Nathaniel Smith  <njs@codesourcery.com>

	* constants.{cc,hh}: Add new epochlen, epochlen_bytes constants.
	* vocab_terms.hh, vocab.hh: Add new epoch_data type.  Add predeclarations
	for it.
	* commands.cc (ls_epochs):
	* revision.cc (
	* database.hh:
	* database.cc: Update for epoch_data.  Add get_epoch, epoch_exists
	methods.
	* epoch.{cc,hh}: New files.
	* netsync.cc: Actually implement epochs-via-merkle code.

2005-03-04  Nathaniel Smith  <njs@codesourcery.com>

	* schema.sql (branch_epochs): Add 'hash' field.
	* schema_migration.cc: Fixup for.
	* database.cc (database): Change schemas.
	* tests/t_migrate_schema.at: Replace epoch db test case with one
	with new schema.

2005-03-03  Nathaniel Smith  <njs@codesourcery.com>

	* netsync.cc (session::id_to_epoch): New variable.
	(session::session): Create refinement and requested item tables
	for epochs.
	(rebuild_merkle_trees): Fill epoch merkle tree and id_to_epoch
	table.

	* netsync.cc (queue_confirm_cmd, process_confirm_cmd) 
	(dispatch_payload, rebuild_merkle_trees): 
	* netcmd.hh:
	* netcmd.cc (read_confirm_cmd_payload, write_confirm_cmd_payload):
	Remove epochs.

2005-02-27  Nathaniel Smith  <njs@codesourcery.com>

	* constants.cc:
	* revision.cc:
	* testsuite.at: 
	* commands.cc:
	* ChangeLog: Fixup after merge.

2005-02-27  Nathaniel Smith  <njs@codesourcery.com>

	* merkle_tree.hh (netcmd_item_type): Add epoch_item.
	* merkle_tree.cc (netcmd_item_type_to_string): Handle epoch_item.

	* packet.hh, packet.cc (struct packet_db_valve): New class.
	* netsync.cc (session): Use a valved writer.

2005-02-26  Nathaniel Smith  <njs@codesourcery.com>

	* merkle_tree.hh: Fix comment.
	Remove prototypes for non-existing functions.

2005-02-26  Nathaniel Smith  <njs@codesourcery.com>

	* tests/t_epoch_unidirectional.at: New test.
	* testsuite.at: Add it.

2005-02-26  Nathaniel Smith  <njs@codesourcery.com>

	* tests/t_epoch.at: Even more paranoid.
	* tests/t_epoch_server.at: New test.
	* testsuite.at: Add it.
	
2005-02-21  Nathaniel Smith  <njs@codesourcery.com>

	* tests/t_epoch.at: Check that netsync only sends relevant
	epochs, and be a little more paranoid.

2005-02-19  Nathaniel Smith  <njs@codesourcery.com>

	* revision.cc (struct anc_graph): Fixup after merge.

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

	* database.cc (set_epoch): Fix SQL.
	* monotone.texi (Rebuilding ancestry): Reword a bit.
	* netcmd.{cc,hh} 
	({read,write}_hello_cmd_payload): Transfer server key with hello.
	({read,write}_confirm_cmd_payload): Transfer epoch list with confirm.
	* netsync.cc: Adapt to changes in netcmd.
	(rebuild_merkle_trees): Set nonexistent epochs to zero before sync.
	* revision.cc (anc_graph): Randomize epochs on rebuild.
	* tests/t_epoch.at: Fix up to test slightly new semantics.

2005-02-07  Nathaniel Smith  <njs@codesourcery.com>

	* monotone.1: Add more db commands.
	* monotone.texi: Document db rebuild.  Add section on rebuilding
	ancestry and epochs.

2005-02-06  graydon hoare  <graydon@pobox.com>

	* commands.cc (db): Add epoch commands.
	(list): Likewise.
	Also remove some unneeded transaction guards.
	* database.{cc,hh} (get_epochs): New function.
	(set_epoch): Likewise.
	(clear_epoch): Likewise.
	Also remove all persistent merkle trie stuff.
	* schema.sql: Add epochs, remove tries.
	* schema_migration.cc: Update.
	* tests/t_epoch.at: New test.
	* tests/t_migrate_schema.at: Update.
	* testsuite.at: Add some new helpers, call t_epoch.at.
	* vocab.hh (epoch_id): Define.
	* vocab_terms.hh (epoch): Define.

2005-02-05  Nathaniel Smith  <njs@codesourcery.com>

	* merkle_tree.hh: Remove mcert_item and fcert_item, rename
	rcert_item to cert_item, renumber to remove gaps left.
	* merkle_tree.cc (netcmd_item_type_to_string):
	* netcmd.cc (read_netcmd_item_type): 
	* netsync.cc: Adjust accordingly.
	
2005-02-05  Nathaniel Smith  <njs@codesourcery.com>

	* constants.cc (constants): Bump netsync protocol version.

2005-03-07  Nathaniel Smith  <njs@codesourcery.com>

	* lua.cc (monotone_spawn_for_lua): Minimal change to get arguments
	in right order.  Still needs hygienic cleanups...
	* tests/t_can_execute.at: Run 'cp' instead of 'touch', because cp
	will actually notice if we pass arguments out of order.
	* testsuite.at: Remove mysterious blank line.
	
2005-03-07  Nathaniel Smith  <njs@codesourcery.com>

	* unix/process.cc (process_spawn): Log command line before
	executing.

2005-03-07  Nathaniel Smith  <njs@codesourcery.com>

	* revision.cc (kill_redundant_edges): Rename back to...
	(kluge_for_3_ancestor_nodes): ...this.  Go back to only cleaning
	up parents of 3+ parent nodes.
	(analyze_manifest_changes): Take a third argument, of files whose
	ancestry needs splitting.
	(construct_revision_from_ancestry): Make more more complex, in
	order to properly track file identity in merges.

2005-03-05  Nathaniel Smith  <njs@codesourcery.com>

	* revision.cc (check_sane_history): Typo.
	
2005-03-05  Nathaniel Smith  <njs@codesourcery.com>

	* revision.hh (check_sane_history): Take an app_state instead of a
	database as an argument.
	* database.cc: Pass an app_state instead of a database as its
	argument. 
	* revision.cc (check_sane_history): Update accordingly.  Add a new
	check for merges, that they are creating consistent changesets
	(even when the common ancestor is outside of the usual
	paranoia-checking search depth).

2005-03-05  Nathaniel Smith  <njs@codesourcery.com>

	* revision.cc (kluge_for_3_ancestor_nodes): Rename to...
	(kill_redundant_edges): ...this.  Kill all redundant edges, not
	just ones on nodes with 3+ parents.  Also, make it actually work.
	
2005-03-05  Nathaniel Smith  <njs@codesourcery.com>

	* revision.cc (kluge_for_3_ancestor_nodes): New method.
	(rebuild_ancestry): Call it.

2005-03-03  Nathaniel Smith  <njs@codesourcery.com>

	* revision.cc (check_sane_history): Print a warning to let the
	user know why things like 'pull' can take so long.
	* netsync.cc: Remove a few tabs.

2005-03-04  Jon Bright  <jon@siliconcircus.com>
	
	* win32/process.cc (process_spawn): Now takes 
	const char * const argv[]
	* unix/process.cc (process_spawn): Ditto.  Cast for call to
	execvp
	(existsonpath): Initialise args in a const way

2005-03-04  Jon Bright  <jon@siliconcircus.com>
	
	* win32/process.cc (process_spawn): Now takes 
	char * const argv[]
	* platform.hh (process_spawn): Ditto
	* unix/process.cc (process_spawn): Ditto
	* lua.cc (monotone_spawn_for_lua): Remove debug code
	* General: Beginning to hate C++'s const rules

2005-03-04  Jon Bright  <jon@siliconcircus.com>
	
	* win32/process.cc (process_spawn): Now takes 
	const char * const *
	* platform.hh (process_spawn): Ditto
	* unix/process.cc (process_spawn): Ditto
	* General: Sorry about all these commits, I'm syncing back and
	forth between Linux and Win32

2005-03-04  Jon Bright  <jon@siliconcircus.com>
	
	* win32/process.cc (process_spawn): Now takes char * const *
	* platform.hh (process_spawn): Ditto
	* unix/process.cc (process_spawn): Ditto
	(existsonpath): argv now const char*[]

2005-03-04  Jon Bright  <jon@siliconcircus.com>
	
	* win32/process.cc: Added forgotten file
	* unix/process.cc: Include stat.h, (process_*) fix compilation
	errors

2005-03-04  Jon Bright  <jon@siliconcircus.com>
	
	* unix/process.cc: Added forgotten file

2005-03-03  Jon Bright  <jon@siliconcircus.com>
	
	* lposix.c: Deleted
	* win32/process.cc: Created, added Win32 versions of functions
	existsonpath, make_executable, process_spawn, process_wait,
	process_kill, process_sleep
	* unix/process.cc: Ditto, for the Unix versions.
	* lua.cc: Add LUA wrappers for the above functions, register
	them with LUA
	* std_hooks.lua (execute, attr_functions->execute, 
	program_exists_in_path): Use the new functions instead of posix
	functions
	* t_can_execute.at (touchhook.lua): Ditto

2005-03-01  Derek Scherger  <derek@echologic.com>

	* app_state.cc (set_restriction): actually ignore ignored files
	rather than trying to validate them

2005-03-01  Derek Scherger  <derek@echologic.com>

	* tests/t_diff_binary.at: new test (bug report)
	* tests/t_command_completion.at: new test
	* tests/t_merge_rename_file_and_rename_dir.at: new test
	* testsuite.at: include new tests
	
2005-02-28  Richard Levitte  <richard@levitte.org>

	* Makefile.am (BUILT_SOURCES_CLEAN): Moved mt-stding.h from here...
	(DISTCLEANFILES): ... to here.  Since mt-stding.h is created by
	config.status, it should only be removed by the distclean target.

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

	* std_hooks.lua: posix.iswin32() == 1, rather than plain boolean
	comparison (0 doesn't compare as false in lua it seems).

2005-02-27  Jon Bright  <jon@siliconcircus.com>
	
	* lposix.c (win32 Pspawn): Search the path
	(win32 Pexistsonpath): Added.  'which' isn't easily available,
	and not available at all from a normal Win32 command shell
	(Piswin32): Added a function for both Unix and Win32 to detect
	if running on Windows
	* std_hooks.lua (program_exists_in_path): Now calls 
	posix.iswin32.  If win32, calls posix.existsonpath, otherwise
	calls which as it always did.

2005-02-27  Jon Bright  <jon@siliconcircus.com>
	
	* lposix.c (win32 Pspawn): Remove dumb strlen bug resulting in
	AVs on commit.

2005-02-27  Jon Bright  <jon@siliconcircus.com>
	
	* t_can_execute.at: Test to see if hooks can execute things
	* testsuite.at: Add t_can_execute

2005-02-27  Jon Bright  <jon@siliconcircus.com>
	
	* lposix.c (win32 Pspawn): Ensure the command string is always
	NUL-terminated.  Also, allocate enough memory for the quotes
	around the command string.

2005-02-27  Jon Bright  <jon@siliconcircus.com>
	
	* xdelta.cc (unittests): Define BOOST_STDC_NO_NAMESPACE, needed
	to compile with the latest MinGW which uses gcc 3.4.2
	* vocab.cc (verify(local_path)): Catch fs::filesystem_error too
	and rethrow this as an informative_failure, thereby fixing the
	Win32 unit tests without disabling anything
	* idna/toutf8.c (stringprep_convert): Fix a potential segfault
	when memory allocation fails.  Potentially security-relevant.
	* tests/t_i18n_file.at: Add a SET_FUNNY_FILENAME macro, which 
	gets a platform-appropriate funny filename (with/without 
	colon).  
	Change references to utf8 to utf-8, iso88591 to iso-8859-1, and
	eucjp to euc-jp, on the grounds that MinGW's iconv knows all
	of the latter and none of the former, but Linux iconv knows all
	of them.  Test now passes one Win32.  I'm presuming we weren't
	deliberately using non-standard names for charsets here.
	* tests/t_i18n_changelog.at: Same charset name changes.
	* tests/t_dump_load.at: Canonicalise dump before loading it
	* tests/t_load_into_existing.at: Ditto
	* tests/t_fmerge.at: Canonicalise fmerge output
	* tests/t_merge_normalization_edge_case.at: Ditto
	* tests/t_unidiff.at: Canonicalise diff output
	* tests/t_largish_file.at: Instead of using dd, which MinGW
	doesn't have, I've generated the file with dd on a nearby Linux
	box, then gziped and b64ed it, and the test case now generates
	it with UNGZB64
	* testsuite.at: Add a comment every 10 tests with the test
	number.  Useful if you're trying to locate which test number
	you're trying to run and only have the filename.  If people 
	hate this, though, please do delete.
	(UNB64_COMMAND) Do special handling for Win32 to avoid
	having to canonicalise the file.
	(UNGZ_COMMAND) Canonicalise the file after ungzipping it.
	* lposix.c: (Pfork, Pexec) Removed, on the grounds that we only
	really want to support fork+exec as a single operation.  fork()
	without exec() could be risky with a child process also having
	our sqlite handles, etc.  exec() could be risky since we 
	wouldn't be exiting gracefully, just dying in the middle of a
	hook.
	(Pspawn) Implemented for both Win32 and Unix.  Does fork/exec
	for Unix, CreateProcess for Win32.  Returns -1 on error, pid on
	success in both cases.
	(Pwait, Pkill, Psleep) Implemented for Win32.  Note that pid is
	not optional for Pwait on Win32.
	* std_hooks.lua: (execute) Now uses spawn()

2005-02-25  Jon Bright  <jon@siliconcircus.com>
	
	* ChangeLog: Add all my previous changes.
	* tests/t_add_owndb.at: Add test for trying to add the db to
	itself.
	* testsuite.at: Call it
	* tests/t_automate_heads.at: Canonicalise stdout output.
	* tests/t_automate_version.at: Use arithmetic comparison against
	wc output instead of string comparison, to avoid problems with
	MinGW's wc, which outputs with initial space-padding
	* tests/t_change_empty_file.at: Canonicalise stdout output 
	and compare manually instead of letting autotest check it
	* tests/t_fmerge_normalize.at: Canonicalise stdout output.
	* tests/t_netsync_single.at: Use NETSYNC_KILLHARD instead of 
	killall, as for the NETSYNC functions in testsuite.at

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

        * main.cc: ignore SIGPIPE so that monotone won't be killed
        unexpectedly upon remote disconnection for netsync

2005-02-27  Nathaniel Smith  <njs@codesourcery.com>

	* idna/idn-int.h: Oops, really add this time.

2005-02-27  Nathaniel Smith  <njs@codesourcery.com>

	* AUTHORS: Add Corey Halpin.
	
	* idna/idn-int.h: New file (don't generate from configure anymore,
	but just ship).
	* configure.ac: Don't generate idna/idn-int.h.  Do generate
	mt-stdint.h.
	* Makefile.am: Adjust for idna/idn-int.h and mt-stdint.h.
	* acinclude.m4: Remove AX_CREATE_STDINT_H, ACX_PTHREAD,
	AC_COMPILE_CHECK_SIZEOF (let aclocal pick them up from m4/
	instead).
	* m4/ax_create_stdint_h.m4:
	* m4/acx_pthread.m4: Update from http://autoconf-archive.cryp.to/
	
	* numeric_vocab.hh: Instead of dancing around which header to
	include, include mt-stdint.h.
	
	* app_state.cc (restriction_includes, set_restriction): Move
	global static 'dot' into these functions, because file_path
	depends on global book_keeping_dir being initialized already, and
	there is no guaranteed order of initialization of C++ statics.
	(Bug reported by Matt Johnston.)
	
2005-02-27  Corey Halpin  <chalpin@cs.wisc.edu>

	* numeric_vocab.hh: Try both stdint.h and inttypes.h.
	* main.cc: OpenBSD has Unix signals too.

2005-02-26  Derek Scherger  <derek@echologic.com>

	* file_io.cc (absolutify): normalize fs::path to remove ..'s
	* tests/t_db_with_dots.at: ensure database path in MT/options
	doesn't contain ..'s

2005-02-25  Jon Bright  <jon@siliconcircus.com>
	
	* ChangeLog: Add all my previous changes.
	* tests/t_add_owndb.at: Add test for trying to add the db to
	itself.
	* testsuite.at: Call it
	* tests/t_automate_heads.at: Canonicalise stdout output.
	* tests/t_automate_version.at: Use arithmetic comparison against
	wc output instead of string comparison, to avoid problems with
	MinGW's wc, which outputs with initial space-padding
	* tests/t_change_empty_file.at: Canonicalise stdout output 
	and compare manually instead of letting autotest check it
	* tests/t_fmerge_normalize.at: Canonicalise stdout output.
	* tests/t_netsync_single.at: Use NETSYNC_KILLHARD instead of 
	killall, as for the NETSYNC functions in testsuite.at

2005-02-25  Nathaniel Smith  <njs@codesourcery.com>

	* vocab.cc (test_file_path_verification): Re-enable some tests
	disabled by Jon Bright, following discussion on IRC concluding
	that they were catching a real bug.

2005-02-24  Nathaniel Smith  <njs@codesourcery.com>

	* tests/t_add_dot.at: Run "add ." in a subdirectory, so as not to
	add the test database.  (Reported by Jon Bright.)

	* AUTHORS: Fix gettext.h copyright note, to not be in the middle
	of libidn copyright note.
	Add Jon Bright.

2005-02-24  Jon Bright  <jon@siliconcircus.com>

	* app_state.cc (prefix): Use string() instead of 
	native_directory_string().  For Unix, these should be equivalent.
	For Win32, I believe string()'s correct (since we compare 
	everywhere against normalized paths with / characters, but 
	native_directory_string produces paths with \ characters on Win32.
	* rcs_file.cc (file_source): Map the map, not the mapping.
	* tests/t_i18n_file.at: Remove colon from filename with symbols.
	I need to return to this and add a proper test for Win32, so we
	only use the colon on non-Win32.
	* testsuite.at: Add a CANONICALISE function, which does nothing
	on Unix and strips out carriage returns from files on Win32.  This
	is useful for being able to compare Monotone's stdout output to
	files on disk.  Add NETSYNC_KILL and NETSYNC_KILLHARD functions,
	to deal with MinGW not having killall (Unix still uses killall,
	though).
	* tests/t_import.at: Add CANONICALISE calls before comparing
	stdout output.
	* tests/t_netsync.at: Likewise
	* tests/t_netsync_single.at: Likewise
	* tests/t_scan.at: Likewise
	* tests/t_versions.at: Likewise
	* tests/t_ls_missing.at: Likewise.  Also, generate missingfoo and
	missingbar files with expected output from ls missing for these
	files being missing and compare against those.

2005-02-24  Derek Scherger  <derek@echologic.com>

	* app_state.{cc,hh} (add_restriction): rename to ...
	(set_restriction) this; and add path validation
	* commands.cc (get_valid_paths): new function
	(get_path_rearrangement) remove restricted include/exclude variant
	(calculate_restricted_revision) get valid paths and use to set up
	restriction
	(status, ls_unknown, commit, do_diff) pass args to
	calculate_restricted_revision to valid restriction paths
	(ls_missing, revert) get valid paths and use to set up restriction
	* tests/t_checkout_options.at: remove bug report priority (it's
	fixed!)
	* tests/t_diff_added_file.at: add --revision options to diff
	* tests/t_restrictions.at: remove invalid paths from ls unknown
	and ls ignored
	* tests/t_restrictions_warn_on_unknown.at: un-XFAIL
	
2005-02-23  Derek Scherger  <derek@echologic.com>

	* commands.cc (ls_missing): replace duplicated code with call to
	calculate_base_revision

2005-02-23  Jon Bright  <jon@siliconcircus.com>
	
	* vocab.cc (test_file_path_verification): Disable foo//nonsense
	test for Win32, add tests for UNC paths.  This was the only
	failing unit test on Win32.

2005-02-23  Jon Bright  <jon@siliconcircus.com>

	* txt2c.cc (main): Don't claim the file was generated from 
	--strip-trailing if that option's used.

2005-02-23  Jon Bright  <jon@siliconcircus.com>

	* app_state.cc: Add include of io.h for Win32, for chdir()
	* file_io.cc (get_homedir): Correct assertion (remove bracket)
	* lua/lposix.c, lua/modemuncher.c: Remove all references to
	functions and modes that don't exist on Win32.
	* monotone.cc: Include libintl.h on Win32
	
2005-02-21  Nathaniel Smith  <njs@codesourcery.com>

	* file_io.cc (get_homedir): Add more comments and logging to Win32
	version.  Also, only check HOME under Cygwin/MinGW.

2005-02-21  Derek Scherger  <derek@echologic.com>

	* Makefile.am: merge fixup
	
2005-02-21  Derek Scherger  <derek@echologic.com>

	* Makefile.am: add fsck.{cc,hh}
	* commands.cc(check_db): move to ...
	* fsck.{cc,hh}: here and do lots more checking
	* database.{cc,hh}(get_ids): new method
	(get_file_ids,get_manifest_ids,get_revision_ids): more new methods
	* tests/t_fsck.at: new test
	* testsuite.at: call it
	
2005-02-21  Nathaniel Smith  <njs@codesourcery.com>

	* commands.cc (commit): Simplify chatter.

2005-02-21  Nathaniel Smith  <njs@codesourcery.com>

	* file_io.cc (get_homedir): Check more environment variables in
	Win32 version.

2005-02-21  Nathaniel Smith  <njs@codesourcery.com>

	* file_io.cc: Remove tabs.

2005-02-21  Nathaniel Smith  <njs@codesourcery.com>

	* smap.hh (smap): Remove leading underscores, add comments.

2005-02-20  Nathaniel Smith  <njs@codesourcery.com>

	* std_hooks.lua (merge2, merge3): Check for DISPLAY before
	invoking gvim.

2005-02-20  Julio M. Merino Vidal  <jmmv@NetBSD.org>

	* ChangeLog: Use tabs for indentation rather than spaces.  Drop
	trailing whitespace.  While here, fix a date by adding zeros before
	the month and the day number.

2005-02-20  Julio M. Merino Vidal  <jmmv@NetBSD.org>

	* gettext.h: Add file.
	* AUTHORS: Mention that it comes from the GNU Gettext package.
	* Makefile.am: Distribute it.
	* sanity.hh: Use gettext.h rather than libintl.h so that --disable-nls
	works.  Also improves portability, according to the GNU Gettext
	manual.

2005-02-19  Derek Scherger  <derek@echologic.com>

	* automate.cc (automate_heads): remove bogus call to 
	app.allow_working_copy() which is called in cpp_main
	* database.cc (check_sqlite_format_version): don't check database
	version when "file" is really a directory; add filename to error
	message
	(sql): check for empty database early, even though this seems
	impossible as absolutify changes "" into path to working dir;
	convert to use N-style assertions; add check to ensure "file" is
	not really a directory
	* tests/t_db_missing.at: new test for above problems
	* testsuite.at: call it

2005-02-19  Nathaniel Smith  <njs@codesourcery.com>

	* tests/t_add_intermediate_MT_path.at: Tighten up.

	* tests/t_merge_3.at: New test.
	* tests/t_merge_4.at: Likewise.
	* testsuite.at: Add them.

2005-02-19  Ole Dalgaard  <josua+monotone@giraffen.dk>

	* configure.ac: Check for 64-bit versions of Boost static
	libraries.

2005-02-18  Julio M. Merino Vidal  <jmmv@NetBSD.org>

	* INSTALL:
	* configure.ac: Improve Boost detection by trying several possible
	library suffixes before aborting.

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

	* change_set.cc
	(apply_change_set): Avoid fast path when there are adds.
	(apply_path_rearrangement): Likewise.

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

	* automate.cc (automate_heads): Fix initialize() call.
	* change_set.{cc,hh}
	(apply_path_rearrangement): Add quick version.
	* revision.cc
	(check_sane_history): Use quick version of apply_change_set.
	* work.cc
	(build_addition): Use quick version of apply_path_rearrangement.
	(known_preimage_path): Likewise.
	* testsuite.at: Fix definitions of _ROOT_DIR, add --norc some
	places.
	* AUTHORS: Mention Daniel.

2005-02-18  Daniel Berlin  <dberlin@dberlin.org>

	* xdelta.cc (compute_delta_insns): Correct 1-byte-source bug.

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

	* Makefile.am (MOST_SOURCES): Add smap.hh.

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

	* basic_io.{cc,hh}: Inline some stuff.
	* change_set.cc: Use smap various places, reduce to 32-bit tids.
	* commands.cc: Use shared_ptr<change_set> everywhere.
	* netsync.cc: Likewise.
	* rcs_import.cc: Likewise.
	* revision.{cc,hh}: Likewise.
	* smap.hh: New file.

2005-02-18  Julio M. Merino Vidal  <jmmv@NetBSD.org>

	* INSTALL:
	* configure.ac: Improve Boost detection by trying several possible
	library suffixes before aborting.

2005-02-17  Derek Scherger  <derek@echologic.com>

	* tests/t_add_intermediate_MT_path.at: new test
	* testsuite.at: call it

2005-02-17  Julio M. Merino Vidal  <jmmv@NetBSD.org>

	* testsuite.at:
	* tests/t_change_empty_file.at: Verify that modifying an empty file
	creates a patch revision rather than an add/delete sequence.  The
	incorrect behavior was reported in bug #9964.

2005-02-17  Derek Scherger  <derek@echologic.com>

	* app_state.{cc,hh} (app_state): initialize search root
	(initialize): boolean signature variant renamed to ...
	(allow_working_copy): this; add explicit search root; move
	requirement for working copy to ...
	(require_working_copy): this new method
	(initialize): string signature variant renamed to ...
	(create_working_copy): this
	(set_root): new method
	* commands.cc: remove app.initialize(false) calls; replace
	app.initialize(true) with app.require_working_copy(); replace
	app.initialize(dir) with app.create_working_copy(dir)
	(checkout): ensure revision is member of specified branch
	* file_io.{cc,hh} (find_working_copy): stop search at --root if
	specified
	* monotone.cc (OPT_ROOT): new option
	(cpp_main): call app.allow_working_copy() before executing
	commands to always read default options
	* monotone.1: add --root option
	* monotone.texi: add --root option
	* tests/t_checkout_noop_on_fail.at: un-XFAIL
	* tests/t_checkout_options.at: un-XFAIL, add check for specified
	revision not in specified branch
	* testsuite.at: add --root option to MONOTONE to prevent searching
	above test dir
	* vocab.cc: remove redundant forward declaration

2005-02-16  Derek Scherger  <derek@echologic.com>

	* commands.cc (revert): don't rewrite unchanged files
	* tests/t_revert_unchanged.at: new test
	* testsuite.at: call it

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

	* database.cc (sqlite3_unpack_fn): new function for viewing
	base64, gzipped data
	(install_functions): install it
	(rehash): remove unused obsolete fcerts ticker

2005-02-17  Nathaniel Smith  <njs@codesourcery.com>

	* debian/changelog: s/graydon@mogo/graydon@pobox.com/, to make
	lintian happy.
	* debian/rules (config.status): Remove --with-bundled-adns.
	* debian/control (Build-Depends): Don't Build-Depend on libpopt,
	only libpopt-dev.
	* .mt-attrs (debian/control): Make executable.

2005-02-17  Nathaniel Smith  <njs@codesourcery.com>

	* tests/t_undo_update.at: Stupid typo.
	* tests/t_largish_file.at: New test.
	* testsuite.at: Add it.

	* commands.cc (push, pull, sync): Remove misleading "..." from
	help text.

2005-02-16  Julio M. Merino Vidal  <jmmv@NetBSD.org>

	* Makefile.am: Append $(BOOST_SUFFIX) to -lboost_unit_test_framework
	to fix 'make check' on systems where boost libraries can only be
	found by passing the exact suffix as part of the name.

2005-02-16  Julio M. Merino Vidal  <jmmv@NetBSD.org>

	* monotone.texi: Fix a typo (hexidecimal to hexadecimal).  Also
	change an example command to append stuff to ~/.monotonerc, instead
	of completely destroying the possibily existing file.  Addresses
	bug #11136.

2005-02-16  Julio M. Merino Vidal  <jmmv@NetBSD.org>

	* cryptopp/config.h: Use uint{8,16,32,64}_t as size types instead of
	trying to match them to unsigned char/int/long/long long respectively.
	Should fix build on FreeBSD/sparc64, as seen in bug #10203.

2005-02-16  Julio M. Merino Vidal  <jmmv@NetBSD.org>

	* INSTALL:
	* Makefile.am:
	* configure.ac: Add the --disable-large-file option to manually
	disable large file support from the builtin sqlite (compatibility
	with old systems and FAT).  Addresses bug #8380.

2005-02-16  Nathaniel Smith  <njs@codesourcery.com>

	* tests/t_undo_update.at: New todo.
	* testsuite.at: Add it.

2005-02-15  Nathaniel Smith  <njs@codesourcery.com>

	* monotone.1: Add cursory note about "automate".
	* monotone.texi: Synchronize with manpage.

2005-02-15  Nathaniel Smith  <njs@codesourcery.com>

	* automate.cc: Add "Error conditions" to the standard comment
	sections.

	* monotone.texi (Scripting): New section.
	(Automation): New section.

	* tests/t_automate_heads.at: Test behavior with nonexistent
	branch.

2005-02-14  Nathaniel Smith  <njs@codesourcery.com>

	* tests/t_merge_normalization_edge_case.at: New test.
	* testsuite.at: Add it.

	* diff_patch.cc (normalize_extents): Soften the warning message
	now that we have one test case.

2005-02-14  Matthew A. Nicholson  <mnicholson@digium.com>

	* std_hooks.lua: Add vimdiff merge hooks.

2005-02-14  Nathaniel Smith  <njs@codesourcery.com>

	* std_hooks.lua: Remove tabs.

2005-02-14  Nathaniel Smith  <njs@codesourcery.com>

	* tests/t_automate_heads.at: New test.
	* tests/t_automate_version.at: New test.
	* testsuite.at: Add then.

	* commands.cc (automate): Fix documentation string.
	* automate.cc: Much more structured documentation comments.

2005-02-13  Nathaniel Smith  <njs@codesourcery.com>

	* automate.{cc,hh}: New files.
	* commands.cc: New command "automate".

2005-02-13  Nathaniel Smith  <njs@codesourcery.com>

	* monotone.texi (Creating a Database): Fix typo, clarify
	conventions for database management following question on mailing
	list.

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

	* change_set.{cc,hh}: Correct code to pass newly-added unit tests.

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

	* monotone.1: update for restrictions
	* monotone.texi: sync with manpage

2005-02-09  Derek Scherger  <derek@echologic.com>

	* cert.cc (cert_revision_testresult): allow pass/fail testresult
	values
	* commands.cc (testresult): likewise
	* commands.cc (do_diff): disallow restriction of non-working copy
	diffs
	* monotone.texi: update for restrictions

2005-02-08  graydon hoare  <graydon@pobox.com>

	* database.cc (version_cache::set): Fix bad expiry logic.

2005-02-08  Nathaniel Smith  <njs@codesourcery.com>

	* change_set.cc (check_sane): Null sources are only valid for
	adds.

2005-02-07  Nathaniel Smith  <njs@codesourcery.com>

	* database.cc (struct version_cache): Fix invariant in cache
	clearing logic.

2005-02-06  Nathaniel Smith  <njs@codesourcery.com>

	* change_set.cc: Add a few more invariants; add lots and lots of
	unit tests.

2005-02-06  graydon hoare  <graydon@pobox.com>

	* change_set.cc: Use hash_map in a few places.
	(confirm_unique_entries_in_directories): Fix invariants.
	* constants.{cc,hh} (db_version_cache_sz): New constant.
	* database.cc (version_cache): New structure.
	(get_version): Use it.
	* interner.hh: Rewrite to use hash_map and vector.
	* tests/t_no_rename_overwrite.at: Tweak return codes.

2005-02-06  Nathaniel Smith  <njs@codesourcery.com>

	* ui.hh (ensure_clean_line): New method.
	* ui.cc (inform): Use it.
	* keys.cc (get_passphrase): Call it before prompting for passphrase.

2005-02-06  Nathaniel Smith  <njs@codesourcery.com>

	* database.cc (info): Report more statistics.

	* ROADMAP: Remove finished items.

	* revision.cc (analyze_manifest_changes): Childs cannot be null,
	that makes no sense.
	(add_node_for_old_manifest): Log node names, don't print it.
	(construct_revision_from_ancestry): Partially rewrite to handle
	root nodes explicitly.
	(build_changesets_from_existing_revs): Don't put the null revision
	in the ancestry graph, to match changesetify logic.
	(add_node_for_old_revision): Enforce decision that the ancestry
	graph not contain the null revision.

	(anc_graph::heads): Remove.
	(add_node_ancestry): Don't try creating it; logic was broken
	anyway.
	(rebuild_from_heads): Rename to...
	(rebuild_ancestry): ...this.  Calculate head set correctly.

2005-02-05  Nathaniel Smith  <njs@codesourcery.com>

	* change_set.cc (compose_path): Add more invariants.

2005-02-05  Nathaniel Smith  <njs@codesourcery.com>

	* monotone.cc (cpp_main): Log command line, to help interpret the
	logs people send in.

2005-02-05  Nathaniel Smith  <njs@codesourcery.com>

	* revision.cc (check_sane): Turn off this invariant when
	global_sanity.relaxed.

2005-02-03  Nathaniel Smith  <njs@codesourcery.com>

	* tests/t_load_into_existing.at: Oops, really add it too, sigh.

2005-02-03  Nathaniel Smith  <njs@codesourcery.com>

	* tests/t_need_mt_revision.at: Oops, really add it.

2005-02-03  Nathaniel Smith  <njs@codesourcery.com>

	* interner.hh (interner::intern): Add version taking a bool&, so
	callers can tell whether this string has previously been checked.
	* change_set.cc: Use new interned string identifier
	'path_component's instead of file_path's for components of paths;
	sanity-check each component exactly once.

2005-02-03  Nathaniel Smith  <njs@codesourcery.com>

	* database.cc (load): Check for existence of target database.
	* tests/t_load_into_existing.at: New test.
	* testsuite.at: Add it.

2005-02-03  Nathaniel Smith  <njs@codesourcery.com>

	* tests/t_checkout_dir.at: Also check that checkout to unwriteable
	directory fails.
	* tests/t_branch_checkout.at: New test.
	* testsuite.at: Add it.

	* app_state.cc (initialize): Simplify working directory
	initialization, and improve error handling.

	* keys.cc (get_passphrase): Disallow empty passphrases early
	(before they trigger an invariant down the line...).

2005-02-03  Nathaniel Smith  <njs@codesourcery.com>

	* update.cc (pick_update_candidates): Add I().
	* commands.cc (calculate_base_revision): Remove 'rev' argument,
	which was never set and callers never used.
	(calculate_base_manifest, calculate_current_revision)
	(calculate_restricted_revision, revert): Update correspondingly.
	(update): Check for null old revision.

	* main.cc (main): Make exit status 3 if we caught an unhandled
	exception, in particular so the testsuite can tell the difference
	between an error handled cleanly and an error caught by an
	invariant.
	* tests/t_update_null_revision.at: New test.
	* testsuite.at: Add it.

2005-02-03  Nathaniel Smith  <njs@codesourcery.com>

	* main.cc: Remove tabs.

2005-02-02  Nathaniel Smith  <njs@codesourcery.com>

	* change_set.cc (extract_first): Rename to...
	(extract_pairs_and_insert): ...this.
	(path_rearrangement::check_sane): Use it to add additional
	checks.

	* work.hh: Update comments (MT/manifest doesn't exist
	anymore...).

	* tests/t_need_mt_revision.at: New test.
	* testsuite.at: Add it.
	* commands.cc (get_revision_id): Require MT/revision to exist.
	(setup): Create MT/revision.

2005-02-02  Nathaniel Smith  <njs@codesourcery.com>

	* work.hh: Remove tabs.

2005-02-03  graydon hoare  <graydon@pobox.com>

	* tests/t_i18n_changelog.at: New test.
	* testsuite.at: Run it.
	* lua/lposix.c: New file.
	* lua/modemuncher.c: New file
	* lua.cc: Load posix library.
	* lua/liolib.c: Disable execute and popen.
	* std_hooks.lua: Remove io.execute uses.
	* AUTHORS: Update to mention lposix.c, modemuncher.c.
	* Makefile.am: Likewise.

2005-02-01  Nathaniel Smith  <njs@codesourcery.com>

	* tests/t_rebuild.at: Beef up test in response to possible
	problems reported by Derek Scherger.

2005-01-31  Nathaniel Smith  <njs@codesourcery.com>

	* rcs_import.cc (store_manifest_edge): Don't try to store deltas
	to the null manifest.
	(import_cvs_repo): Root revision has null manifest, not empty
	manifest.
	* revision.cc (check_sane): More invariants.

2005-01-28  graydon hoare  <graydon@pobox.com>

	* database.{cc,hh}: More netsync speed tweaks.
	* netsync.cc: Likewise.

2005-01-27  Nathaniel Smith  <njs@codesourcery.com>

	* tests/t_restrictions_warn_on_unknown.at: New test.
	* testsuite.at: Add it.

2005-01-27  Derek Scherger  <derek@echologic.com>

	* commands.cc (attr): adjust for subdir; ensure files exist
	* tests/t_attr.at: improve setup description
	* tests/t_attributes.at: improve setup description so that
	testsuite -k attr runs this test; check for attributes on missing
	files
	* tests/t_subdir_attr.at: new test
	* testsuite.at: fix dutch spelling of monotone; call new test

2005-01-27  Nathaniel Smith  <njs@codesourcery.com>

	* change_set.hh (null_id): New function.
	* revision.cc (analyze_manifest_changes): Fix typo, use null_id.
	* tests/t_rebuild.at: Un-XFAIL.

2005-01-27  Nathaniel Smith  <njs@codesourcery.com>

	* tests/t_rebuild.at: Add priority tag.

	* tests/t_cvsimport.at: Be more thorough.

	* rcs_import.cc (store_edge): Rename to...
	(store_manifest_edge): ...this.  Remove revision arguments, and
	remove storing of revision.
	(import_states_recursive): Update accordingly.
	Add 'revisions' argument; update it instead of trying to write
	revisions now.
	(import_states_by_branch): Add 'revisions' argument.
	(import_cvs_repo): Add a stage 3 that writes out the revisions
	accumulated in the 'revisions' vector.
	
2005-01-27  Matt Johnston  <matt@ucc.asn.au>

	(compile fixes for Linux/gcc 3.3.4)
	* botan/{util.cpp,primes.cpp}: give large constants ULL
	suffixes
	* botan/{gzip.cpp}: fix type for std::max() comparison

2005-01-27  graydon hoare  <graydon@pobox.com>

	* AUTHORS: Mention Georg.
	* change_set.cc: Null out names which are in null directories.
	* commands.cc (reindex): Remove COLLECTION argument.
	* database.{cc,hh} (get_revision_certs):
	Add brute force "load all certs" method.
	* merkle_tree.{cc,hh}: Modify to use memory rather than disk.
	* netsync.{cc,hh}: Likewise.
	* packet.hh (manifest_edge_analyzer): Kill dead code.

2005-01-26  Nathaniel Smith  <njs@codesourcery.com>

	* mt_version.cc (print_full_version): Include system flavour.

2005-01-26  Nathaniel Smith  <njs@codesourcery.com>

	* tests/t_rebuild.at: New test.
	* testsuite.at: Add it.

2005-01-26  Nathaniel Smith  <njs@codesourcery.com>

	* tests/t_checkout_noop_on_fail.at: Clarify description and XFAIL.

	* tests/t_approval_semantics.at: New TODO.
	* tests/t_monotone_agent.at: New TODO.
	* testsuite.at: Add them.

2005-01-25  Nathaniel Smith  <njs@codesourcery.com>

	* tests/t_checkout_noop_on_fail.at: New test.
	* testsuite.at: Add it.
	(RAW_MONOTONE): Add $PREEXECUTE to definition.

2005-01-25  Nathaniel Smith  <njs@codesourcery.com>

	* change_set.cc (extend_renumbering_from_path_identities): Add
	invariant.
	(extend_renumbering_via_added_files): Likewise.

	* constants.hh (maxbytes, postsz): Remove dead constants.
	(verify_depth): New constant.
	* constants.cc: Likewise.
	* revision.hh (check_sane_history): New function.
	* revision.cc (check_sane_history): Likewise.
	* database.cc (put_revision): Sanity check revision and revision
	history before storing it.
	This breaks cvs import.  Why?

	* update.cc (find_deepest_acceptable_descendent): Remove.
	(acceptable_descendent, calculate_update_set): New functions.
	(pick_update_candidates): Use 'calculate_update_set'.
	* tests/t_update_2.at: Un-XFAIL.
	* tests/t_ambig_update.at: Un-XFAIL.

	* tests/t_no_rename_overwrite.at: New test.
	* tests/t_cdiff.at: New test placeholder.
	* testsuite.at: Add them.
	(MONOTONE): Prefix command line with $PREEXECUTE to e.g. support
	running under Valgrind.

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

	* cert.cc: ignore whitespace when comparing private keys
	from the database and with the lua hook
	* tests/t_lua_privkey.at: new test
	* testsuite.at: run it

2005-01-23  Derek Scherger  <derek@echologic.com>

	* commands.cc (restrict_rename_set): include renames if either
	name is present in restriction
	(calculate_base_revision): remove unused variant
	(calculate_current_revision): remove unsed variable
	(calculate_restricted_revision): remove unsed variable
	(ls_missing): remove unsed variable
	(revert): rewrite with restrictions
	* tests/t_revert.at: test partial reverts adjust MT/work properly
	* tests/t_revert_dirs.at: un-XFAIL
	* tests/t_revert_rename.at: un-XFAIL; revert rename via both names

2005-01-23  Derek Scherger  <derek@echologic.com>

	* tests/t_revert_rename.at: remove extra MONOTONE_SETUP
	attempt revert by both original name and new name

2005-01-23  Derek Scherger  <derek@echologic.com>

	* tests/t_revert_rename.at: New test.
	* testsuite.at: Add it.

2005-01-22  Derek Scherger  <derek@echologic.com>

	* tests/t_revert_dirs.at: New test.
	* testsuite.at: Add it.

2005-01-22  Nathaniel Smith  <njs@codesourcery.com>

	* configure.ac (AC_INIT): Set bug-reporting address to list
	address, rather than Graydon's personal email.
	* diff_patch.cc (normalize_extents): Use it.
	* ui.cc (fatal): Likewise.

	* tests/t_vcheck.at: New priority "todo", tweak descriptive text.

2005-01-23  Derek Scherger  <derek@echologic.com>

	* database.{cc,hh}: convert queries to use prepared statements

2005-01-22  Nathaniel Smith  <njs@codesourcery.com>

	* tests/t_delete_dir.at: Add more commentary.

	* tests/t_rename_dir_patch.at: New test.
	* tests/t_delete_dir_patch.at: New test.
	* testsuite.at: Add them.

2005-01-22  Nathaniel Smith  <njs@codesourcery.com>

	* change_set.cc (apply_change_set): Add invariants.
	* tests/t_rename_dir_cross_level.at: New test.
	* tests/t_rename_added_in_rename.at: New test.
	* tests/t_rename_conflict.at: New test.
	* testsuite.at: Add them.

2005-01-21  Nathaniel Smith  <njs@codesourcery.com>

	* tests/t_ambig_update.at: Update comments.

	* tests/t_update_2.at: New test from Georg-W. Koltermann
	<Georg.Koltermann@mscsoftware.com>.
	* testsuite.at: Add it.

2005-01-20  Nathaniel Smith  <njs@codesourcery.com>

	* tests/t_lca_1.at: New bug report.
	* testsuite.at: Add it.

2005-01-19  Nathaniel Smith  <njs@codesourcery.com>

	* commands.cc (merge): Improve merge chatter.
	(do_diff): Don't print anything when there are no
	changes.

2005-01-19  Nathaniel Smith  <njs@codesourcery.com>

	* tests/t_db_with_dots.at: New test.
	* testsuite.at: Add it.

2005-01-19  Patrick Mauritz <oxygene@studentenbude.ath.cx>

	* Makefile.am (%.h, package_revision.h, package_full_revision.h):
	Don't update target file if no change has occurred, to reduce
	unnecessary rebuilds.

2005-01-18  Nathaniel Smith  <njs@codesourcery.com>

	* rcs_import.cc (cvs_key): Initialize struct tm to all zeros, to
	stop garbage sneaking in -- thanks to Zack Weinberg for pointing
	this out.  Also, handle 2 digit years properly on WIN32.

2005-01-18  Nathaniel Smith  <njs@codesourcery.com>

	* rcs_import.cc: Remove tabs.

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

	* database.cc: Pass filename to check_sqlite_format_version as a
	fs::path, so that it doesn't get passed as a freshly created fs::path
	with default checker (which disallows '.foo' path components)

2005-01-19  Nathaniel Smith  <njs@codesourcery.com>

	* netsync.cc (session, process_confirm_cmd, dispatch_payload):
	Back out some over-zealous changes that broke netsync
	compatibility.  Probably should redo later, when have a chance to
	bump netsync protocol number, but we're not ready for that now.

2005-01-19  Nathaniel Smith  <njs@codesourcery.com>

	* tests/t_subdir_revert.at: New test.
	* tests/t_subdir_rename.at: New test.
	* testsuite.at: Add them.

2005-01-18  Nathaniel Smith  <njs@codesourcery.com>

	* tests/t_subdir_add.at: New test.
	* tests/t_subdir_drop.at: New test.
	* testsuite.at: Add them.
	* tests/t_delete_dir.at: Implement it.

2005-01-19  Nathaniel Smith  <njs@codesourcery.com>

	* netcmd.cc: Remove tabs.

2005-01-19  Nathaniel Smith  <njs@codesourcery.com>

	* merkle_tree.cc: Remove tabs.

2005-01-18  Nathaniel Smith  <njs@codesourcery.com>

	* rcs_import.cc (cvs_key): Initialize struct tm to all zeros, to
	stop garbage sneaking in -- thanks to Zack Weinberg for pointing
	this out.  Also, handle 2 digit years properly on WIN32.

2005-01-18  Nathaniel Smith  <njs@codesourcery.com>

	* rcs_import.cc: Remove tabs.

2005-01-18  Nathaniel Smith  <njs@codesourcery.com>

	* monotone.texi: Undocument mcerts, fcerts; rename rcerts to
	certs.
	* monotone.1: Likewise.

2005-01-18  Nathaniel Smith  <njs@codesourcery.com>

	* commands.cc (restrict_rename_set): Fix types to compile with old
	rename_set gunk removed.
	Alter logic to yell if a rename crosses the restriction boundary,
	rather than silently ignore it.

2005-01-19  graydon hoare  <graydon@pobox.com>

	* commands.cc: Fix up some merge breakage.
	* tests/t_add_dot.at: Un-XFAIL.
	* testsuite.at: Run "setup ." before "db init".

2005-01-09  Derek Scherger  <derek@echologic.com>

	* commands.cc (get_path_rearrangement): new function/signature for
	splitting restricted rearrangements
	(calculate_restricted_revision): use it and update to work
	similarly to calculate_current_revision
	(trusted): call app.initialize(false)
	(ls_missing): adjust for new get_path_rearrangement
	(attr): call app.initialize(true)
	(diff): merge cleanup
	(lca, lcad, explicit_merge): call app.initialize(false)
	* app_state.cc (constructor): set database app state
	(load_rcfiles): add required booleans
	* lua.{cc,hh} (load_rcfile): add required boolean
	* tests/t_add.at:
	* tests/t_diff_added_file.at:
	* tests/t_disapprove.at:
	* tests/t_drop_missing.at:
	* tests/t_heads.at:
	* tests/t_heads_discontinuous_branch.at:
	* tests/t_i18n_file.at:
	* tests/t_log_nonexistent.at:
	* tests/t_merge_add_del.at:
	* tests/t_netsync.at:
	* tests/t_netsync_pubkey.at:
	* tests/t_netsync_single.at:
	* tests/t_persistent_server_keys.at:
	* tests/t_persistent_server_revision.at:
	* tests/t_remerge.at:
	* tests/t_tags.at:
	* tests/t_update_missing.at:
	* tests/t_update_to_revision.at: add --message option to commits
	* tests/t_merge2_add.at:
	* tests/t_merge2_data.at:
	* tests/t_netsync_unrelated.at: create working directory with new
	setup command
	* tests/t_erename.at: update for revisions
	* tests/t_no_change_deltas.at: add --revision options to diff
	* tests/t_restrictions.at: remove some cruft and update to work
	with revisions
	* tests/t_subdirs.at: pass correct --rcfile and --db options from
	within subdir
	* testsuite.at (REVERT_TO): remove MT dir before checkout, which
	now fails if MT exists, replace checkout MT/options with old
	MT/options
	(COMMIT): add --message option to commit macro
	* work.cc (read_options_map): don't overwrite option settings when
	reading options map so that command line settings take precedence

2005-01-18  Nathaniel Smith  <njs@codesourcery.com>

	* netsync.cc: Partially fix comment (s/manifest/revision/ etc.).
	(dispatch_payload): Ignore mcert and fcert refinement requests,
	instead of dying on them.  Hack, but I think it should let this
	netsync continue to interoperate with old netsync...

2005-01-18  Nathaniel Smith  <njs@codesourcery.com>

	* vocab.hh: Remove file<cert>.
	* vocab.cc: Likewise.
	* packet_types.hh: Remove file.
	* Makefile.am (MOST_SOURCES): Remove packet_types.hh and mac.hh.

2005-01-18  Nathaniel Smith  <njs@codesourcery.com>

	* netsync.cc (process_confirm_cmd): Don't try refining mcert and
	fcert trees.
	Remove other dead/pointless code.

2005-01-18  Nathaniel Smith  <njs@codesourcery.com>

	* database.hh: Remove file cert stuff.
	* netsync.cc (data_exists): We don't have file/manifest certs.
	(load_data): Likewise.

2005-01-18  Nathaniel Smith  <njs@codesourcery.com>

	* netsync.cc (process_data_cmd): Ignore file/manifest certs.

	* database.cc (struct valid_certs): Don't support file certs.
	(rehash): No file certs.
	(file_cert_exists): Remove.
	(put_file_cert): Remove.
	(get_file_certs): Remove.

2005-01-18  Nathaniel Smith  <njs@codesourcery.com>

	* packet.cc (class delayed_manifest_cert_packet):
	(class delayed_file_cert_packet): Remove.
	(packet_db_writer::consume_file_cert, consume_manifest_cert)
	(packet_writer::consume_file_cert, consume_manifest_cert)
	Remove.
	(struct feed_packet_consumer): Don't support mcert/fcert packets.
	(extract_packets): Likewise.
	(packet_roundabout_test): Test revision certs, not manifest/file
	certs.

	* packet.hh (packet_consumer::consume_file_cert):
	(packet_consumer::consume_manifest_cert):
	(packet_writer::consume_file_cert):
	(packet_writer::consume_manifest_cert):
	(packet_db_writer::consume_file_cert):
	(packet_db_writer::consume_manifest_cert):
	Remove.

	* lua.hh (hook_get_file_cert_trust): Remove.
	* lua.cc (hook_get_file_cert_trust): Remove.

2005-01-18  Nathaniel Smith  <njs@codesourcery.com>

	* cert.hh (erase_bogus_certs): Re-add manifest cert version.

	* monotone.texi (Hook Reference): Remove documentation of
	get_{file,manifest}_cert_trust.

2005-01-18  Nathaniel Smith  <njs@codesourcery.com>

	* cert.cc (erase_bogus_certs): Re-add manifest cert version.
	(bogus_cert_p): Likewise.

2005-01-18  Nathaniel Smith  <njs@codesourcery.com>

	* cert.hh (rename_edge):
	(rename_set):
	(calculate_renames):
	(rename_cert_name): Remove.
	(cert_file_comment):
	(cert_manifest_comment): Remove.
	(erase_bogus_certs): Remove manifest and file versions.
	* cert.cc (rename_cert_name): Remove.
	(bogus_cert_p): Remove manifest<cert> and file<cert> variants.
	(erase_bogus_certs): Likewise.
	(put_simple_manifest_cert):
	(put_simple_file_cert):
	(cert_file_comment): Remove.

	* commands.cc (fcerts): Remove.
	(mcerts): Likewise.
	(rcerts): Rename to...
	(certs): ...this.  s/revision certs/certs/ in help text.
	(trusted): s/revision cert/cert/.
	(ls_certs): Don't special-case rename certs.

2005-01-18  Nathaniel Smith  <njs@codesourcery.com>

	* tests/t_vcheck.at: Fix AT_XFAIL_IF typo.

2005-01-18  Nathaniel Smith  <njs@codesourcery.com>

	* monotone.texi (Reserved Certs): Remove 'vcheck'.
	(Key and Cert): Remove 'vcheck'.
	(Accidental collision): Likewise.
	(Commands): Likewise.
	* tests/t_vcheck.at: Add note about manual having useful stuff for
	when vcheck is re-added.

2005-01-18  Nathaniel Smith  <njs@codesourcery.com>

	* mac.hh:
	* cert.cc (vcheck_cert_name):
	(calculate_vcheck_mac):
	(cert_manifest_vcheck
	(check_manifest_vcheck):
	* cert.hh (cert_manifest_vcheck):
	(check_manifest_vcheck):
	* constants.cc (constants::vchecklen):
	* constants.hh (constants::vchecklen):
	* commands.cc (vcheck):
	Remove.

	* tests/t_vcheck.at: New test.
	* testsuite.at: Call it.

2005-01-18  Nathaniel Smith  <njs@codesourcery.com>

	* ROADMAP: Remove 'upgrade to sqlite3' todo item.

2005-01-18  Nathaniel Smith  <njs@codesourcery.com>

	* commands.cc (tag):
	(testresult):
	(approve):
	(disapprove):
	(comment):
	(fload):
	(fmerge):
	(cat):
	(rcs_import): Change grouping for "--help" display, to make more
	informative.
	(rcs_import): Also add more details to help text.

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

	* file_io.cc: re-add accidentally removed #include
	* botan/gzip.cc: improved comments, removed unused code

2005-01-17  Nathaniel Smith  <njs@codesourcery.com>

	* diff_patch.cc (normalize_extents): Add missing ')'.

2005-01-17  Nathaniel Smith  <njs@codesourcery.com>

	* tests/t_update_1.at: New test.
	* testsuite.at: Call it.

2005-01-11  Nathaniel Smith  <njs@codesourcery.com>

	* diff_patch.cc (normalize_extents): Add warning for anyone who
	manages to trigger the untested part of the normalization code.

2005-01-14  Christian Kollee <stuka@pestilenz.org>

	* search for and link with sqlite3 when --bundle-sqlite=no

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

	* tests/t_ambig_update.at: add comments from discussion on irc
	* tests/t_status_missing.at: new test
	* testsuite.at: include it

2005-01-10  graydon hoare  <graydon@pboox.com>

	* commands.cc (explicit_merge): Tweak merge message.
	* database.cc (check_sqlite_format_version): New function.
	(database::sql): Call it.
	* sqlite/pager.hh (SQLITE_DEFAULT_PAGE_SIZE): Adjust to 8192.
	(SQLITE_MAX_PAGE_SIZE): Adjust to 65536.
	* schema_migration.cc: Post-merge cleanup.
	* Makefile.am: Likewise.

2005-01-10  Christof Petig <christof@petig-baender.de>

	* sqlite/*: SQLite 3.0.8 CVS import
	* database.{cc,hh}:
	* schema_migration.{cc,hh}: convert to use the SQLite3 API

	This does not yet use any of the more sophisticated API features
	of SQLite3 (query parameters, BLOBs), so there is plenty of room
	for optimization. This also does not change the schema (i.e.
	still uses base64 encoded values in tables)

2005-01-17  graydon hoare  <graydon@pobox.com>

	* AUTHORS: Mention Wojciech and Neil.
	* revision.cc (calculate_ancestors_from_graph): Make non-recursive.

2005-01-17  Wojciech Miłkowski  <wmilkowski@interia.pl>

	* std_hooks.lua: Teach about meld.

2005-01-17  Neil Conway  <neilc@samurai.com>

	* diff_patch.cc: add a new context diff hunk consumer. Rename
	unidiff() to make_diff().
	* diff_patch.hh: Rename unidiff() to make_diff().
	* command.cc: Add new "cdiff" command, and refactor "diff" to
	invoke a common subroutine that is parameterized on the diff
	type. Unrelated change: make a branch-based checkout default to
	using the same directory name as the branch name, unless a
	branch is specified.

2005-01-17  graydon hoare  <graydon@pobox.com>

	* cryptopp/osrng.cpp (NonblockingRng::GenerateBlock):
	Bring forward patch lost in cryptopp 5.2 upgrade.
	* revision.cc (add_bitset_to_union)
	(calculate_ancestors_from_graph): New functions.
	(erase_ancestors)
	(is_ancestor): Rewrite.
	* cert.cc (get_branch_heads): Rewrite.
	* database.{cc,hh} (get_heads): Remove
	(get_revision_ancestry): Use multimap.
	(install_views): Disable.
	Remove everything related to the trust views. Too slow.
	Also tidy up whitespace formatting in sqlite3 code.
	* views.sql: Clear out all views.
	* commands.cc: Adapt to using multimap for ancestry.
	* AUTHORS: Mention Faheem and Christian.

2005-01-17  Faheem Mitha  <faheem@email.unc.edu>

	* debian/control: Fix up build depends.

2005-01-17  Ulrich Drepper  <drepper@redhat.com>

	* acinclude.m4 (AC_CHECK_INADDR_NONE): Fix quoting.
	* Makefile.am (EXTRA_DIST): Add sqlite/keywordhash.c.

2005-01-14  Christian Kollee  <stuka@pestilenz.org>

	* search for and link with sqlite3 when --bundle-sqlite=no

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

	* tests/t_ambig_update.at: add comments from discussion on irc
	* tests/t_status_missing.at: new test
	* testsuite.at: include it

2005-01-10  graydon hoare  <graydon@pboox.com>

	* commands.cc (explicit_merge): Tweak merge message.
	* database.cc (check_sqlite_format_version): New function.
	(database::sql): Call it.
	* sqlite/pager.hh (SQLITE_DEFAULT_PAGE_SIZE): Adjust to 8192.
	(SQLITE_MAX_PAGE_SIZE): Adjust to 65536.
	* schema_migration.cc: Post-merge cleanup.
	* Makefile.am: Likewise.

2005-01-10  Christof Petig  <christof@petig-baender.de>

	* sqlite/*: SQLite 3.0.8 CVS import
	* database.{cc,hh}:
	* schema_migration.{cc,hh}: convert to use the SQLite3 API

	This does not yet use any of the more sophisticated API features
	of SQLite3 (query parameters, BLOBs), so there is plenty of room
	for optimization. This also does not change the schema (i.e.
	still uses base64 encoded values in tables)

2005-01-11  Nathaniel Smith  <njs@codesourcery.com>

	* tests/t_migrate_schema.at: Switch to using pre-dumped db's, make
	it work, un-XFAIL it.

2005-01-11  Nathaniel Smith  <njs@codesourcery.com>

	* tests/t_persistent_server_keys_2.at: XFAIL it, add commentary on
	solution.

2005-01-11  Nathaniel Smith  <njs@codesourcery.com>

	* tests/t_persistent_server_keys_2.at: New test.
	* testsuite.at: Add it.

2005-01-06  Nathaniel Smith  <njs@codesourcery.com>

	* schema_migration.cc (migrate_monotone_schema): Add comment
	pointing to t_migrate_schema.at.
	* tests/t_migrate_schema.at: Implement, mostly.  (Still broken.)

	* tests/t_heads_discontinuous_branch.at: Remove urgency
	annotation.
	* tests/t_netsync_nocerts.at: Add urgency annotation.

	* testsuite.at: Add UNGZ, UNGZB64 macros.
	* tests/t_fmerge.at: Use them.

2005-01-05  Nathaniel Smith  <njs@codesourcery.com>

	* schema_migration.cc: Update comment about depot code.
	(migrate_depot_split_seqnumbers_into_groups):
	(migrate_depot_make_seqnumbers_non_null):
	(migrate_depot_schema): Remove; all are dead code.

2005-01-05  Nathaniel Smith  <njs@codesourcery.com>

	* schema_migration.cc: Remove tabs.

2005-01-05  Nathaniel Smith  <njs@codesourcery.com>

	* tests/t_check_same_db_contents.at: Uncapitalize title to unbreak
	testsuite.

	* revision.cc (is_ancestor): Add FIXME comment.
	(erase_ancestors): New function.
	* revision.hh (erase_ancestors): Prototype it.
	* cert.cc (get_branch_heads): Call it.
	* tests/t_heads_discontinuous_branch.at: Un-XFAIL it.

	* revision.cc (find_subgraph_for_composite_search): Ignore null
	revision ids.
	* commands.cc (try_one_merge): Add invariant - never create merges
	where the left parent is an ancestor or descendent of the right.
	(explicit_merge): Same check.
	(propagate): Handle cases where no merge is necessary.  Also, make
	generated log message more readable.

	* tests/t_propagate_desc.at: Un-XFAIL it.
	* tests/t_propagate_anc.at: Un-XFAIL it.  Use new
	CHECK_SAME_DB_CONTENTS macros.
	* testsuite.at: Move t_check_same_db_contents.at to run before
	propagation tests.  Make CHECK_SAME_DB_CONTENTS more thorough.

	* tests/t_dump_load.at: Implement test.

2005-01-05  Nathaniel Smith  <njs@codesourcery.com>

	* tests/t_check_same_db_contents.at: New test.
	* testsuite.at: Add it.
	(CHECK_SAME_DB_CONTENTS): New macro.

2005-01-04  Nathaniel Smith  <njs@codesourcery.com>

	* cert.cc: Remove tabs.
	* revision.hh: Likewise.

2005-01-04  Nathaniel Smith  <njs@codesourcery.com>

	* tests/t_propagate_anc.at: Also check the case where we're
	propagating a non-strict ancestor, i.e. the heads are actually
	equal.

2005-01-04  Nathaniel Smith  <njs@codesourcery.com>

	* database.cc (get_revision_parents): Add invariant.
	(get_revision_children): Likewise.
	(get_revision): Likewise.
	(put_revision): Likewise.

	* tests/t_merge_ancestor.at: New test.
	* tests/t_propagate_desc.at: Likewise.
	* tests/t_propagate_anc.at: Likewise.
	* testsuite.at: Call them.

2005-01-04  Nathaniel Smith  <njs@codesourcery.com>

	* tests/t_netsync_diffbranch.at: Add priority, add description of
	problem and solution.
	Also, XFAIL it.
	* tests/t_netsync_unrelated.at: Add reference to discussion.
	* tests/t_cmdline_options.at: Remove priority marking from
	non-bug.
	* tests/t_checkout_dir.at: XFAIL when run as root.

	* tests/t_netsync_nocerts.at: New test.
	* testsuite.at: Call it.

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

	* tests/t_netsync_diffbranch.at: add a new test for pulling a branch
	with a parent from a different branch.
	* testsuite.at: add it

2005-01-02  Derek Scherger  <derek@echologic.com>

	* commands.cc (log_certs): new function
	(log) add Ancestor: and Branch: entries to output; use above new
	function
	* tests/t_cross.at: update to work with changesets

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

	* botan/base64.cpp: Include a terminating newline in all cases for
	compatibility with cryptopp

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

	* keys.cc: fix merge issues propagating 0.16 to net.venge.monotone.botan
	* botan/config.h: add it
	* botan/{aes,des,dh,dsa,elgamal,lion,lubyrack,nr,rw,openpgp}*: removed
	unused files.

2004-12-30  graydon hoare  <graydon@pobox.com>

	* constants.cc (netcmd_current_protocol_version): Set to 3.
	* tests/t_crlf.at: New test of crlf line encodings.
	* testsuite.at: Call it.
	* monotone.spec: Note 0.16 release.

2004-12-30  graydon hoare  <graydon@pobox.com>

	* win32/get_system_flavour.cc: Fix little compile bugs.

2004-12-30  Julio M. Merino Vidal  <jmmv@NetBSD.org>

	* change_set.{cc,hh}: Add the has_renamed_file_src function in
	change_set::path_rearrangement.
	* commands.cc: Make the 'log' command show nothing for renamed or
	deleted files (when asked to do so) and stop going backwards in
	history when such condition is detected; they don't exist any more,
	so there is no point in showing history (and could drive to incorrect
	logs anyway).
	* tests/t_log_nonexistent.at: New check to verify previous.
	* testsuite.at: Add it.

2004-12-30  graydon hoare  <graydon@pobox.com>

	* Makefile.am: Clean full testsuite directory and full-version.
	* configure.ac: Bump version number.
	* po/monotone.pot: Regenerate.
	* NEWS: Describe new release.

2004-12-29  Julio M. Merino Vidal  <jmmv@NetBSD.org>

	* tests/t_cmdline_options.at: New test for previous: ensure that
	monotone is actually checking for command line correctness.
	* testsuite.at: Add it.

2004-12-29  Julio M. Merino Vidal  <jmmv@NetBSD.org>

	* monotone.cc: Verify that the command line is syntactically correct
	as regards to options (based on error codes from popt).

2004-12-29  Matt Johnston  <matt@ucc.asn.au>

	* tests/t_drop_rename_patch.at: A test to check that deltas on
	renamed files are included in concatenate_change_sets, if there was a
	deletion of a file with the same name as the rename src.
	* testsuite.at: add it

2004-12-29  graydon hoare  <graydon@pobox.com>

	* AUTHORS: Add Jordi.
	* change_set.{cc,hh}: Make sanity helpers const.
	(normalize_change_set): Drop a->a deltas.
	(merge_change_sets): Call normalize.
	(invert_change_set): Likewise.
	* revision.cc
	(find_subgraph_for_composite_search): New fn.
	(calculate_composite_change_set): Call it.
	(calculate_change_sets_recursive): Use results.
	* tests/t_no_change_deltas.at: Fix.

2004-12-29  graydon hoare  <graydon@pobox.com>

	* change_set.cc: Fix unit tests to satisfy sanity checks.
	* std_hooks.lua: Fix status checking on external merges.

2004-12-29  Matt Johnston  <matt@ucc.asn.au>

	* change_set.{cc,hh}: Take account of files which are the
	destination of a rename_file operation, when examining
	file deletions. Added helper methods to clean up related code.

2004-12-29  Matt Johnston  <matt@ucc.asn.au>

	* change_set.cc: added a sanity check for deltas with same src/dst,
	and deleted files with deltas.

2004-12-29  Matt Johnston  <matt@ucc.asn.au>

	* testsuite.at, tests/t_netsync_single.at: don't use -q with
	killall since it isn't portable.

2004-12-28  Julio M. Merino Vidal  <jmmv@NetBSD.org>

	* commands.cc: Make the 'log' command show all affected files
	in each revision in a nice format (easier to read than what
	'cat revision' shows).

2004-12-28  Julio M. Merino Vidal  <jmmv@NetBSD.org>

	* commands.cc: Change the order used by the 'log' command to show
	affected files so that it matches the order in which these changes
	really happen.  Otherwise, a sequence like "rm foo; mv bar foo;
	patch foo" could be difficult to understand by the reader.

2004-12-28  Jordi Vilalta Prat  <jvprat@wanadoo.es>

	* monotone.texi: Fix a typo: "not not" should be "not".

2004-12-28  Julio M. Merino Vidal  <jmmv@NetBSD.org>

	* commands.cc: Make the 'log' command show all affected files
	in each revision in a nice format (easier to read than what
	'cat revision' shows).

2004-12-28  graydon hoare  <graydon@pobox.com>

	* AUTHORS: Add various recent authors.

2004-12-28  Badai Aqrandista <badaiaqrandista@hotmail.com>

	* debian/*: Fix up for package building.

2004-12-28  graydon hoare  <graydon@pobox.com>

	* change_set.{cc,hh}: Add sanity checking, rework
	some of concatenation logic to accomodate.
	* revision.{cc,hh}: Likewise.
	Teach about generalized graph rebuilding.
	* database.cc (delete_existing_revs_and_certs): New fn.
	* commands.cc (db rebuild): New command.
	(db fsck) New command.
	* sanity.{cc,hh} (relaxed): New flag.
	* work.cc: Use new concatenation logic.

2004-12-25  Julio M. Merino Vidal  <jmmv@NetBSD.org>

	* commands.cc: During 'log', print duplicate certificates (by
	different people) in separate lines, rather than showing them
	together without any spacing.  While here, homogenize new lines
	in other messages as well; this also avoids printing some of
	them in case of missing certificates).

2004-12-24  Nathaniel Smith  <njs@codesourcery.com>

	* tests/t_disapprove.at: Enable previously disabled test.

	* tests/t_no_change_deltas.at: New test.
	* testsuite.at: Call it.

2004-12-23  Nathaniel Smith  <njs@codesourcery.com>

	* win32/read_password.c: Remove unused file.

2004-12-22  Julio M. Merino Vidal  <jmmv@NetBSD.org>

	* commands.cc: Verify that the key identifier passed to the pubkey
	and privkey commands exists in the database.  Otherwise exit with
	an informational message instead of an exception.

2004-12-20  Matt Johnston  <matt@ucc.asn.au>

	* keys.cc: don't cache bad passphrases, so prompt for a correct
	password if the first ones fail.

2004-12-19  Matt Johnston  <matt@ucc.asn.au>

	* commands.cc: print out author/date next to ambiguous revision
	lists from selectors.

2004-12-19  Julio M. Merino Vidal  <jmmv@NetBSD.org>

	* testsuite.at:
	* tests/t_fmerge.at:
	* tests/t_netsync.at:
	* tests/t_netsync_single.at:
	* tests/t_revert.at:
	* tests/t_tags.at: Avoid usage of test's == operator.  It's a
	GNUism and causes unexpected failures in many tests.  The correct
	operator to use is just an equal sign (=).
	* tests/t_renamed.at: Don't use cp's -a flag, which is not
	supported by some implementations of this utility (such as the
	one in NetBSD).  Try to add some of its funcionality by using
	the -p flag, although everything could be fine without it.
	* tests/t_unidiff.at: Discard patch's stderr output.  Otherwise
	it's treated as errors, but NetBSD's patch uses it to print
	informative messages.

2004-12-19  Julio M. Merino Vidal  <jmmv@NetBSD.org>

	* tests/t_scan.at: Instead of running sha1sum, use a prestored
	manifest file to do the verification.  This avoids problems in
	systems that do not have the sha1sum tool, like NetBSD.

2004-12-19  Julio M. Merino Vidal  <jmmv@NetBSD.org>

	* Makefile.am: Remove obsolete --with-bundled-adns flag from
	DISTCHECK_CONFIGURE_FLAGS.

2004-12-18  Nathaniel Smith  <njs@codesourcery.com>

	* tests/t_checkout_dir.at: Make the test directory chdir'able
	again after the test.
	* tests/t_delete_dir.at: Add trailing newline.

	* tests/t_dump_load.at: New bug report.
	* tests/t_migrate_schema.at: Likewise.
	* testsuite.at: Call them.

2004-12-18  Nathaniel Smith  <njs@codesourcery.com>

	* change_set.hh: Remove obsolete comment.

2004-12-18  Nathaniel Smith  <njs@codesourcery.com>

	* tests/t_delete_dir.at: New bug report.
	* testsuite.at: Call it.

2004-12-18  Julio M. Merino Vidal  <jmmv@NetBSD.org>

	* commands.cc: Homogenize help message for 'ls' with the one shown
	by 'list'.

2004-12-18  Julio M. Merino Vidal  <jmmv@NetBSD.org>

	* ChangeLog: Add missing entries for several modifications I did
	in December 6th and 3rd.

2004-12-18  Julio M. Merino Vidal  <jmmv@NetBSD.org>

	* tests/t_checkout_dir.at: New test triggering the bug I fixed
	  previously in the checkout command, verifying that directory
	  creation and chdir succeed.
	* testsuite.at: Add new test.

2004-12-18  Nathaniel Smith  <njs@codesourcery.com>

	* ChangeLog: Add log entry for <jmmv@NetBSD.org>'s last change.
	* std_hooks.lua: Check exit status of external merge commands.

2004-12-18  Julio M. Merino Vidal  <jmmv@NetBSD.org>

	* commands.cc: Include cerrno, cstring,
	boost/filesystem/exception.hpp.
	(checkout): Verify that directory creation and chdir succeeded.

2004-12-18  Nathaniel Smith  <njs@codesourcery.com>

	* diff_patch.cc (struct hunk_offset_calculator): Remove dead
	code.  (I believe it was used by the old, non-extent-based
	merging.)
	(calculate_hunk_offsets): Likewise.
	(struct hunk_consumer): Move next to rest of unidiff code.
	(walk_hunk_consumer): Likewise.

2004-12-18  Matt Johnston <matt@ucc.asn.au>

	* change_set.cc (concatenate_change_sets): Be more careful checking
	whether to discard deltas for deleted files (in particular take
	care when files are removed then re-added) - fixes tests
	t_patch_drop_add, t_add_drop_add.at, t_add_patch_drop_add,
	t_merge2_add_drop_add
	* change_set.cc (project_missing_deltas): don't copy deltas
	for deleted files, and handle the case where src file ids vary when
	files are added/removed. (fixes t_patch_vs_drop_add)
	* t_patch_drop_add.at, t_add_drop_add.at, t_add_patch_drop_add.at,
	  t_merge2_add_drop_add.at, t_patch_vs_drop_add.t: don't expect
	to fail any more.

2004-12-17  Nathaniel Smith  <njs@codesourcery.com>

	* tests/t_persistent_server_keys.at:
	* tests/t_attr.at:
	* tests/t_patch_vs_drop_add.at:
	* tests/t_merge2_add_drop_add.at:
	* tests/t_add_drop_add.at:
	* tests/t_add_patch_drop_add.at:
	* tests/t_patch_drop_add.at: Remove priority notes, since these
	are no longer bugs.

2004-12-17  graydon hoare  <graydon@pobox.com>

	* tests/t_merge_2.at: Works now, remove xfail.

2004-12-17  graydon hoare  <graydon@pobox.com>

	* tests/t_merge_1.at: Remove AT_CHECK(false) and xfail.
	* tests/t_fdiff_normalize.at: New test.
	* testsuite.at: Call it.
	* diff_patch.cc (normalize_extents): Fix the normalize bug.
	* revision.{cc,hh} (construct_revisions): Rename to prepare for
	next rebuild-the-graph migration.
	* commands.cc (db): Change call name.

2004-12-16  Joel Rosdahl  <joel@rosdahl.net>

	* revision.cc (is_ancestor): Use std::queue for the queue.

2004-12-14  Joel Rosdahl  <joel@rosdahl.net>

	Generalize the explicit_merge command with an optional ancestor
	argument:
	* revision.cc (is_ancestor): New method.
	* revision.hh (is_ancestor): Add prototype.
	* commands.cc (try_one_merge): Add ancestor argument. Empty
	ancestor means use ancestor from find_common_ancestor_for_merge.
	(merge): Pass empty ancestor to try_one_merge.
	(propagate): Likewise.
	(explicit_merge): Add optional ancestor argument.
	* monotone.texi: Document new explicit_merge argument.

2004-12-13  Joel Rosdahl  <joel@rosdahl.net>

	* tests/t_merge_2.at: New test triggering a bad merge.
	* testsuite.at: Add new test.

2004-12-13  Joel Rosdahl  <joel@rosdahl.net>

	* revision.cc (find_least_common_ancestor): Add a missing "return
	true;" that mysteriously was removed in
	c853237f9d8d155431f88aca12932d2cdaaa31fe.

2004-12-13  Joel Rosdahl  <joel@rosdahl.net>

	* revision.cc (find_least_common_ancestor): Remove unused variable.
	* commands.cc (lca): Correct negative status text.
	* commands.cc (update): Use GNU style braces.

2004-12-12  graydon hoare  <graydon@pobox.com>

	* commands.cc: Fix bug reported in t_attr.at
	* tests/t_attr.at: Remove xfail.
	* change_set.cc: Change unit tests syntax.
	(read_change_set): Assert complete read.
	* revision_ser.cc (read_revision_set): Likewise.
	* os_specific.hh: Drop obsolete file.

2004-12-12  Joel Rosdahl  <joel@rosdahl.net>

	* revision.cc (find_least_common_ancestor): New function for
	finding the vanilla LCA.
	* revision.hh: Added prototype for find_least_common_ancestor.
	* commands.cc (update): Use find_least_common_ancestor for finding
	a common ancestor.
	* commands.cc (diff): Likewise.
	* revision.cc (find_common_ancestor): Rename to...
	(find_common_ancestor_for_merge): ...this, for clarity.
	* revision.hh: find_common_ancestor -->
	find_common_ancestor_for_merge.
	* commands.cc (try_one_merge): Call find_common_ancestor_for_merge
	to find ancestor.
	* commands.cc (lcad): Rename lca command to lcad.
	* commands.cc (lca): New command for finding the vanilla LCA.

2004-12-12  Nathaniel Smith  <njs@codesourcery.com>

	* tests/t_persistent_server_keys.at: Actually test what it's
	supposed to.  Also, un-XFAIL it, since now it seems to pass.

2004-12-12  Nathaniel Smith  <njs@codesourcery.com>

	* tests/t_persistent_server_keys.at: New test.

	* testsuite.at: Call it.
	* tests/t_persistent_server_revision.at: Fix typo.

2004-12-12  Nathaniel Smith  <njs@codesourcery.com>

	* tests/t_persistent_server_revision.at: New test.
	* testsuite.at: Call it.  Tweak NETSYNC macros in support of it.

2004-12-11  Nathaniel Smith  <njs@codesourcery.com>

	* lua.hh (add_rcfile): Add 'required' argument.
	* lua.cc (add_rcfile): Implement it.  Simplify error checking
	logic while I'm there...
	* monotone.cc (cpp_main): Pass new argument to add_rcfile.

	* tests/t_rcfile_required.at: New test.
	* testsuite.at: Call it.
	Revamp netsync support macros, to allow long-running servers.
	Make netsync-killer try first with -TERM, in case that plays nicer
	with gcov.

2004-12-11  Nathaniel Smith  <njs@codesourcery.com>

	* lua.hh: Remove tabs.

2004-12-11  Nathaniel Smith  <njs@codesourcery.com>

	* monotone.texi: Document explicit_merge.

2004-12-11  Nathaniel Smith  <njs@codesourcery.com>

	* Makefile.am: Redo full-revision support again, to properly
	handle 'make dist' and caching.  Hopefully.

2004-12-11  Nathaniel Smith  <njs@codesourcery.com>

	* monotone.texi (File Attributes): Rewrite for new .mt-attrs
	syntax.

2004-12-11  Nathaniel Smith  <njs@codesourcery.com>

	* tests/t_attr.at: New test.
	* testsuite.at: Call it.

2004-12-11  Nathaniel Smith  <njs@codesourcery.com>

	* commands.cc (trusted): Print spaces between key ids.

	* lua.cc (add_rcfile): Errors while loading a user-provided rc
	file are naughtiness, not oopses.

2004-12-11  Nathaniel Smith  <njs@codesourcery.com>

	* commands.cc (commands::explain_usage): Use split_into_lines to
	do formatting of per-command usage; allow multi-line
	descriptions.
	(trusted): New command.
	* monotone.texi (Key and Cert): Document 'trusted' command.
	* tests/t_trusted.at: New test.
	* testsuite.at: Change get_revision_cert_trust to support
	t_trusted.at.  Call t_trusted.at.

2004-12-11  Derek Scherger  <derek@echologic.com>

	* app_state.{cc,hh} (restriction_includes): renamed from
	in_restriction to be less obscure; use path_set rather than
	set<file_path>
	* commands.cc
	(restrict_path_set):
	(restrict_rename_set):
	(restrict_path_rearrangement):
	(calculate_restricted_revision): new restriction functions
	(restrict_patch_set): remove old restrictions machinery
	(status): call calculate_restricted_revision
	(ls_tags): call app.initialize
	(unknown_itemizer): restriction_includes renamed
	(ls_unknown): call calculate_restricted_revision
	(ls_missing): rework for restrictions
	(commit): switch to --message option, optional paths and preserve
	restricted work
	(diff): allow restrictions for zero and one arg variants
	(revert): note some work left to do
	* manifest.{cc,hh} (build_manifest_map): hide unused things
	(build_restricted_manifest_map): new function
	* transforms.{cc,hh} (calculate_ident): clean up merge artifacts
	* work.cc (read_options_map): merge cleanup to preserve command
	line options

2004-12-10  Nathaniel Smith  <njs@codesourcery.com>

	* Makefile.am (package_full_revision.txt): Redo Joel Rosdahl
	<joel@rosdahl.net>'s change below after it got clobbered by
	merge.

2004-12-10  Nathaniel Smith  <njs@codesourcery.com>

	* commands.cc (log): Synopsize optional 'file' argument, and
	describe both arguments in help description.

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

	* cert.cc: Added priv_key_exists() function
	* commands.cc, rcs_import.cc: use new privkey functions
	* netsync.cc: change some bits that were missed

2004-12-09  Derek Scherger  <derek@echologic.com>

	* .mt-nonce: delete obsolete file
	* change_set.cc (merge_deltas): add file paths in call to
	try_to_merge_files
	* commands.cc (propagate): add progress logging similar to merge
	* diff_patch.{cc,hh} (try_to_merge_files): add file paths to
	merge2 and merge3 hooks; add logging of paths before calling merge
	hooks
	* lua.{cc,hh} (hook_merge2, hook_merge3): add file paths to merge
	hooks
	* std_hooks.lua (merge2, merge3, merge2_xxdiff_cmd,
	merge3_xxdiff_cmd): pass file paths to xxdiff for use as titles
	* testsuite.at (MONOTONE_SETUP): add paths to merge2 hook

2004-12-09  Matt Johnston  <matt@ucc.asn.au>

	* cert.cc, cert.hh, lua.cc, lua.hh, netsync.cc:
	Added a new get_priv_key(keyid) lua hook to retrieve
	a private key from ~/.monotonerc

2004-12-09  Matt Johnston  <matt@ucc.asn.au>

	* change_set.cc: Don't include patch deltas on files which
	are being deleted in changesets. (partial fix for bug
	invoked by t_merge_add_del.at)

2004-12-09  Matt Johnston  <matt@ucc.asn.au>

	* configure.ac,Makefile.am: Fix iconv and intl
	handling so that the libraries are used (required for OS X).

2004-12-09  Nathaniel Smith  <njs@codesourcery.com>

	* Makefile.am (BUILT_SOURCES_NOCLEAN): add 'S'.

	* netsync.cc (session): Make ticker pointers into auto_ptr's.  Add
	cert and revision tickers.
	(session::session): Initialize new tickers.
	(session::note_item_sent): New method.  Increment tickers.
	(session::note_item_arrived): Increment tickers.
	(session::read_some): Adjust for auto_ptr.
	(session::write_some): Likewise.
	(call_server): Conditionally initialize cert and revision
	tickers.
	(queue_data_cmd): Call 'note_item_sent'.
	(queue_delta_cmd): Call 'note_item_sent'.

2004-12-09  graydon hoare  <graydon@pobox.com>

	* ROADMAP: Add file.

2004-12-08  Nathaniel Smith  <njs@codesourcery.com>

	* tests/t_patch_vs_drop_add.at:
	* tests/t_patch_drop_add.at:
	* tests/t_netsync_unrelated.at:
	* tests/t_merge_add_del.at:
	* tests/t_merge2_add_drop_add.at:
	* tests/t_merge_1.at:
	* tests/t_heads_discontinuous_branch.at:
	* tests/t_cleanup_empty_dir.at:
	* tests/t_checkout_options.at:
	* tests/t_ambig_update.at:
	* tests/t_add_patch_drop_add.at:
	* tests/t_add_drop_add.at:
	* tests/t_add_dot.at: Add (importance) markers to all bug report
	tests.

2004-12-08  Nathaniel Smith  <njs@codesourcery.com>

	* app_state.hh (write_options): Add 'force' option.
	* app_state.cc: Remove tabs.
	(write_options): Implement.
	* commands.cc (checkout): Pass force=true to 'write_options'.

	* tests/t_checkout_options.at: New test.
	* testsuite.at: Define RAW_MONOTONE.
	(t_checkout_options.at): Call it.

2004-12-08  Nathaniel Smith  <njs@codesourcery.com>

	* update.hh (pick_update_target): Rename to...
	(pick_update_candidates): ...this.  Return a set of candidates,
	rather than a single best.
	* update.cc (pick_update_candidates): Likewise.  Remove logic
	checking for unique candidate.
	* commands.cc (describe_revision): New function.
	(heads): Use it.
	(update): Use new 'pick_update_candidates' function.  Add logic
	checking for unique candidate.  On non-unique candidate, print all
	candidates, using 'describe_revision'.

	* tests/t_ambig_update.at: Check that failure messages describe
	the candidate set.

2004-12-08  Nathaniel Smith  <njs@codesourcery.com>

	* update.cc: Remove tabs.

2004-12-08  Nathaniel Smith  <njs@codesourcery.com>

	* tests/t_ambig_update.at: Also check that update fails when one
	candidate edge is deeper than the other.

2004-12-08  graydon hoare  <graydon@pobox.com>

	* change_set.cc (extend_renumbering_via_added_files):
	Look up parent tid in existing renumbering.
	* commands.cc (attr): Check index for "set" subcommand.
	(lca): New diagnostic command.
	(log): Tidy up output formatting a bit.
	* po/monotone.pot: Regenerate.
	* tests/t_add_edge.at: New test to catch add failure.
	* testsuite.at: Call it.

2004-12-08  Nathaniel Smith  <njs@codesourcery.com>

	* tests/t_ambig_update.at: New test.
	* testsuite.at: Add it.

	* tests/t_explicit_merge.at: Add, having forgotten to last time.

2004-12-08  Nathaniel Smith  <njs@codesourcery.com>

	* tests/t_explicit_merge.at: New test.
	* testsuite.at: Add it.

2004-12-08  Nathaniel Smith  <njs@codesourcery.com>

	* testsuite.at: Remove duplicate line created by merge.
	* ChangeLog: Re-sort after merges.

	* commands.cc (explicit_merge): Remove stray space.  Print id of
	merge result.
	(complete_command): Add back "}" deleted by merge.

2004-12-08  Nathaniel Smith  <njs@codesourcery.com>

	* change_set.cc: Remove tabs.
	* diff_patch.cc: Likewise.

	* commands.cc (explicit_merge): New command.

2004-12-08  graydon hoare  <graydon@pobox.com>

	* change_set.cc (extend_renumbering_via_added_files):
	Look up parent tid in existing renumbering.
	* commands.cc (attr): Check index for "set" subcommand.
	(lca): New diagnostic command.
	(log): Tidy up output formatting a bit.
	* po/monotone.pot: Regenerate.
	* tests/t_add_edge.at: New test to catch add failure.
	* testsuite.at: Call it.

2004-12-07  Richard Levitte  <richard@levitte.org>

	* Makefile.am: Keep package_*revision.{txt,h}, so they are saved
	as part of a distribution, and thereby make as sure as possible
	people who download monotone get historical information on where
	their copy of monotone came from.

2004-12-06  Richard Levitte  <richard@levitte.org>

	* monotone.cc: Add a hint on how to use --ticker.

2004-12-06  Nathaniel Smith  <njs@codesourcery.com>

	* commands.cc (ls_certs): Sort the certs before printing.
	* tests/t_netsync_repeated.at: Actually check that certs were
	transferred correctly.

2004-12-06  Julio M. Merino Vidal  <jmmv@NetBSD.org>

	* figures/cert.pdf:
	* figures/cert.png:
	* figures/oo-figures.sxd:
	* monotone.texi: Use example host names under the
	example.{com,org,net} subdomains instead of invented names.
	These are defined in RFC 2606.

2004-12-06  Julio M. Merino Vidal  <jmmv@NetBSD.org>

	* configure.ac: Now that we depend on GNU Autoconf >= 2.58, we
	can use the AS_HELP_STRING macro everywhere we need to pretty-print
	help strings.  Also convert old calls to AC_HELP_STRING (deprecated)
	to this one.

2004-12-06  Joel Rosdahl  <joel@rosdahl.net>

	* Makefile.am (package_full_revision.txt): Silence error messages
	when deducing full package revision.

2004-12-06  graydon hoare  <graydon@pobox.com>

	* unix/get_system_flavour.cc:
	* win32/get_system_flavour.cc: Add missing files.

2004-12-06  graydon hoare  <graydon@pobox.com>

	* commands.cc (merge): Add newline in output.
	* change_set.cc (project_missing_deltas): Fix very bad
	delta-renaming bug.

2004-12-06  graydon hoare  <graydon@pobox.com>

	* change_set.cc:
	* tests/t_merge_add_del.at:
	* netsync.cc:
	* commands.cc: Clean up from merge.

2004-12-06  Nathaniel Smith  <njs@codesourcery.com>

	* tests/t_add_patch_drop_add.at: New test.
	* tests/t_merge2_add_drop_add.at: New test.
	* tests/t_patch_drop_add.at: New test.
	* tests/t_patch_vs_drop_add.at: New test.
	* testsuite.at: Add them.

	* tests/t_add_drop_add.at: Fix to test what it was supposed to.

	* tests/t_merge2_data.at: Remove extraneous [stdout].

	* tests/t_merge_add_del.at: Fix description.
	XFAIL it.

2004-12-06  Nathaniel Smith  <njs@codesourcery.com>

	* tests/t_add_drop_add.at: New test.
	* testsuite.at: Add it.

2004-12-05  Nathaniel Smith  <njs@codesourcery.com>

	* tests/t_merge_add_del: Shorten name for better display.

2004-12-05  Matt Johnston <matt@ucc.asn.au>

	* tests/t_merge_add_del: added a new test for merging
	  branches where a file is added then removed.
	* testsuite.at: added the new test
	* configure.ac: bumped the prequisite version to 2.58 since
	  some tests use AT_XFAIL_IF

2004-12-05  graydon hoare  <graydon@pobox.com>

	* Makefile.am (package_full_revision.txt): Use top_builddir
	to locate monotone executable.

2004-12-05  Nathaniel Smith  <njs@codesourcery.com>

	* tests/t_merge_add_del: Shorten name for better display.

2004-12-05  Matt Johnston <matt@ucc.asn.au>

	* tests/t_merge_add_del: added a new test for merging
	  branches where a file is added then removed.
	* testsuite.at: added the new test
	* configure.ac: bumped the prequisite version to 2.58 since
	  some tests use AT_XFAIL_IF

2004-12-04  graydon hoare  <graydon@pobox.com>

	* commands.cc (fcommit): New command.
	(update): Finish off merge of update command.

2004-12-04  Derek Scherger  <derek@echologic.com>

	* commands.cc: (complete_command): New function.
	(explain_usage/process): Use it.

2004-12-04  Nathaniel Smith  <njs@codesourcery.com>

	* change_set.cc (merge_deltas): Call correct variant of
	try_to_merge_files depending on whether ancestor is available.
	* diff_patch.cc (try_to_merge_files -- merge3 version): Add
	assertions about ids.
	(try_to_merge_files -- merge2 version): Likewise.

	* testsuite.at: Add a trivial working merge2 hook.
	* tests/t_related_merge2_data.at: Update to use.
	Mark as expected to PASS.
	* tests/t_merge2_data.at: Likewise.

2004-12-04  Nathaniel Smith  <njs@codesourcery.com>

	* change_set.cc (merge_deltas): Call correct variant of
	try_to_merge_files depending on whether ancestor is available.
	* diff_patch.cc (try_to_merge_files -- merge3 version): Add
	assertions about ids.
	(try_to_merge_files -- merge2 version): Likewise.

	* testsuite.at: Add a trivial working merge2 hook.
	* tests/t_related_merge2_data.at: Update to use.
	Mark as expected to PASS.
	* tests/t_merge2_data.at: Likewise.

2004-12-04  Nathaniel Smith  <njs@codesourcery.com>

	* change_set.cc: Remove tabs.
	* diff_patch.cc: Likewise.

2004-12-04  Nathaniel Smith  <njs@codesourcery.com>

	* change_set.cc: Remove tabs.
	* diff_patch.cc: Likewise.

2004-12-03  Julio M. Merino Vidal  <jmmv@NetBSD.org>

	* commands.cc: Add a missing newline to a message.

2004-12-03  Julio M. Merino Vidal  <jmmv@NetBSD.org>

	* cryptopp/config.h:
	* configure.ac: NetBSD does not define __unix__ nor __unix, so the
	build fails.  To solve, check for __NetBSD__ where appropiate to
	detect a Unix system.

2004-12-03  Julio M. Merino Vidal  <jmmv@NetBSD.org>

	* INSTALL: Document my latest changes: --enable-ipv6 option, ability
	to specify static boost prefix through --enable-static-boost and
	BOOST_SUFFIX variable.

2004-12-03  Julio M. Merino Vidal  <jmmv@NetBSD.org>

	* Makefile.am:
	* configure.am: Add a variable, BOOST_SUFFIX, that identifies the
	suffix string that has to be appended to Boost library names to use
	them.  This variable can be defined on configure's command line.

2004-12-03  Julio M. Merino Vidal  <jmmv@NetBSD.org>

	* configure.ac: Let the --enable-static-boost argument take a prefix
	to where boost libraries are located.

2004-12-03  Julio M. Merino Vidal  <jmmv@NetBSD.org>

	* configure.ac: Add a three-state --enable-ipv6 argument to the
	configure script to explicitly enable or disable IPv6 support.

2004-12-03  Julio M. Merino Vidal  <jmmv@NetBSD.org>

	* std_hooks.lua: Add missing newlines to two error messages.

2004-12-02  Derek Scherger  <derek@echologic.com>

	* commands.cc: more tweaking to ease changeset merge

2004-12-01  Derek Scherger  <derek@echologic.com>

	* commands.cc: reordered commands to help merge with changesets
	branch

2004-12-01  graydon hoare  <graydon@pobox.com>

	* {unix,win32}/get_system_flavour.cc: New files.
	* basic_io.{cc,hh}: Give names to input sources.
	* monotone.cc: Move app_state ctor inside try.
	* platform.hh (get_system_flavour): Declare.
	* revision.cc: Name input source "revision".
	* sanity.cc: Log flavour on startup.
	* tests/t_attributes.at: Use new syntax.
	* transforms.{cc,hh} (split_into_lines): New variant, and rewrite.
	* work.{cc,hh}: Rewrite attributes to use basic_io.
	(get_attribute_from_db):
	(get_attribute_from_working_copy): New functions.

2004-11-30  Nathaniel Smith  <njs@codesourcery.com>

	* keys.cc (get_passphrase): Simplify arguments.
	(generate_key_pair): Force new passphrases to come from the user.
	Adapt to new 'get_passphrase' arguments.
	(change_key_passphrase): Likewise.
	(generate_key_pair): Add argument specifying passphrase, for
	exclusive use of the unit tests.
	(signature_round_trip_test): Use it.
	* keys.hh (generate_key_pair): Adjust prototype correspondingly.

	* tests/t_genkey.at: Test that 'genkey' requires the passphrase to
	be entered.
	* tests/t_chkeypass.at: Check that 'chkeypass' fails if no
	passphrase is given.

2004-11-30  Nathaniel Smith  <njs@codesourcery.com>

	* keys.hh: Remove tabs.
	* keys.cc: Likewise.

2004-11-30  Nathaniel Smith  <njs@codesourcery.com>

	* monotone.texi (Hook Reference): Clarify description of
	'get_passphrase', following confusion on IRC.

2004-11-30  Joel Rosdahl  <joel@rosdahl.net>

	* ui.cc (fatal): Added missing newlines in fatal message.

2004-11-29  Nathaniel Smith  <njs@codesourcery.com>

	* monotone.texi: Add more details to documentation of 'update
	<revision>' command.

	* ui.cc (fatal): Typo in previous commit.

2004-11-29  Nathaniel Smith  <njs@codesourcery.com>

	* ui.cc (fatal): On suggestion of Zack Weinberg, add a note to
	fatal error messages 1) telling the user that it's a bug (i.e.,
	not their fault), and 2) requesting a bug report.

2004-11-29  Nathaniel Smith  <njs@codesourcery.com>

	* ui.cc: Remove tabs.

2004-11-30  Matt Johnston  <matt@ucc.asn.au>

	* change_set.cc (merge_disjoint_analyses): Prevent duplicated
	tids being used.
	(merge_disjoint_analyses): Fix typo (s/a_tmp/b_tmp/)

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

	* Replaced cryptopp with botan

2004-11-24  Nathaniel Smith  <njs@codesourcery.com>

	* tests/t_cleanup_empty_dir.at: Shorten name.

2004-11-24  Nathaniel Smith  <njs@codesourcery.com>

	* Makefile.am (BUILT_SOURCES): List package_*version.{h,txt}.
	* package_{full_,}version.txt: Work when blddir != srcdir.

2004-11-24  Nathaniel Smith  <njs@codesourcery.com>

	* mt_version.hh: New file.
	* mt_version.cc: New file.
	* monotone.cc (package_revision.h): Don't include it.
	(mt_version.hh): Include it.
	(OPT_FULL_VERSION): New option.
	(options): Add it.
	(cpp_main): Implement --version and --full-version in terms of
	mt_version.hh.

	* Makefile.am (package_full_revision.h): Build it.
	(MOST_SOURCES): Add mt_version.{cc,hh}.

2004-11-24  Nathaniel Smith  <njs@codesourcery.com>

	* txt2c.cc (main): Add "--skip-trailing" option to skip trailing
	whitespace.
	* Makefile.am (package_revision.h): Generate it.
	* monotone.cc (package_revision.h): Include it.
	(cpp_main): Print it as part of --version.

2004-11-23  Nathaniel Smith  <njs@codesourcery.com>

	* tests/t_cleanup_empty_dir.at: New test.
	* testsuite.at: Call it.

2004-11-23  Nathaniel Smith  <njs@codesourcery.com>

	* monotone.texi (File Attributes): Document how restricted format
	of .mt-attrs currently is.  Also talk about 'the' .mt-attrs file
	instead of 'an', in response to confusion.

2004-11-23  Nathaniel Smith  <njs@codesourcery.com>

	* work.cc (build_deletion): Add missing newline.
	(build_rename): Likewise.
	(build_rename): Likewise.

2004-11-23  Nathaniel Smith  <njs@codesourcery.com>

	* work.cc: Remove tabs.

2004-11-23  Nathaniel Smith  <njs@codesourcery.com>

	* commands.cc: Remove tabs.

2004-11-23  Nathaniel Smith  <njs@codesourcery.com>

	* tests/t_add_dot.at: New test.
	* testsuite.at: Call it.

2004-11-22  Joel Rosdahl  <joel@rosdahl.net>

	* testsuite.at (NEED_UNB64): Check that python knows how to decode
	strings before using it.

2004-11-21  Joel Rosdahl  <joel@rosdahl.net>

	* testsuite.at (NEED_UNB64): Find more programs for decoding
	base64.

2004-11-20  Nathaniel Smith  <njs@codesourcery.com>

	* tests/t_merge_1.at: New test.
	* testsuite.at: Add it.
	(NEED_UNB64): New macro.
	(UNB64): Likewise.
	* tests/t_unidiff.at: Use them.
	* tests/t_unidiff2.at: Likewise.

2004-11-19  Nathaniel Smith  <njs@codesourcery.com>

	* tests/t_initfork.at: Remove file; redundant with
	t_merge2_add.at.
	* testsuite.at: Don't call it.

2004-11-18  Derek Scherger  <derek@echologic.com>

	* commands.cc (list tags): new command.
	* monotone.1: update.
	* monotone.texi: update.
	* std_hooks.lua: remove unused get_problem_solution hook.
	* test/t_tags.at: new test.
	* testsuite.at: call it.

2004-11-18  Nathaniel Smith  <njs@codesourcery.com>

	* monotone.texi (Committing Work): Remove mistakenly added
	redundant command line argument.

2004-11-17  Joel Rosdahl  <joel@rosdahl.net>

	* commands.cc (diff): Don't print hashes around diff output if
	there is no diff to print.

	Fix bugs #8714 "monotone update working copy to previous version"
	and #9069 "update with multiple candidates":
	* commands.cc (update): Let the update command take an optional
	revision target parameter. Without an explicit revision target,
	the current branch head is used just like before. Added logic for
	updating to an older revision or another revision reachable via a
	common ancestor.
	* tests/t_update_to_revision.at: Add regression tests for new
	update logic.
	* testsuite.at: Add new test.
	* monotone.texi: Document new update argument.

2004-11-17  Nathaniel Smith  <njs@codesourcery.com>

	* netsync.cc (request_fwd_revisions): Rename 'first_attached_edge'
	to 'an_attached_edge', because it does not represent the first
	attached edge.  Likewise for 'first_attached_cset'.
	(analyze_attachment): Remove early exit from loop; we want to
	analyze the entire graph, not just some linear subgraphs.

	* revision.cc (ensure_parents_loaded): Filter out the null
	revision when calculating parents.
	* change_set.hh (null_id): Define for 'revision_id's.

	* tests/t_merge2_add.at: New test.
	* tests/t_merge2_data.at: New test.
	* tests/t_related_merge2_data.at: New test.
	* tests/t_merge_add.at: New test.
	* tests/t_netsync_pubkey.at: New test.
	* tests/t_netsync_repeated.at: New test.
	* tests/t_netsync_unrelated.at: New test.


	* testsuite.at: Add new tests.
	(NETSYNC_SETUP): New macro.
	(MONOTONE2): New macro.
	(RUN_NETSYNC): New macro.
	(ADD_FILE): New macro.
	(SET_FILE): New macro.
	(COMMIT): New macro.
	* tests/t_netsync.at: Use them.

	* tests/t_singlenetsync.at: Add 'netsync' keyword'.  Rename to...
	* tests/t_netsync_single.at: ...this.

	* tests/t_heads_discontinuous_branch.at: XFAIL it.

2004-11-17  Nathaniel Smith  <njs@codesourcery.com>

	* netsync.cc: Remove hard tabs.

2004-11-17  Nathaniel Smith  <njs@codesourcery.com>

	* revision.cc: Remove hard tabs.
	* change_set.hh: Likewise.

2004-11-16  Nathaniel Smith  <njs@codesourcery.com>

	* tests/t_heads.at: Replace last tricky case with a less tricky case.
	* tests/t_heads_discontinuous_branch.at: New test for the really
	tricky case.
	* testsuite.at: Run it.

2004-11-16  Nathaniel Smith  <njs@codesourcery.com>

	* views.sql (trusted_parents_in_branch): Remove.
	(trusted_children_in_branch): Remove.
	(trusted_branch_members): New view.
	(trusted_branch_parents): New view.
	(branch_heads): Use the new views, not the removed ones.

	* database.cc (get_heads): Column name in 'branch_heads'
	unavoidably changed from 'id' to 'parent'; adjust SELECT statement
	to use new name.

2004-11-16  Nathaniel Smith  <njs@codesourcery.com>

	* database.cc: Remove hard tabs.

2004-11-16  Nathaniel Smith  <njs@codesourcery.com>

	* commands.cc (dump_diffs): Fetch delta destination, not source,
	on new files.

2004-11-15  Joel Rosdahl  <joel@rosdahl.net>

	* tests/t_diff_added_file.at: Added testcase exposing a bug in
	"monotone diff x y" where x is an ancestor of y and y adds a new
	file.
	* testsuite.at: Add new test.

2004-11-14  Joel Rosdahl  <joel@rosdahl.net>

	Fix bug #9092 "add command to change passphrase":
	* commands.cc (chkeypass): New command.
	* keys.cc (get_passphrase): Added parameters for prompt beginning and
	disabling hook lookup and passphrase caching.
	* keys.hh, keys.cc (change_key_passphrase): New function.
	* database.hh, database.cc (delete_private_key): New function.
	* monotone.texi (Key and Cert): Document command.
	* tests/t_chkeypass.at: Testcase for the command.
	* testsuite.at: Added new testcase.

2004-11-14  Matt Johnston <matt@ucc.asn.au>

	* tests/t_initfork.at: New test for merging two ancestor-less heads.

2004-11-13  Nathaniel Smith  <njs@codesourcery.com>

	* tests/t_heads.at: New test.
	* testsuite.at: Add it.

2004-11-13  Nathaniel Smith  <njs@codesourcery.com>

	* monotone.texi: Fix various typos.
	(Committing Work): Add missing command line argument.
	(Branch Names): New section.
	Add me to the copyright block.

2004-11-12  Joel Rosdahl  <joel@rosdahl.net>

	* monotone.texi: Fix documentation of the approve and disapprove
	commands. Fix jp.co.juicebot.jb7 branch name in examples. Other
	minor fixes.

2004-11-11  Joel Rosdahl  <joel@rosdahl.net>

	* monotone.texi: Fix typos.

2004-11-08  graydon hoare  <graydon@pobox.com>

	* monotone.texi: Some minor cleanups.
	* netsync.cc: Fix a formatter.

2004-11-07  graydon hoare  <graydon@pobox.com>

	* figures/*.txt: Drop.
	* monotone.texi: Pull ASCII figures back in conditionally.
	* NEWS, AUTHORS, monotone.spec: Update for 0.15.
	* monotone.1: Update.

2004-11-06  graydon hoare  <graydon@pobox.com>

	* README.changesets: New file.
	* config.guess, config.sub: Remove.
	* Makefile.am: Improve document-building brains.
	* cert.cc, netsync.cc: Remove include.
	* configure.ac: Bump version number.
	* merkle_tree.{cc,hh}: Use unsigned char in dynamic_bitset.
	* po/POTFILES.in: Update to remove os_specific.hh.
	* po/monotone.pot: Regenerate.

2004-11-05  graydon hoare  <graydon@pobox.com>

	* constants.cc: Up timeout, connection limit.
	* monotone.texi: Various cleanups.

2004-11-05  Ulrich Drepper  <drepper@redhat.com>

	* configure.ac: Reduce dependencies.
	* lua/lua.h: Include config.h.
	* mkstemp.{cc,hh}: Use system variant when found.
	* netxx/resolve_getaddrinfo.cxx: Check for AI_ADDRCONFIG
	definition.
	* po/POTFILES.in: Update to mention changes.
	* Makefile.am (EXTRA_DIST): Include spec file.
	* commands.cc (diff): No output if empty diff.

2004-10-31  graydon hoare  <graydon@pobox.com>

	* commands.cc (diff): Use guess_binary.
	Fix up some messages to fit on single lines.
	* Makefile.am: Make monotone.pdf depend on figures.
	* change_set.cc: Make inversion drop "delete deltas".
	* texinfo.css: Make images align nicely.
	* netsync.cc: Fix up some messages to be clearer.

2004-10-30  graydon hoare  <graydon@pobox.com>

	* figures/*: New figures.
	* monotone.texi: Rewrite much of the tutorial.

2004-10-30  Nathaniel Smith  <njs@codesourcery.com>

	* netsync.cc (process_hello_cmd): Make clear that when the
	server's key is unknown, we abort the connection.

2004-10-29  Nathaniel Smith  <njs@codesourcery.com>

	* sanity.cc (dump_buffer): Wrap bare string in call to string(),
	to disambiguate conversions (required by Boost 1.30).

2004-10-26  graydon hoare  <graydon@pobox.com>

	* tests/t_update_missing.at: New test from Bruce Stephens
	* testsuite.at: Call it.
	* change_set.cc: Fix the error exposed by it.

2004-10-26  graydon hoare  <graydon@pobox.com>

	* work.{cc,hh}: Comply with Derek's new tests.
	* commands.cc: Likewise.

2004-10-28  Derek Scherger  <derek@echologic.com>

	* tests/t_rename.at: add test for renaming a file after it has
	been moved rather than before
	* tests/t_revert.at: add test for reverting a missing file

2004-10-28  Derek Scherger  <derek@echologic.com>

	* tests/t_drop_missing.at: New test.
	* testsuite.at: Call it.

2004-10-28  Derek Scherger  <derek@echologic.com>

	* tests/t_add.at: New test.
	* testsuite.at: Call it.

2004-10-26  graydon hoare  <graydon@pobox.com>

	* basic_io.{cc,hh}: Rework to use indented stanzas.
	* change_set.cc, revision.cc: Likewise.
	* change_set.cc: Fix formatter bug.
	* commands.cc: Sanity check file ID on delta commit.
	* work.cc: Chatter a bit more on add/drop.

2004-10-17  graydon hoare  <graydon@pobox.com>

	* merkle_tree.cc: Fix bad logging.
	* netsync.cc: Fix transmission bugs.
	* work.cc: Add some progress messages back in.
	* monotone.texi: Change contents of MT/work in example.

2004-10-17  graydon hoare  <graydon@pobox.com>

	* commands.cc (log): Keep a seen list, mask frontier by it.
	* monotone.texi: Updates to cover revision terminology.

	Also various further merges from trunk, see below.

2004-10-17  Derek Scherger  <derek@echologic.com>

	* lua.{cc,hh} (hook_ignore_branch): new hook
	* commands.cc (ls_branches): call it
	* monotone.texi (Hook Reference): describe it

2004-10-17  Richard Levitte  <richard@levitte.org>

	fix bug 8715 and more
	* diff_patch.cc (struct unidiff_hunk_writer,
	unidiff_hunk_writer::flush_hunk): the skew is not just the
	size difference between added and deleted lines in the current
	hunk, it's the size difference between /all/ added and deleted
	lines so far.  Therefore, the skew needs to be a member of the
	struct rather than being something calculated for each hunk.
	Furthermore, we need to add trailing context even if the change
	only consisted of one line.

2004-10-17  Richard Levitte  <richard@levitte.org>

	* monotone.texi (Working Copy): Change the description of
	'monotone revert' to explain what happens when there are
	arguments.

2004-10-17  Richard Levitte  <richard@levitte.org>

	* monotone.texi (OPTIONS): Add a description of --ticker.

	* ui.cc, ui.hh: Rethink the writing conditions as the ticks being
	"dirty" when they have changed since the last print.  That way,
	it's very easy to see when they need being printed.  This fixes a
	small bug where, in some cases, the exact same tick output is
	produced twice, once before a separate message, and once after,
	when a ticker is actually being removed.
	(tick_write_dot::write_ticks): Add a line that describes the
	ticks, including the amount of each tick per short name.

2004-10-17  Richard Levitte  <richard@levitte.org>

	fix bug 8733
	* ui.cc, ui.hh: Define a separate tick writer struct, and two
	subclasses, one that write counters, and one that writes progress
	characters.  As a consequence, move the count to the ticker class
	itself, and have the user interface contain a map of pointers to
	tickers instead of a map of counters, so data is easier to expand
	and access in a consistent manner.  Finally, correct a few errors
	in the checks for when ticks should be written, and make sure the
	final value gets written when the tickers are removed.

	* cert.cc (write_ancestry_paths):
	* database.cc (rehash):
	* netsync.cc (call_server, rebuild_merkle_trees):
	* rcs_import.cc (import_cvs_repo, cvs_history): Adapt to the new
	tickers.

	* monotone.cc: Add the option '--ticker' which takes the values
	"dot" or "count" to express which type of tick writer to use.  As
	a result, set the tick writer to be the progress dot kind or the
	counting type.

2004-10-15  graydon hoare  <graydon@pobox.com>

	* std_hooks.lua (get_revision_cert_trust): Add.

2004-10-14  graydon hoare  <graydon@pobox.com>

	* main.cc (UNIX_STYLE_SIGNAL_HANDLING): Enable on OSX.
	* cryptopp/*: Upgrade to 5.2.1
	* Makefile.am: Adjust for a couple new files.

2004-10-13  graydon hoare  <graydon@pobox.com>

	* change_set.cc (__STDC_CONSTANT_MACROS): Further hammering.
	* commands.cc (changesetify): New subcommand to db.
	* database.{cc,hh} (sql): Install views.
	(install_views): New function.
	(get_manifest_certs): Restore old variant.
	* numeric_vocab.hh: Use stdint.h.
	* revision.{cc,hh} (analyze_manifest_changes)
	(construct_revisions)
	(build_changesets): New functions.
	* schema.sql: Remove views stuff.
	* views.sql: Put views here.
	* schema_migration.cc: Add migration code for revisions.
	* Makefile.am: Mention views.sql.

2004-10-12  graydon hoare  <graydon@pobox.com>

	* unix/read_password.cc: Don't force echo on.

2004-10-10  graydon hoare  <graydon@pobox.com>

	merge a batch of changes from trunk, see below.
	* monotone.spec: Bump to 0.14.

2004-10-10  graydon hoare  <graydon@pobox.com>

	fix bug 9884
	* tests/t_singlenetsync.at: sleep 5
	* tests/t_netsync.at: sleep 5

2004-10-10  graydon hoare  <graydon@pobox.com>

	* AUTHORS: Mention Richard Levitte.
	* Makefile.am: Remove nonce stuff.
	* NEWS: Describe changes from last release.
	* cert.cc (cert_manifest_testresult): Teach about other ways
	of writing a boolean value.
	* commands.cc (commit): Don't commit when no change.
	(debug): Rename to "db execute".
	(serve): Require passphrase on startup.
	(bump): Remove command.
	(ls keys): Handle no keys.
	* configure.ac: Bump version number.
	* keys.cc (get_passphrase): Reject empty passphrase nicely,
	from user and from hook.
	* lua.{cc,hh} (hook_get_sorter): Dead code, remove.
	* main.cc (main_with_many_flavours_of_exception): s/char/int/.
	* monotone.cc (OPT_DUMP): New option.
	(OPT_VERBOSE): Rename as OPT_DEBUG.
	* monotone.{texi,1}: Document changes, s/rdiff/xdelta/.
	* nonce.{cc,hh}: Drop.
	* sanity.hh (sanity::filename): New field.
	* sanity.cc (dump_buffer): Dump to file or be silent.
	* testsuite.at (persist_phrase_ok): Define as true.
	* tests/t_null.at: Adjust for new option names.
	* unit_tests.cc: Set debug, not verbose.

2004-10-10  graydon hoare  <graydon@pobox.com>

	* tests/t_remerge.at: New test.
	* testsuite.at: Call it.

2004-10-10  graydon hoare  <graydon@pobox.com>

	* cryptopp/algebra.cpp:
	* cryptopp/asn.h:
	* cryptopp/hmac.h:
	* cryptopp/iterhash.h:
	* cryptopp/mdc.h:
	* cryptopp/modes.h:
	* cryptopp/osrng.h:
	* cryptopp/pubkey.h:
	* cryptopp/seckey.h:
	* cryptopp/simple.h:
	* cryptopp/smartptr.h:
	* cryptopp/strciphr.cpp:
	* cryptopp/strciphr.h:
	* lcs.cc:
	* lua.cc: Fixes for g++ 3.4 from Michael Scherer.
	* AUTHORS: Mention Michael.

2004-10-10  graydon hoare  <graydon@pobox.com>

	* tests/t_movedel.at: New test.
	* testsuite.at: Call it.

2004-10-10  graydon hoare  <graydon@pobox.com>

	* tests/t_movepatch.at: New test.
	* testsuite.at: Call it.

2004-10-10  graydon hoare  <graydon@pobox.com>

	* change_set.cc:
	* file_io.{cc,hh}: Bug Fixes.

2004-10-10  graydon hoare  <graydon@pobox.com>

	* cert.{cc,hh} (cert_revision_manifest): Bug fixes.
	* commands.cc (approve)
	(disapprove)
	(testresult): Teach about revisions.
	* tests/t_disapprove.at:
	* tests/t_i18n_file.at:
	* tests/t_ls_missing.at:
	* tests/t_testresult.at: Bug fixes.

2004-10-09  graydon hoare  <graydon@pobox.com>

	* netsync.cc:
	* packet.cc:
	* tests/t_i18n_file.at:
	* tests/t_netsync.at:
	* tests/t_single_char_filenames.at:
	* tests/t_singlenetsync.at: Bug fixes.

2004-10-04  graydon hoare  <graydon@pobox.com>

	* Makefile.am: Re-enable rcs stuff.
	* cert.{cc,hh}: Bug fixes.
	* change_set.{cc,hh} (apply_change_set)
	(apply_change_set_inverse): New helper functions.
	* commands.cc (log)
	(rcs_import)
	(cvs_import): Teach about revisions.
	* database.cc (get_version): Block reconstruction loops.
	* diff_patch.cc:
	* lua.cc:
	* netsync.cc: Remove references to obsolete includes.
	* rcs_file.cc: Pick up bug fix from trunk.
	* rcs_import.cc: Teach about revisions.

2004-10-03  graydon hoare  <graydon@pobox.com>

	* change_set.{cc,hh}: Lots of little bug fixes.
	* commands.cc: Likewise.
	* database.cc: Comment some chatter.
	* file_io.{cc,hh}: Bug fixes, remove unlink / hardlink stuff.
	* netcmd.cc: Bug fixes.
	* netsync.cc: Likewise.
	* tests/t_*.at: Teach about revisions.
	* testsuite.at: Likewise.
	* work.cc: Bug fixes.

2004-09-30  graydon hoare  <graydon@pobox.com>

	* app_state.cc: Inform db of app.
	* change_set.cc: Bug fixes.
	* commands.cc: Use delete_file not unlink.
	* database.{cc,hh}: Bug fixes in trust function machinery.
	* revisions.cc: Skip consideration of empty parents.
	* file_io.{cc,hh}: Remove unlink function.
	* schema.sql: Pass pubkey data into trust call.

2004-09-29  graydon hoare  <graydon@pobox.com>

	* change_set.cc: Various bug fixes, merge unit tests.

2004-09-26  graydon hoare  <graydon@pobox.com>

	* predicament.{cc,hh}: Remove.
	* Makefile.am: Update.
	* change_set.{cc,hh}: Compilation fixes.
	* commands.cc: Likewise.
	* file_io.{cc,hh}: Likewise, and implement link/unlink.
	* lua.{cc,hh}: Implement conflict resolver hooks.

2004-09-25  graydon hoare  <graydon@pobox.com>

	* change_set.{cc,hh}: Rewrite entirely.
	* work.cc: Adjust to compensate.
	* commands.cc: Likewise.
	* numeric_vocab.hh: Ask for C99 constant ctor macros.

2004-09-24  Derek Scherger  <derek@echologic.com>

	* app_state.{cc,hh} (initialize,prefix,in_restriction): rename
	restriction vars; require explicit subdir restriction with ".";
	remove restriction if any path evaluates to working copy root
	* commands.cc (update): disallow restricted updates
	(diff): use --manifest options for initialization
	* tests/t_restrictions.at: remove restricted update test
	* tests/t_subdirs.at: added (missed previously)
	* vocab.cc (verify): allow "." elements in local_path
	(test_file_path_verification): test for "." in paths

2004-09-20  Derek Scherger  <derek@echologic.com>

	* app_state.{cc,hh}: add message and manifest options; add subdir
	restriction; use set instead of vector for path restrictions
	(prefix): new method
	(add_restriction): change signature for set of path restrictions
	(in_restriction): renamed from is_restricted; adjust path matching
	(set_message): new method
	(add_manifest): new method
	(initialize): remove code to adjust restrictions from old options
	* commands.cc
	(restrict_patch_set, struct unknown_itemizer): rename
	app.is_restricted to app.in_restriction
	(add,drop,rename,revert): prefix file args with current subdir
	(update,status,ls_unknown,ls_missing): build restriction from args
	(commit): build restriction from args; use --message option
	(diff): build restriction from args; use --manifest options
	* file_io.cc (find_working_copy): logging tweaks
	* monotone.cc: remove --include/--exclude options; add --manifest
	and --message options
	* tests/t_attributes.at: add commit --message option
	* tests/t_cross.at: commit --message
	* tests/t_cwork.at: commit --message
	* tests/t_disapprove.at: commit --message
	* tests/t_drop.at: commit --message
	* tests/t_erename.at: commit --message; diff --manifest
	* tests/t_fork.at: commit --message
	* tests/t_genkey.at: commit --message
	* tests/t_i18n_file.at: commit --message
	* tests/t_import.at: commit --message
	* tests/t_ls_missing.at: commit --message
	* tests/t_merge.at: commit --message
	* tests/t_movedel.at: commit --message
	* tests/t_movepatch.at: commit --message
	* tests/t_netsync.at: commit --message
	* tests/t_persist_phrase.at: commit --message
	* tests/t_rename.at: commit --message
	* tests/t_renamed.at: commit --message
	* tests/t_restrictions.at: remove --include/--exlclude options
	* tests/t_revert.at: commit --message
	* tests/t_scan.at: commit --message
	* tests/t_single_char_filenames.at: commit --message
	* tests/t_testresult.at: commit --message
	* tests/t_unidiff.at: commit --message
	* tests/t_unidiff2.at: commit --message
	* tests/t_update.at: commit --message
	* tests/t_versions.at: commit --message

2004-09-19  graydon hoare  <graydon@pobox.com>

	* change_set.cc: More bug fixes.
	* basic_io.cc: Improve error reporting.
	* commands.cc (complete): Teach about revisions.
	* database.{cc,hh}: Add complete variant for revisions.

2004-09-19  graydon hoare  <graydon@pobox.com>

	* change_set.cc: Add a unit test, fix some bugs.

2004-09-18  graydon hoare  <graydon@pobox.com>

	* change_set.{cc,hh} (subtract_change_sets): New function.
	(build_pure_addition_change_set): New function.
	* commands.cc (try_one_merge): Teach about revisions
	(merge): Likewise.
	(propagate): Likewise.
	(update): Change from changeset inversion to negation.
	* database.{cc,hh} (get_manifest): New function.
	* cert.cc: Use it.

2004-09-13  graydon hoare  <graydon@pobox.com>

	* change_set.cc: Bug fixes.
	* commands.cc: Likewise.

2004-09-13  graydon hoare  <graydon@pobox.com>

	* change_set.{cc,hh}: Implement delta renaming and merging.
	* commands.cc
	(update): Teach about revisions.
	(agraph): Likewise.
	* diff_patch.{cc,hh}: Tidy up interface a bit.
	* database.{cc,hh} (get_revision_ancestry): New helper.
	* file_io.{cc,hh}
	(move_dir): New function.
	(delete_dir_recursive): New function.

2004-09-10  graydon hoare  <graydon@pobox.com>

	* basic_io.{cc,hh}: Move to more "normal" looking
	quoted output.
	* change_set.{cc,hh}: Extend, bugfix.
	* commands.cc (diff): Teach about revisions.
	* revision.{cc,hh}: Extend, bugfix.

2004-09-07  Derek Scherger  <derek@echologic.com>

	subdirectory restrictions

	* file_io.{hh,cc} (find_working_copy): new function
	(absolutify) use fs::current_path
	* work.cc (add_to_options_map): use options.insert to preserve
	previous settings
	* work.hh: add note about MT/options file to header comment
	* lua.{hh,cc} (load_rcfile): renamed from add_rcfile
	* app_state.{cc,hh} (constructor): remove read of MT/options
	(initialize): new methods to find/create working copy
	(set_stdhooks,set_rcfiles,add_rcfile,load_rcfiles,read_options):
	new methods
	(set_database,set_branch,set_signing_key): update for new options
	reading
	* monotone.cc: update help for --norc option
	(cpp_main): move loading of lua hooks to app_state after book
	keeping dir is found
	* commands.cc: all commands call app initialize to relocate to
	working copy directory
	(bookdir_exists,ensure_bookdir) remove
	(setup) new command to create working copy
	* tests/t_subdirs.at: new test
	* testsuite.at: call new setup command to initialize working copy;
	call new test
	(PROBE_NODE): adjust for new checkout requirement that MT dir does
	not exist
	* tests/t_attributes.at: ditto
	* tests/t_cwork.at: ditto
	* tests/t_single_char_filenames.at: ditto
	* tests/t_versions.at: ditto

2004-09-06  graydon hoare  <graydon@pobox.com>

	* Makefile.am: Revise,
	* cert.{cc,hh}: Minor bug fixes.
	* change_set.{cc,hh}
	(apply_path_rearrangement): New variant.
	(read_path_rearrangement): New function.
	(write_path_rearrangement): New function.
	* commands.cc: Partially teach about revisions.
	* database.{cc,hh}: Bug fixes.
	* revision.cc: Print new manifest as hex.
	* schema.sql: Fix typos.
	* update.{cc,hh}: Teach about revisions.

2004-09-06  graydon hoare  <graydon@pobox.com>

	* Makefile.am (unit_tests): Revise.
	* change_set.{cc,hh}: Move accessors to header.
	* constants.cc (netcmd_current_protocol_version): Bump.
	(netcmd_minimum_bytes_to_bother_with_gzip): Expand to 0xfff.
	* database.{cc,hh}: Teach about reverse deltas, bug fixes.
	* diff_patch.{cc,hh}: Remove dead code.
	* merkle_tree.{cc,hh}: Teach about revisions.
	* netsync.cc: Teach about revisions, reverse deltas.
	* packet.{cc,hh}: Likewise.
	* unit_tests.{cc,hh}: Reactivate tests.

2004-09-02  Derek Scherger  <derek@echologic.com>

	* tests/t_restrictions.at: rework and attempt to clean things up a
	bit; add test for bug in restrict_patch_set
	* commands.cc (restrict_patch_set): fix bug in removal of
	restricted adds/dels/moves/deltas

2004-08-28  graydon hoare  <graydon@pobox.com>

	* Makefile.am (unit_tests): Split out working parts.
	* basic_io.{cc,hh}: Minor fixes.
	* cert.{cc,hh}: Fixes, remove major algorithms.
	* revision.{cc,hh}: Rewrite algorithms from cert.cc.
	* change_set.{cc,hh}: Extensive surgery, unit tests.
	* database.{cc,hh}: Minor fixes.
	* file_io.{cc,hh}: Likewise.
	* lua.cc: Likewise.
	* packet.{cc,hh}: Teach about revisions.
	* schema.sql: Drop some optimistic tables.
	* unit_tests.{cc,hh}: Add revision, change_set tests.
	* vocab.cc: Instantiate revision<cert>.
	* work.{cc,hh}: Rewrite in terms of path_rearrangement.

2004-08-17  graydon hoare  <graydon@pobox.com>

	* database.cc: Simplified.
	* schema.sql: Simplified.
	* transforms.cc: Fixed bug.
	* revision.{hh,cc}: Stripped out tid_source.
	* change_set.{cc,hh}: Oops, never committed!

2004-08-16  graydon hoare  <graydon@pobox.com>

	* change_set.{hh,cc}: Simplified, finished i/o.
	* revision.{hh,cc}: Fix to match, redo i/o.
	* basic_io.cc (basic_io::parser::key): Print trailing colon.
	* vocab.hh: Whitespace tweak.

2004-08-09  graydon hoare  <graydon@pobox.com>

	* change_set.{hh,cc}: New files.
	* basic_io.{hh,cc}: New files.
	* predicament.{hh,cc}: New files.
	* revision.{hh,cc}: Break completely, need to fix.
	* diff_patch.{hh,cc}: Minor touchups.
	* lua.{hh,cc}, std_hooks.lua: Model predicaments.
	* Makefile.am: Update.

2004-07-10  graydon hoare  <graydon@pobox.com>

	* lcs.{hh,cc}: Move lcs.hh body into lcs.cc.
	* diff_patch.cc: Modify to compensate.
	* revision.{hh,cc}: New files.
	* Makefile.am: Update
	* patch_set.{hh,cc}: Remove.
	* {cert,database,lua,packets}.{hh,cc}, commands.cc:
	Modify partially (incomplete) to use revisions.
	* manifest.{hh,cc}: Cleanup, remove dead code.
	* schema.sql: Declare new revision tables.
	* schema_migration.cc: Incomplete migrator.
	* {transforms.{hh,cc}, vocab{,_terms}.hh:
	Infrastructure for revisions.

2004-07-20  Derek Scherger  <derek@echologic.com>

	* tests/t_restrictions.at: new test
	* testsuite.at: run it
	* app_state.{cc,hh} (add_restriction, is_restricted): new functions
	* monotone.cc (--include,--exclude): new options
	* commands.cc (restrict_patch_set): new function. called by
	commit, update, status, diff commands

2004-07-05  graydon hoare  <graydon@pobox.com>

	* cert.cc (operator<): Fix wrong ordering of
	fields.

2004-06-07  graydon hoare  <graydon@pobox.com>

	* cryptopp/algebra.cpp:
	* cryptopp/asn.h:
	* cryptopp/hmac.h:
	* cryptopp/iterhash.h:
	* cryptopp/mdc.h:
	* cryptopp/modes.h:
	* cryptopp/osrng.h:
	* cryptopp/pubkey.h:
	* cryptopp/seckey.h:
	* cryptopp/simple.h:
	* cryptopp/smartptr.h:
	* cryptopp/strciphr.cpp:
	* cryptopp/strciphr.h:
	* lcs.hh:
	* lua.cc: Fixes for g++ 3.4 from Michael Scherer.
	* AUTHORS: Mention Michael.

2004-05-28  graydon hoare  <graydon@pobox.com>

	* tests/t_movedel.at: New test.
	* testsuite.at: Call it.
	* diff_patch.cc (adjust_deletes_under_renames): New function.
	(merge3): Use it.

2004-05-27  graydon hoare  <graydon@pobox.com>

	* tests/t_movepatch.at: New test.
	* testsuite.at: Call it.
	* diff_patch.cc (adjust_deltas_under_renames): New function.
	(merge3): Use it.

2004-05-20  graydon hoare  <graydon@pobox.com>

	* NEWS: Note 0.13 release.
	* configure.ac: Bump version number.
	* monotone.spec: Likewise.

2004-05-19  graydon hoare  <graydon@pobox.com>

	* file_io.cc (tilde_expand): Fix fs::path use.

2004-05-18  graydon hoare  <graydon@pobox.com>

	* diff_patch.cc (apply_directory_moves): Fix fs::path use.
	* file_io.cc (write_data_impl): Likewise.
	* packet.cc: Use explicit true/false maps in caches.
	* sanity.cc (dump_buffer): Write to clog (buffered).

2004-05-16  graydon hoare  <graydon@pobox.com>

	* keys.cc (get_passphrase): Reimplement.
	* unix/read_password.c: Remove.
	* {unix,win32}/read_password.cc: Add.
	* constants.{hh,cc} (maxpasswd): New constant.
	* Makefile.am: Teach about platform specific stuff.

2004-05-16  graydon hoare  <graydon@pobox.com>

	* diff_patch.cc (merge2): Don't discard files on one side.
	* std_hooks.lua (merge2_xxdiff_cmd): Specify merge filename.

2004-05-14  Joel Rosdahl  <joel@rosdahl.net>

	* std_hooks.lua (ignore_file): Quote dots in .svn patterns.
	* monotone.texi: Updated ignore_file hook example.

2004-05-13  Nathaniel Smith  <njs@codesourcery.com>

	* commands.cc: Include boost/filesystem/path.hpp,
	boost/filesystem/convenience.hpp.
	(checkout): Make checkout directory an fs::path, not a local_path.

2004-05-13  Nathaniel Smith  <njs@codesourcery.com>

	* testsuite.at (test_hooks.lua): Add a 'test_attr' attribute
	hook.  Add tests t_attributes and t_single_char_filenames.
	* tests/t_attributes.at: New test.
	* tests/t_single_char_filenames.at: New test.
	* manifest.cc (read_manifest_map): Replace ".+" with ".*" to
	support single-character filenames.
	* work.cc (read_work_set): Likewise.
	(read_attr_map): Likewise.

2004-05-13  Nathaniel Smith  <njs@codesourcery.com>

	* monotone.texi (Hook Reference): Update documented default
	definitions of 'merge2' and 'merge3'.

2004-05-12  graydon hoare  <graydon@pobox.com>

	* AUTHORS: Rename Netxx back to netxx. Really, look in
	the manifest; it's been renamed!
	* configure.ac: Remove prg_exec_monitor checks.

2004-05-12  Nathaniel Smith  <njs@pobox.com>

	* AUTHORS: Remove discussion of adns, since we no longer
	distribute it.  Fix capitalization of "Netxx".

2004-05-12  Nathaniel Smith  <njs@pobox.com>

	* std_hooks.lua (merge2): Support xemacs.  Add error message
	if no merge tool is found.
	(merge3): Likewise.  Also add (disabled) hook to use CVS
	'merge' command, as a demonstration of how to.

2004-05-12  graydon hoare  <graydon@pobox.com>

	* std_hooks.lua (get_author): Remove standard definition.
	* monotone.texi: Document change.

2004-05-12  graydon hoare  <graydon@pobox.com>

	* cert.cc (cert_manifest_author_default): Use default signing key
	name for default author, if lua hook fails.

2004-05-12  Joel Rosdahl  <joel@rosdahl.net>

	* file_io.cc (walk_tree): Removed extraneous newline in error
	message.

	* std_hooks.lua (edit_comment): Added missing newline in log
	message template.

	* tests/t_ls_missing.at: New test case.
	* testsuite.at: Added t_ls_missing.at.

2004-05-10  graydon hoare  <graydon@pobox.com>

	* nonce.cc, nonce.hh: New files.
	* Makefile.am: Note new files.
	* lua.cc, lua.hh (hook_get_nonce): New hook.
	* commands.cc (bump): New command.
	* commands.cc: Remove "(file|manifest)" args most places.
	* tests/t_disapprove.at
	* tests/t_genkey.at
	* tests/t_singlenetsync.at
	* tests/t_netsync.at
	* tests/t_persist_phrase.at: Adjust to compensate.
	* monotone.texi, monotone.1: Adjust to compensate.
	* work.cc, work.hh: Constify some arguments.

2004-05-09  graydon hoare  <graydon@pobox.com>

	* diff_patch.cc: Remove recording of file merge ancestry.

2004-05-09  graydon hoare  <graydon@pobox.com>

	* commands.cc (ls_missing): Modify to account for work.

2004-05-09  graydon hoare  <graydon@pobox.com>

	* commands.cc (list missing): New command.
	* monotone.texi, monotone.1: Update to document.

2004-05-08  graydon hoare  <graydon@pobox.com>

	* main.cc: New file encompassing prg_exec_monitor.
	* mkstemp.cc, mkstemp.hh: New portable implementation.
	* lua.cc: Use mkstemp from bundled version.
	* lua/liolib.c: Remove old mkstemp definition.
	* monotone.cc (cpp_main): Remove prg_exec env setting.
	* sanity.cc (sanity::dump_buffer): Dump logbuf to stderr, not stdout.
	* std_hooks.lua (temp_file): Use mkstemp not io.mkstemp.
	* Makefile.am (MOST_SOURCES): Add new files.

2004-05-03  Joel Rosdahl  <joel@rosdahl.net>

	* monotone.texi: Removed extraneous @ftable directive.

2004-05-02  graydon hoare  <graydon@pobox.com>

	* monotone.texi: Add stuff on selectors, new hooks.
	* AUTHORS: Typo fix.
	* configure.ac: Bump version number.

	Release point (v 0.12).

2004-05-02  Joel Rosdahl  <joel@rosdahl.net>

	Made it possible to rename a rename target and to undo a rename.
	I.e.: Given a rename set A -> B, "monotone rename B C" gives the
	rename set A -> C and "monotone rename B A" gives the empty rename
	set.
	* work.cc (visit_file): Implement new behavior.
	* tests/t_rename.at: Added test cases for new behavior.
	* monotone.texi: Note that a rename can be undone.

	Fix bug #8458:
	* file_io.hh, file_io.cc (walk_tree): Added require_existing_path
	parameter.
	* work.cc (build_deletion): Pass new parameter to walk_tree.
	* work.cc (build_rename): Ditto.

	* manifest.cc (build_manifest_map): Fix missing file check for
	i18n paths.

2004-05-01  Joel Rosdahl  <joel@rosdahl.net>

	Fix bug #7220:
	* manifest.cc (build_manifest_map): Handle missing file
	gracefully.

	* file_io.cc (walk_tree): Handle nonexistent file/directory
	gracefully.

2004-04-30  Christof Petig <christof@petig-baender.de>

	* rcs_import.cc (store_trunk_manifest_edge):
		skip ancestry to empty manifest
	* rcs_import.cc (process_branch):
		also follow branches of last/first versions

2004-04-29  graydon hoare  <graydon@pobox.com>

	* configure.ac: Fix up windows probe and bundling checks.
	* netxx/resolve_getaddrinfo.cxx: Local hack for stream addresses.
	* netsync.cc: Report address before listening.

2004-04-29  graydon hoare  <graydon@pobox.com>

	* cert.cc (get_branch_heads): Calculate a "disapproved version"
	attribute which culls a version with only disapproved ancestry
	edges.
	* monotone.texi: Fix some ascii-art diagrams.

2004-04-28  Christof Petig <christof@petig-baender.de>

	* command.cc (heads):
	show date and author certificates for each head

2004-04-28  Christof Petig <christof@petig-baender.de>

	* configure.ac:
	default to using the bundled SQLite

2004-04-28  Christof Petig <christof@petig-baender.de>

	* commands.cc (log):
	support optional file argument to show change log for
	e.g. monotone log [ID] cert.cc

2004-04-26  Christof Petig <christof@petig-baender.de>

	* rcs_import.cc (process branch):
	insert dummy cvs_edge to mark newly added file
	as previously non existant

2004-04-25  Joel Rosdahl  <joel@rosdahl.net>

	* po/stamp-po: Removed since it's generated.
	* std_hooks.lua (ignore_file): Corrected name of Subversion's
	administrative directory.
	* work.hh: Ditto.
	* monotone.texi (Hook Reference): Updated default definition of
	ignore_file.

2004-04-23  Christof Petig <christof@petig-baender.de>

	* rcs_import.cc (build_parent_state, build_child_state):
	remove dying files from manifest
	* rcs_import.cc (cvs_file_edge, note_file_edge):
	calculate state and remember it (alive or dead)

2004-04-23  Christof Petig <christof@petig-baender.de>

	* rcs_import.cc (import_rcs_file_with_cvs):
	do not include dead files in head_manifest

2004-04-22  Christof Petig <christof@petig-baender.de>

	* rcs_file.cc, rcs_file.hh: read and remember 'state' of revision
	* rcs_import.cc: remove Attic/ part from path

2004-04-21  Christof Petig <christof@petig-baender.de>

	* configure.ac: enable use of installed SQLite library

2004-04-20  graydon hoare  <graydon@pobox.com>

	* lua.hh, lua.cc (hook_note_commit): New hook.
	* commands.cc (commit): Call it.

2004-04-19  graydon hoare  <graydon@pobox.com>

	* cert.cc: Make trust messages nicer.
	* merkle_tree.cc: Clarify logging messages.
	* netsync.cc: Reorganize tickers, put client in txn.
	* packet.cc, packet.hh: Teach about constructability.

2004-04-16  graydon hoare  <graydon@pobox.com>

	* netsync.cc (session::extra_manifests): New member.
	(session::analyze_ancestry_graph): Use it.
	* tests/t_singlenetsync.at: New test for single manifest sync.
	* testsuite.at: Call it.

2004-04-14  Tom Tromey  <tromey@redhat.com>

	* rcs_import.cc (import_cvs_repo): Use require_password.
	Include keys.hh.
	* keys.hh (require_password): Declare.
	* keys.cc (require_password): New function.

2004-04-13  Tom Tromey  <tromey@redhat.com>

	* monotone.texi: Typo fixes.

2004-04-10  graydon hoare  <graydon@pobox.com>

	* netsync.cc: Minor bug fixes.

2004-04-10  graydon hoare  <graydon@pobox.com>

	* database.{cc,hh}:
	* commands.{cc,hh}:
	* lua.{cc,hh}:
	* std_hooks.lua:
	* vocab_terms.hh:
	Implement first cut at selectors.

2004-04-10  graydon hoare  <graydon@pobox.com>

	* cert.cc (operator<): Include name in compare.
	(operator==): Likewise.
	* packet.cc: Include shared_ptr.
	* rcs_file.cc: Rewrite by hand, no spirit.
	* rcs_import.cc: Change ticker names a bit.

2004-04-09  graydon hoare  <graydon@pobox.com>

	* app_state.cc: Fix a couple file path constructions.
	* file_io.cc (book_keeping_file): Make one variant static.
	* manifest.cc: Remove some dead code in walkers.
	* work.cc: Ditto.
	* rcs_file.cc: fcntl fix from Paul Snively for OSX.

2004-04-09  graydon hoare  <graydon@pobox.com>

	* file_io.cc: Fix boost filesystem "." and ".." breakage.
	* lua.cc: Fix format of log entry.
	* monotone.cc: Log locale settings on startup.
	* sanity.cc: Dump prefix on --verbose activation.
	* testsuite/t_i18n_file.at: Fix autotest LANG breakage.
	* testsuite/t_null.at: Account for chatter with --verbose.

2004-04-09  graydon hoare  <graydon@pobox.com>

	* configure.ac: Comment out check for sse2,
	set bundling to true by default.
	* INSTALL: describe changes to bundling.
	* Makefile.am: Remove vestiges of depot.

2004-04-07  graydon hoare  <graydon@pobox.com>

	* adns/*:
	* network.{cc,hh}:
	* proto_machine.{cc,hh}:
	* {http,smtp,nntp}_tasks.{cc,hh}:
	* tests/t_{http,smtp,nntp,proxy}.at:
	* url.{cc,hh}:
	* depot.cc:
	Delete files.
	* commands.cc:
	* lua.{cc,hh}:
	* database.{cc,hh}: Remove network/queue stuff.
	* configure.ac:
	* constants.{cc,hh}:
	* tests/t_{netsync,singlecvs,cvsimport}.at:
	* testsuite.at:
	* transforms.{cc,hh}:
	* unit_tests.{cc,hh}:
	* vocab_terms.hh:
	* vocab.{cc,hh}:
	* Makefile.am: Adjust for deletions.
	* app_state.hh: Cleanup.
	* monotone.texi: Fix some typos.
	* packet.{cc,hh}: Implement database ordering.
	* netsync.cc: Massage to use new packet logic.
	* commands.cc:
	* std_hooks.lua: Add initial selector stuff.

2004-03-29  graydon hoare  <graydon@pobox.com>

	* monotone.spec: Update for 0.11 release.

	Release point (v 0.11).

2004-03-29  graydon hoare  <graydon@pobox.com>

	* Makefile.am (DISTCHECK_CONFIGURE_FLAGS): Set.
	* commands.cc: Tidy up / narrow output width.
	* patch_set.cc: Likewise.
	* monotone.texi: Cleanups for PDF generation.

2004-03-28  graydon hoare  <graydon@pobox.com>

	* NEWS: Mention 0.11 release.
	* AUTHORS: Mention Robert.

2004-03-28  Robert Bihlmeyer  <robbe+mt@orcus.priv.at>

	* file_io.cc (walk_tree_recursive): Ignore broken symlinks.

2004-03-27  graydon hoare  <graydon@pobox.com>

	* monotone.texi: Flesh out netsync stuff, remove old network stuff.
	* monotone.1: Likewise.

2004-03-27  Robert Helgesson  <rycee@home.se>

	* Makefile.am:
	* configure.ac:
	* database.cc:
	* depot.cc:
	* lua.cc:
	* network.cc:
	* schema_migration.cc: Bundled library switch logic.

2004-03-27  graydon hoare  <graydon@pobox.com>

	* depot.cc (dump): Implement.
	* tests/t_http.at, test/t_proxy.at: Use "depot.cgi dump" rather than sqlite.
	* sqlite/pager.h: Change page size.
	* README: Massage slightly.
	* INSTALL: Write real installation instructions.
	* Makefile.am: Include build of "one big page" docs.
	* boost/circular_buffer_base.hpp: Another boost version insulation fix.
	* vocab.cc (verify): Normalize local_path's during verification on boost 1.31.0.
	* monotone.texi: Rip out some of the pre-netsync networking docs.

2004-03-24  graydon hoare  <graydon@pobox.com>

	* boost/circular_buffer_base.hpp: Boost version insulation.
	* cert.cc, cert.hh, commands.cc: Differentiate "unknown" keys from "bad".
	* xdelta.cc, proto_machine.cc: Fix boost version insulation.

2004-03-24  graydon hoare  <graydon@pobox.com>

	* rcs_import.cc (import_substates): Filter by branch.
	* xdelta.cc: Minor bits of insulation.

2004-03-24  graydon hoare  <graydon@pobox.com>

	* AUTHORS: Mention Robert.
	* configure.ac: Enable sse2 stuff.
	* monotone.spec: Adjust CFLAGS and CXXFLAGS
	* monotone.texi (Network Service): Expand a bit.

2004-03-24  Robert Helgesson  <rycee@home.se>

	* commands.cc:
	* http_tasks.cc:
	* lua.cc:
	* manifest.cc:
	* netsync.cc:
	* nntp_tasks.cc:
	* proto_machine.cc:
	* work.cc:
	* xdelta.cc:
	Portability fixes for boost 1.31.0

2004-03-22  graydon hoare  <graydon@pobox.com>

	* cryptopp/integer.cpp, integer.h: Enable SSE2 multiply code.
	* database.cc, database.hh, certs.cc: Speed up 'heads'.

2004-03-21  graydon hoare  <graydon@pobox.com>

	* lcs.hh, sanity.hh: Minor performance tweaks.

2004-03-20  graydon hoare  <graydon@pobox.com>

	* rcs_import.cc: Teach how to aggregate branches.
	* monotone.texi: Start section on netsync.

2004-03-20  Olivier Andrieu  <oliv__a@users.sourceforge.net>

	* commands.cc (log): Show tags in log.
	* AUTHORS: Mention Olivier.

2004-03-17  Nathan Myers  <ncm@cantrip.org>

	* boost/circular_buffer.hpp:
	* commands.cc:
	* cryptopp/fltrimpl.h:
	* cryptopp/iterhash.cpp:
	* quick_alloc.hh:
	Fixes for gcc 3.4 compat and warnings.

2004-03-17  graydon hoare  <graydon@pobox.com>
	* cryptopp/config.h: Fix for gcc aliasing optimization error.
	* rcs_import.cc (cvs_history::note_file_edge):
	Fix for first changelog import bug (#5813).

2004-03-15  graydon hoare  <graydon@pobox.com>

	* rcs_import.cc: Import lone versions properly.
	* tests/t_singlecvs.at: New test for it.
	* testsuite.at: Call it.

2004-03-14  graydon hoare  <graydon@pobox.com>

	* commands.cc (diff): Show added files too.
	* monotone.texi: Fix typo.

2004-03-08  graydon hoare  <graydon@pobox.com>

	* netsync.cc (analyze_manifest_edge): Fix broken formatter.

2004-03-07  graydon hoare  <graydon@pobox.com>

	* Makefile.am (BOOST_SANDBOX_SOURCES): Remove boost::socket entries.
	(NETXX_SOURCES): Predicate on IP6 support in OS (from Paul Snively).
	* boost/socket/*.[hc]pp: Remove.
	* boost/io/streambuf_wrapping.hpp: Remove.
	* AUTHORS: Remove copyright notice for boost::socket.
	* acinclude.m4 (ACX_PTHREAD): Add.
	* network.cc: Replace boost::socket machinery with Netxx.
	* network.hh (open_connection): Remove prototype, static function.
	* sanity.hh, sanity.cc: Make log formatters give file:line coords,
	throw log offending coordinate if formatting fails.

2004-03-07  graydon hoare  <graydon@pobox.com>

	* sqlite/date.c, sqlite/vdbeInt.h, sqlite/vdbeaux.c: Add.
	* sqlite/*.c: Upgrade to 2.8.12.
	* Makefile.am: Update to mention new files.
	* cert.cc
	(expand_ancestors)
	(expand_dominators): Resize child bitmaps to cover parent.

2004-03-06  graydon hoare  <graydon@pobox.com>

	* netsync.cc (get_root_prefix): Fix from Paul Snively
	to fix static initialization order on mac OSX.
	* montone.texi: Typo fix from Anders Petersson.
	* *.cc: Move all function defs into column 0.

2004-03-04  graydon hoare  <graydon@pobox.com>

	* std_hooks.lua: Fix merger execution pessimism.

2004-03-04  graydon hoare  <graydon@pobox.com>

	* adler32.hh: Modify to use u8.
	* depot.cc, netcmd.cc, xdelta.cc: Modify to use u8.
	* netio.hh, numeric_vocab.hh (widen): Move between headers.
	* netsync.cc: Correct role-assumption bugs.
	* schema_migration.cc: Strip whitespace in sha1.
	(changes received from Christof Petig)

2004-03-01  graydon hoare  <graydon@pobox.com>

	* commands.cc: Handle anonymous pulling.
	* netsync.cc: Ditto.

	Release point (v 0.10).

2004-03-01  graydon hoare  <graydon@pobox.com>

	* NEWS: Mention impending 0.10 release.
	* cert.cc, cert.hh: Bug fixes, implement trust function, QA stuff.
	* commands.cc: Tweak disapprove, approve, testresult, push, pull.
	* configure.ac: Bump version number.
	* cryptopp/rng.h, cryptopp/rng.cpp
	(MaurerRandomnessTest): Fix bitrot.
	* keys.cc: Add Maurer PRNG randomness test.
	* lua.cc, lua.hh: Add trust, testresult, anonymous netsync hooks.
	* monotone.1: Update to follow changes to commands.
	* monotone.texi: Include QA section, adjust some UI drift, clarify
	reserved cert names, document new hooks and commands.
	* netcmd.hh, netcmd.cc: Add anonymous, error commands; fix bugs.
	* netsync.cc: Process new commands, factor server loop a bit.
	* std_hooks.lua: Add new hook defaults, factor mergers.
	* tests/t_netsync.at: Check SHA1 of each edge.
	* tests/t_null.at: Call with --norc to skip ~/.monotonerc
	* tests/t_update.at: Fix glaring error.
	* tests/t_disapprove.at, tests/t_testresult.at: New tests.
	* testsuite.at: Call them.
	* ui.cc (sanitize): Clean escape chars from output (optional?)
	* update.cc: Rewrite entirely in terms of new QA definitions.

2004-02-24  graydon hoare  <graydon@pobox.com>

	* commands.cc (ls_keys): Write key hash codes.
	* constands.cc (netsync_timeout_seconds): Up to 120.
	* netsync.cc: Fix a bunch of bugs.
	* patch_set.cc (manifests_to_patch_set): Fix bug in overload
	default construction.

2004-02-22  graydon hoare  <graydon@pobox.com>

	* patch_set.cc, patch_set.hh: Parameterize yet further.
	* netsync.cc: Fix a lot of bugs, add manifest and file grovelling.
	* tests/t_netsync.at: A new test (which runs!)
	* testsuite.at: Call it.

2004-02-20  graydon hoare  <graydon@pobox.com>

	* cert.cc, cert.hh, key.cc, key.hh, database.cc, database.hh:
	Add lots of little netsync support routines.
	* commands.cc (rebuild): Rehash everything too.
	* constants.cc (netcmd_minsz): Recalculate.
	* cryptopp/osrng.cpp (NonblockingRng::GenerateBlock): Handle
	/dev/urandom a bit better.
	* netcmd.cc, netcmd.hh: Remove describe cmds, add nonexistant cmd.
	* netio.hh: Add uleb128 stuff.
	* xdelta.cc: Add randomizing unit test suite.
	* diff_patch.cc: Remove commented-out dead line-merger code.
	* merkle_tree.cc: Fix various bugs.
	* netcmd.cc: Switch everything over to uleb128s.
	* netsync.cc: Implement lots of missing stuff.

2004-02-09  graydon hoare  <graydon@pobox.com>

	* netsync.cc (ROOT_PREFIX): New variable.
	* commands.cc (merkle): New command.

2004-02-09  Ben Elliston  <bje@wasabisystems.com>

	* monotone.texi: Spelling corrections.

2004-02-09  graydon hoare  <graydon@pobox.com>

	* database.cc, database.hh
	(get_version_size)
	(get_file_version_size)
	(get_manifest_version_size): New functions.
	* xdelta.cc, xdelta.hh (measure_delta_target_size): New function.
	* merkle_tree.cc, merkle_tree.hh, netcmd.cc, netcmd.hh:
	Cleanup and typesafety.
	* netsync.cc: Cleanup, typesafety, implement refine phase.

2004-02-01  graydon hoare  <graydon@pobox.com>

	* netsync.cc: Remove a lot of stuff, implement auth phase.
	* constants.cc, constants.hh: Move constants from netsync.cc.
	* netcmd.cc, netcmd.hh: Split out of netsync.cc.
	* merkle_tree.cc, merkle_tree.hh: Likewise.
	* numeric_vocab.hh: New header.
	* adler32.hh: include numeric_vocab.hh.
	* netio.hh: Likewise.
	* unit_tests.cc, unit_tests.hh: Update.
	* Makefile.am: Likewise.
	* commands.cc: Guess signing key for auth phase.
	* database.cc, database.hh (public_key_exists)
	(get_pubkey): New functions based on key hashes.

2004-01-31  graydon hoare  <graydon@pobox.com>

	* Netxx/*: New files.
	* AUTHORS: Mention Netxx.
	* Makefile.am: Mention Netxx and netsync.{cc,hh}
	* adler32.hh: Delegate typedefs to boost.
	* cert.hh, cert.cc (cert_hash_code): New function.
	* commands.cc (find_oldest_ancestors): Block cycles.
	(netsync): New command.
	* database.cc, database.hh (schema): Update.
	(put_key): Calculate key hash on the fly.
	(put_cert): Likewise.
	(merkle_node_exists)
	(get_merkle_node)
	(put_merkle_node)
	(erase_merkle_nodes): New functions.
	* keys.hh, keys.cc (key_hash_code): New function.
	* lua.cc, lua.hh
	(hook_get_netsync_read_permitted)
	(hook_get_netsync_write_permitted): New hooks.
	* monotone.spec: Update for FC1 info conventions.
	* monotone.texi (Quality Assurance): New section.
	* netsync.cc, netsync.hh: New files, preliminary
	netsync infrastructure. Command bodies still missing.
	* schema.sql: Add intrinsic key and cert hashes, merkle nodes.
	* schema_migration.cc: Add code to migrate to new schema.
	* unit_tests.cc: Handle command-line args to limit test set.
	* vocab_terms.hh: Add merkle and prefix as new terms.

2004-01-13  Nathaniel Smith  <njs@codesourcery.com>

	* idna/idn-int.h: Remove (generated by configure).

2004-01-13  Nathaniel Smith  <njs@codesourcery.com>

	* configure.ac: Switch "if" and "else" branches in pthreads
	checks.

2004-01-12  Nathaniel Smith  <njs@codesourcery.com>

	* configure.ac: Remove check for -lpthread.
	Add check for pthread_mutex_lock and ACX_PTHREAD.
	* m4/acx_pthread.m4: New file.

2004-01-07  graydon hoare  <graydon@pobox.com>

	* Makefile.am:
	* po/POTFILES.in:
	* po/monotone.pot: Minor tweaks for distclean.
	* adns/config.h:
	* boost/socket/src/interface.cpp:
	* boost/socket/src/ip4/address.cpp:
	* boost/socket/src/ip4/protocol.cpp: OSX portability.
	* AUTHORS: Mention new contributors.
	* monotone.texi (Hook Reference): Document i18n hooks.

	Release point (v 0.9).

2004-01-07  graydon hoare  <graydon@pobox.com>

	* cert.cc (ensure_parents_loaded)
	(expand_dominators)
	(expand_ancestors)
	(find_intersecting_node): New functions.
	(find_common_ancestor): Reimplement in terms of dominator
	and ancestor bitset intersection.

2004-01-05  Christof Petig <christof@petig-baender.de>

	* vocab.cc (verify<local_path>) Fix use of val() / iterator.
	* constants.cc (illegal_path_bytes): NUL-terminate.

2004-01-02  graydon hoare  <graydon@pobox.com>

	* diff_patch.cc (normalize_extents): Improve to handle an odd case.
	* tests/t_fmerge.at: New test, to test it.
	* commands.cc (fload, fmerge): Permanently enable, for test.
	* testsuite.at: Call new test.

2004-01-01  graydon hoare  <graydon@pobox.com>

	* file_io.hh, file_io.cc (read_localized_data, write_localized_data):
	New functions
	* commands.cc, manifest.cc, transforms.cc: Use them.
	* monotone.texi: Minor update to i18n docs.
	* lua.hh, lua.cc (hook_get_linesep_conv, hook_get_charset_conv):
	New hooks.
	* acinclude.m4: Move AX_CREATE_STDINT_H in here.
	* po/monotone.pot: Regenerate.
	* NEWS, configure.ac: Prep for 0.9 release.

2003-12-30  graydon hoare  <graydon@pobox.com>

	* file_io.hh, file_io.cc (mkpath): New function.
	* commands.cc, database.cc, diff_patch.cc, file_io.cc,
	lua.cc, vocab.cc, work.cc: Use it.
	* constants.cc (illegal_path_bytes_arr): Remove leading null.
	* monotone.texi: Include i18n docs.
	* tests/t_i18n_file.at: Check colon in filename.

2003-12-29  graydon hoare  <graydon@pobox.com>

	* file_io.cc: Localize names before touching fs.
	* lua.hh, lua.cc (hook_get_system_charset): Remove useless fn.
	* test_hooks.lua: Likewise.
	* monotone.cc, transforms.cc, transforms.hh:
	Remove lua from system charset conv.
	* tests/t_i18n_file.at: New test.
	* testsuite.at: Call it.

2003-12-28  graydon hoare  <graydon@pobox.com>

	* app_state.cc, app_state.hh: Massage to use i18n vocab.
	* cert.cc, commands.cc, commands.hh, rcs_import.cc,
	update.cc, update.hh, url.cc, url.hh: Likewise.

	* work.cc, work.hh: --> Likewise, and break file format! <--

	* constants.hh, constants.cc (legal_ace_bytes): New constant.
	* vocab.cc (verify<ace>): Use it.
	(verify<urlenc>) New function.
	* vocab_terms.hh (ace, urlenc, utf8): New terms.
	* transforms.hh, transforms.cc: Use them.
	* monotone.cc (utf8_argv): Charconv argv.
	* network.hh, network.cc: Use url.{hh,cc}.

2003-12-28  graydon hoare  <graydon@pobox.com>

	* constants.hh, constants.cc (idlen): New constant.
	* commands.cc, vocab.cc: Use it.
	* manifest.cc (read_manifest_map): Tighten up regex.
	* packet.cc: Likewise.
	* transforms.cc (uppercase)
	(lowercase): Rewrite.
	(utf8_to_urlenc)
	(urlenc_to_utf8)
	(internalize_url)
	(internalize_cert_name)
	(internalize_rsa_keypair_id)
	(externalize_url)
	(externalize_cert_name)
	(externalize_rsa_keypair_id): New functions.
	* url.hh, url.cc (parse_utf8_url): New function.

2003-12-20  graydon hoare  <graydon@pobox.com>

	* diff_patch.cc (normalize_extents): New function.
	(merge_via_edit_scripts): Use it.

2003-12-19  graydon hoare  <graydon@pobox.com>

	[net.venge.monotone.i18n branch]

	* idna/*.[ch]: New files.
	* po/*: New files.
	* url.cc, url.hh, constants.cc: New files.
	* Makefile.am, configure.ac: Various fiddling for gettext.
	* lua.hh, lua.cc (hook_get_system_charset): New hook.
	(hook_get_system_linesep): New hook.
	* transforms.hh, transforms.cc
	(charset_convert)
	(system_to_utf8)
	(utf8_to_system)
	(ace_to_utf8)
	(utf8_to_ace)
	(line_end_convert): New functions.
	* vocab.cc: Refine constraints.
	* vocab_terms.hh (external): New atomic type.
	* monotone.cc (cpp_main): Initialize gettext.
	* sanity.hh (F): Call gettext() on format strings.
	* commands.cc, depot.cc, database.cc, http_tasks.cc, keys.cc,
	network.cc, rcs_import.cc, sanity.cc, mac.hh : Update to use
	'constants::' namespace.
	* config.h.in: Remove.
	* commands.cc: Various formatting cleanups.
	* unit_tests.cc, unit_tests.hh: Connect to url tests.

2003-12-19  graydon hoare  <graydon@pobox.com>

	* diff_patch.cc (merge3): Skip patches to deleted files.

2003-12-16  graydon hoare  <graydon@pobox.com>

	* commands.cc (ls_ignored, ignored_itemizer): Fold in as subcases of unknown.

2003-12-16  graydon hoare  <graydon@pobox.com>

	* lua.cc (working_copy_rcfilename): MT/monotonerc not MT/.monotonerc.

2003-12-16  graydon hoare  <graydon@pobox.com>

	* lua.hh, lua.cc (working_copy_rcfilename): New function.
	* monotone.cc: Add working copy rcfiles.
	* commands.cc (ls_unknown, unknown_itemizer): Skip ignored files.

2003-12-16  graydon hoare  <graydon@pobox.com>

	* file_io.cc (walk_tree_recursive): continue on book-keeping file.

2003-12-15  graydon hoare  <graydon@pobox.com>

	* tests/t_unidiff.at, t_unidiff2.at: Check for mimencode.

2003-12-15  graydon hoare  <graydon@pobox.com>

	* configure.ac: Add --enable-static-boost.
	* Makefile.am: Likewise.
	* AUTHORS: Mention new contributors.

2003-12-14  Lorenzo Campedelli <lorenzo.campedelli@libero.it>

	* work.cc (add_to_attr_map): Finish change to attr map format.

2003-12-10  Tom Tromey  <tromey@redhat.com>

	* commands.cc (checkout): Give better error message if branch is
	empty.

2003-12-07  Eric Kidd  <eric.kidd@pobox.com>

	* commands.cc (agraph): Handle repositories with a single version.
	* database.cc (get_head_candidates): Handle heads with no ancestors.
	* cert.cc (get_branch_heads): Handle heads with no ancestors.

2003-12-06  Eric Kidd  <eric.kidd@pobox.com>

	* update.hh, update.cc (pick_update_target): Return current
	version if no better update candidates available.
	* update.cc (pick_update_target): Always do branch filtering.
	* commands.cc (update): Notice when we're already up-to-date.
	* commands.cc (propagate): Assign branch name correctly when merging.

2003-12-05  graydon hoare  <graydon@pobox.com>

	* lcs.hh (edit_script): New entry point.
	* diff_patch.cc: Rewrite merge in terms of edit scripts.
	* network.cc (post_queued_blobs_to_network): Tidy up transient
	failure message.
	* randomfile.hh: Prohibit deletes on end of chunks.
	* sanity.cc: EOL-terminate truncated long lines.

2003-12-02  graydon hoare  <graydon@pobox.com>

	* database.cc, database.hh (reverse_queue): Copy constructor.
	* std_hooks.lua (merge3): Remove afile, not ancestor.
	* monotone.cc: Remove debugging message.
	* ui.cc (finish_ticking): Set last_write_was_a_tick to false.

2003-12-01  graydon hoare  <graydon@pobox.com>

	* app_state.hh, app_state.cc (set_signing_key): New fn, persist key.
	* monotone.cc (cpp_main): Permit commuting the --help argument around.

2003-11-30  graydon hoare  <graydon@pobox.com>

	* network.cc (post_queued_blobs_to_network): Fail when posted_ok is false.
	* database.cc (initialize): Fail when -journal file exists.
	* keys.cc (make_signature): Nicer message when privkey decrypt fails.

2003-11-29  Tom Tromey  <tromey@redhat.com>

	* rcs_import.cc (store_auxiliary_certs): Renamed to fix typo.
	Updated all callers.

	* http_tasks.cc (check_received_bytes): Allow "-" as well.
	* depot.cc (execute_post_query): Allow "-" as well.

2003-11-28  Tom Tromey  <tromey@redhat.com>

	* http_tasks.cc (check_received_bytes): Allow "-" as well.
	* depot.cc (execute_post_query): Allow "-" as well.

2003-11-28  graydon hoare  <graydon@pobox.com>

	* cert.cc: Various speedups.
	* cycle_detector.hh (edge_makes_cycle): Use visited set, too.
	* database.hh, database.cc (get_head_candidates): New, complex query.
	* keys.hh, keys.cc (check_signature): Cache verifiers.
	* sqlite/os.c (sqliteOsRandomSeed): Harmless valgrind purification.
	* tests/t_fork.at, tests/t_merge.at: Ignore stderr chatter on 'heads'.

2003-11-27  graydon hoare  <graydon@pobox.com>

	* Makefile.am (AM_LDFLAGS): No more -static, sigh.
	* cert.cc (find_relevant_edges): Keep dynamic-programming caches.
	(calculate_renames_recursive): Likewise.
	* cert.cc, cert.hh (rename_edge): Add constructor, copy constructor.
	* commands.cc (list certs): Note rename certs are binary.

2003-11-24  graydon hoare  <graydon@pobox.com>

	* network.cc: Continue fetch, post loops even if one target has
	an exception.

2003-11-24  graydon hoare  <graydon@pobox.com>

	* database.hh, database.cc (delete_posting): Change to take queue
	sequence numbers.
	* commands.cc (queue): Use new API.
	* network.cc (post_queued_blobs_to_network): Use new API.

2003-11-24  graydon hoare  <graydon@pobox.com>

	* std_hooks.lua (get_http_proxy): Return nil when no ENV var.
	* monotone.texi (get_http_proxY): Document change.

2003-11-24  graydon hoare  <graydon@pobox.com>

	* tests/t_proxy.at: Add a test for proxying with tinyproxy.
	* testsuite.at: Call it.
	* lua.cc: Fix dumb error breaking proxying.
	* network.cc: Be verbose about proxying.

2003-11-23  graydon hoare  <graydon@pobox.com>

	* http_tasks.cc (read_chunk): Tolerate 0x20* after chunk len.

2003-11-23  graydon hoare  <graydon@pobox.com>

	* network.cc: Make more informative error policy.
	* boost/socket/socketstream.hpp: Pass SocketType to streambuf template.
	* boost/socket/src/default_socket_impl.cpp: Translate EINTR.

2003-11-22  graydon hoare  <graydon@pobox.com>

	* lua.cc, lua.hh (hook_get_http_proxy): New hook.
	* std_hooks.lua (get_http_proxy): Default uses HTTP_PROXY.
	(get_connect_addr): Undefine, it's for tunnels alone now.
	* network.cc: Use new hook.
	* http_tasks.hh, http_tasks.cc: Teach about proxies (sigh).
	* monotone.texi: Document new hooks.

2003-11-22  graydon hoare  <graydon@pobox.com>

	* lua.cc, lua.hh (hook_get_connect_addr): New hook.
	* std_hooks.lua (get_connect_addr): Default uses HTTP_PROXY.
	* network.cc, network.hh: Use new hook.
	* http_tasks.cc: Teach about HTTP/1.1.
	* cert.cc (bogus_cert_p): Fix UI ugly.

2003-11-21  graydon hoare  <graydon@pobox.com>

	* constants.hh (postsz): New constant for suggested post size.
	* database.cc, database.hh (queue*): Change db API slightly.
	* commands.cc (queue): Adjust to changed db API.
	* network.cc (post_queued_blobs_to_network): Switch to doing
	incremental posts.
	* cert.cc (write_rename_edge, read_rename_edge): Put files on
	separate lines to accomodate future i18n work.
	* work.cc (add_to_attr_map, write_attr_map): Reorder fields to
	accomodate future i18n work.
	* monotone.texi: Document it.
	* configure.ac, NEWS: Mention 0.8 release.

	Release point (v 0.8).

2003-11-16  Tom Tromey  <tromey@redhat.com>

	* missing: Removed generated file.

2003-11-14  graydon hoare  <graydon@pobox.com>

	* commands.cc (vcheck): Add.
	* cert.cc, cert.hh (cert_manifest_vcheck): Add.
	(check_manifest_vcheck): Add.
	(calculate_vcheck_mac): Add.
	* constants.hh (vchecklen): New constant.
	* mac.hh: Re-add.
	* monotone.texi (Hash Integrity): New section.
	* monotone.1: Document vcheck.

2003-11-14  graydon hoare  <graydon@pobox.com>

	* database.cc, database.hh (reverse_queue): New class.
	(compute_older_version): New functions.
	(get_manifest_delta): Remove.
	* network.cc, network.hh (queue_blob_for_network): Remove.
	* packet.cc, packet.hh (queueing_packet_writer): Change UI,
	write to queue directly, accept optional<reverse_queue>.
	* cert.cc (write_paths_recursive): Rewrite to use constant
	memory.
	* commands.cc (queue, queue_edge_for_target_ancestor):
	Install optional<reverse_queue> in qpw.
	* tests/t_cross.at: Ignore new UI chatter.
	* monotone.texi (Transmitting Changes): Change UI output.

2003-11-13  graydon hoare  <graydon@pobox.com>

	* Makefile.am (AUTOMAKE_OPTIONS): Require 1.7.1
	* commands.cc (addtree): Wrap in transaction guard.
	* database.cc, database.hh (manifest_delta_exists): Add.
	(get_manifest_delta): Add.
	* cert.cc (write_paths_recursive): Use partial deltas.
	* manifest.cc, manifest.hh (read_manifest_map): New variant.
	* patch_set.cc, patch_set.hh (patch_set): Add map_new, map_old
	fields.
	(manifests_to_patch_set) Store new field.
	(patch_set_to_packets) Don't read manifest versions from db.
	* std_hooks.lua (ignore_file): ignore .a, .so, .lo, .la, ~ files.
	* tests/t_cvsimport.at: New test.
	* testsuite.at: Call it.

2003-11-10  graydon hoare  <graydon@pobox.com>

	* commands.cc (find_oldest_ancestors): New function.
	(queue): New "addtree" subcommand.
	* monotone.texi: Document it.
	* monotone.1: Document it.

2003-11-10  graydon hoare  <graydon@pobox.com>

	* file_io.cc (walk_tree_recursive): Ignore MT/

2003-11-09  graydon hoare  <graydon@pobox.com>

	* database.cc (dump, load): Implement.
	* commands.cc (db): Call db.dump, load.
	* cycle_detector.hh: Skip when no in-edge on src.
	* monotone.texi: Document dump and load, add some
	special sections.
	* monotone.1: Mention dump and load.

2003-11-09  graydon hoare  <graydon@pobox.com>

	* rcs_file.hh (rcs_symbol): New structure.
	* rcs_file.cc (symbol): New rule.
	* rcs_import.cc (find_branch_for_version): New function.
	(cvs_key::branch): New field.
	(store_auxilliary_certs): Cert branch tag.
	* cycle_detector.hh: Fix bugs, don't use quick_alloc.
	* commands.cc (checkout): Add --branch based version.
	* monotone.texi: Document new command variant.
	* monotone.1: Ditto.

2003-11-09  graydon hoare  <graydon@pobox.com>

	* quick_alloc.hh: New file.
	* Makefile.am: Add it.
	* cycle_detector.hh: Rewrite.
	* manifest.hh: Use quick_alloc.
	* vocab.cc: Relax path name requirements a bit.
	* sqlite/sqliteInt.h: Up size of row to 16mb.

2003-11-02  graydon hoare  <graydon@pobox.com>

	* commands.cc (post): Post everything if no URL given; don't base
	decision off branch name presence.
	* app_state.cc, monotone.cc, file_io.cc, file_io.hh: Support
	absolutifying args.
	* lua.hh, lua.cc, std_hooks.lua (hook_get_mail_hostname): New hook.
	* monotone.texi: Document it.
	* monotone.texi, monotone.1: Minor corrections, new sections.
	* monotone.cc: Don't look in $ENV at all.
	* network.cc: Correct MX logic.
	* nntp_tasks.cc, smtp_tasks.cc: Separate postlines state.
	* smtp_tasks.cc: Correct some SMTP logic.
	* configure.ac, NEWS: Mention 0.7 release.

	Release point (v 0.7).

2003-11-01  graydon hoare  <graydon@pobox.com>

	* http_tasks.cc: Drop extra leading slashes in HTTP messages.

2003-10-31  graydon hoare  <graydon@pobox.com>

	* commands.cc, database.cc, database.hh, lua.cc, lua.hh,
	network.cc, network.hh, packet.cc, packet.hh, schema.sql,
	schema_migration.cc, tests/t_http.at, tests/t_nntp.at, vocab.cc:
	Eliminate "groupname", use lone URL.
	* monotone.texi: Update to cover new URL rules.
	* network.cc, network.hh, lua.cc, lua.hh, smtp_tasks.cc:
	Implement "mailto" URLs.
	* tests/t_smtp.at: New test.
	* testsuite.at: Call it.

2003-10-31  graydon hoare  <graydon@pobox.com>

	* patch_set.cc (manifests_to_patch_set): Second form with explicit renames.
	(manifests_to_patch_set): Split edit+rename events when we see them.
	* commands.cc (status, commit): Include explicit rename set.
	* diff_patch.cc (merge3): Accept edit+rename events split by patch_set.cc.
	* smtp_tasks.hh, smtp_tasks.cc: New files.
	* nntp_machine.hh, nntp_machine.cc: Rename to proto_machine.{hh,cc} (woo!)
	* nntp_tasks.cc: Adjust to use proto_ prefix in various places.
	* proto_machine.cc (read_line): get() into streambuf.
	* Makefile.am: Cover renames and adds.

2003-10-31  graydon hoare  <graydon@pobox.com>

	* diff_patch.cc (merge3): Extract renames.
	* commands.cc (calculate_new_manifest_map): Extract renames.
	(try_one_merge): Extract renames, propagate to merge target.
	(commit): Extract renames, propagate to commit target.
	* cert.cc (calculate_renames_recursive): Fix wrong logic.
	(find_common_ancestor_recursive): Stall advances at top of graph.
	* patch_set.cc: (manifests_to_patch_set): Teach about historical
	renames.
	* tests/t_erename.at: New test for edit+rename events.
	* testsuite.at: Call t_erename.at.

2003-10-30  graydon hoare  <graydon@pobox.com>

	* patch_set.cc (operator<): s/a/b/ in a few places, yikes!
	* cert.cc: Add machinery for rename edge certs.
	* commands.cc: Call diff(manifest,manifest) directly.
	* tests/t_nntp.at: Kill tcpserver DNS lookups on nntp test.
	* network.cc (parse_url): Character class typo fix, from
	Johannes Winkelmann.
	* app_state.hh, cert.hh, commands.hh, cycle_detector.hh,
	database.hh, diff_patch.cc, diff_patch.hh, http_tasks.hh,
	interner.hh, keys.hh, lua.hh, manifest.hh, network.hh,
	nntp_machine.hh, nntp_tasks.hh, packet.hh, patch_set.hh,
	transforms.hh, update.hh, vocab.hh, work.hh, xdelta.hh:
	fix use of std:: prefix / "using namespace" pollution.

2003-10-27  graydon hoare  <graydon@pobox.com>

	* lua/liolib.c (io_mkstemp): Portability fix
	from Ian Main.
	* xdelta.cc,hh (compute_delta): New manifest-specific variant.
	* transforms.cc,hh (diff): Same.
	* rcs_import.cc: Various speedups to cvs import.

2003-10-26  graydon hoare  <graydon@pobox.com>

	* cert.cc (get_parents): New function.
	(write_paths_recursive): New function.
	(write_ancestry_paths): New function.
	* cert.hh (write_ancestry_paths): Declare.
	* commands.cc (queue_edge_for_target_ancestor):
	Call write_ancestry_paths for "reposting" queue
	strategy.

2003-10-25  graydon hoare  <graydon@pobox.com>

	* commands.cc (log): Skip looking inside nonexistent
	manifests for file comments.

2003-10-24  graydon hoare  <graydon@pobox.com>

	* adns/*.c, adns/*.h: Import adns library.
	* Makefile.am: Update to build adns into lib3rdparty.a.
	* AUTHORS: Mention adns.
	* network.cc: Call adns functions, not gethostbyname.

2003-10-20  Nathaniel Smith  <njs@codesourcery.com>

	* patch_set.cc (patch_set_to_text_summary): Give more detailed
	output.
	* commands.cc (get_log_message, status, diff): Use
	patch_set_to_text_summary for complete description.

2003-10-22  graydon hoare  <graydon@pobox.com>

	* monotone.texi: Document 'queue' command.
	* monotone.1: Likewise.

2003-10-22  graydon hoare  <graydon@pobox.com>

	* diff_patch.cc
	(infer_directory_moves): New function.
	(rebuild_under_directory_moves): New function.
	(apply_directory_moves): New function.
	(merge3): Handle directory moves.
	* tests/t_renamed.at: New test for dir renames.
	* testsuite.at: Call it.

2003-10-21  graydon hoare  <graydon@pobox.com>

	* commands.cc (queue): New command.
	(list): Add "queue" subcommand, too.

2003-10-21  graydon hoare  <graydon@pobox.com>

	* diff_patch.cc (merge_deltas): New function.
	(check_map_inclusion): New function.
	(check_no_intersect): New function.
	(merge3): Rewrite completely.
	* tests/t_rename.at: New test.
	* testsuite.at: Call it.
	* file_io.cc, file_io.hh (make_dir_for): New function.
	* commands.cc (update): Call make_dir_for on update.

2003-10-20  graydon hoare  <graydon@pobox.com>

	* commands.cc: Replace [] with idx() everywhere.

2003-10-20  Tom Tromey  <tromey@redhat.com>

	* cert.hh (get_branch_heads): Updated.
	Include <set>.
	* commands.cc (head): Updated for new get_branch_heads.
	(merge): Likewise.
	(propagate): Likewise.
	* cert.cc (get_branch_heads): Use set<manifest_id>.

	* commands.cc (merge): Use all caps for metasyntactic variable.
	(heads): Likewise.

	* network.cc (post_queued_blobs_to_network): Do nothing if no
	packets to post.

2003-10-20  graydon hoare  <graydon@pobox.com>

	* cert.cc (get_branch_heads): Fix dumb bug.
	* diff_patch.cc (merge3): Fix dumb bug.
	(merge2): Fix dumb bug.
	(try_to_merge_files): Fix dumb bug.

2003-10-20  graydon hoare  <graydon@pobox.com>

	* file_io.cc (tilde_expand): New function.
	* monotone.cc (cpp_main): Expand tildes in
	db and rcfile arguments.

2003-10-20  graydon hoare  <graydon@pobox.com>

	* rcs_import.cc (import_cvs_repo): Check key existence
	at beginning of import pass, to avoid wasted work.

2003-10-19  Tom Tromey  <tromey@redhat.com>

	* commands.cc (log): Add each seen id to `cycles'.

2003-10-19  graydon hoare  <graydon@pobox.com>

	* AUTHORS: Mention Tecgraf PUC-Rio and their
	copyright.
	* Makefile.am: Mention circular buffer stuff.
	* configure.ac, NEWS: Mention 0.6 release.
	* cert.hh, cert.cc (erase_bogus_certs): file<cert> variant.
	* commands.cc (log): Erase bogus certs before writing,
	cache comment-less file IDs.
	* monotone.spec: Don't specify install-info args,
	do build with optimization on RHL.

	Release point (v 0.6).

2003-10-19  Matt Kraai  <kraai@ftbfs.org>

	* commands.cc (merge): Use app.branch_name instead of args[0] for
	the branch name.

2003-10-17  graydon hoare  <graydon@pobox.com>

	* commands.cc (log): New command.
	Various other bug fixes.
	* monotone.1, monotone.texi: Minor updates.

2003-10-17  graydon hoare  <graydon@pobox.com>

	* monotone.texi: Expand command and hook references.
	* commands.cc: Disable db dump / load commands for now.

2003-10-16  graydon hoare  <graydon@pobox.com>

	* sanity.hh: Add a const version of idx().
	* diff_patch.cc: Change to using idx() everywhere.
	* cert.cc (find_common_ancestor): Rewrite to recursive
	form, stepping over historic merges.
	* tests/t_cross.at: New test for merging merges.
	* testsuite.at: Call t_cross.at.

2003-10-10  graydon hoare  <graydon@pobox.com>

	* lua.hh, lua.cc (hook_apply_attribute): New hook.
	* work.hh, work.cc (apply_attributes): New function.
	* commands.cc (update_any_attrs): Update attrs when writing to
	working copy.
	* std_hooks.lua (temp_file): Use some env vars.
	(attr_functions): Make table of attr-setting functions.

2003-10-10  graydon hoare  <graydon@pobox.com>

	* work.cc: Fix add/drop inversion bug.
	* lua/*.{c,h}: Import lua 5.0 sources.
	* lua.cc: Rewrite lua interface completely.
	* std_hooks.lua, test_hooks.lua, testsuite,
	tests/t_persist_phrase.at, configure.ac, config.h.in, Makefile.am:
	Modify to handle presence of lua 5.0.

2003-10-08  graydon hoare  <graydon@pobox.com>

	* rcs_import.cc: Attach aux certs to child, not parent.
	* manifest.cc: Speed up some calculations.
	* keys.cc: Optionally cache decoded keys.

2003-10-07  graydon hoare  <graydon@pobox.com>

	* manifest.hh, manifest.cc, rcs_import.cc: Write manifests w/o
	compression.
	* vocab.hh, vocab.cc: Don't re-verify verified data.
	* ui.hh, ui.cc: Minor efficiency tweaks.

2003-10-07  graydon hoare  <graydon@pobox.com>

	* commands.cc, work.cc, work.hh: Add some preliminary stuff
	to support explicit renaming, .mt-attrs.
	* monotone.texi: Add skeletal sections for command reference,
	hook reference, CVS phrasebook. Fill in some parts.

2003-10-02  graydon hoare  <graydon@pobox.com>

	* boost/circular_buffer*.hpp: Add.
	* AUTHORS, cert.cc, commands.cc, database.cc,
	diff_patch.cc, http_tasks.cc, keys.cc, lua.cc, manifest.cc,
	network.cc, nntp_machine.cc, packet.cc, patch_set.cc,
	rcs_import.cc, sanity.cc, sanity.hh, ui.hh, update.cc,
	vocab_terms.hh, work.cc:
	remove existing circular buffer code, replace all
	logging and asserty stuff with boost::format objects
	rather than vsnprintf.

2003-10-01  graydon hoare  <graydon@pobox.com>

	* testsuite.at: Don't use getenv("HOSTNAME").
	* database.cc (exec, fetch): Do va_end/va_start again in between
	logging and executing query.

2003-09-28  Tom Tromey  <tromey@redhat.com>

	* monotone.texi: Added @direntry.

2003-09-27  Nathaniel Smith  <njs@pobox.com>

	* monotone.cc: Remove "monotone.db" default to --db
	option in help text.

2003-09-27  graydon hoare  <graydon@pobox.com>

	* diff_patch.cc: Rework conflict detection.
	* rcs_import.cc: Remove some pointless slowness.
	* monotone.spec: Install info files properly.

	Release point (v 0.5).

2003-09-27  graydon hoare  <graydon@pobox.com>

	* AUTHORS, NEWS, configure.ac: Update for 0.5 release.
	* monotone.texi: Various updates.
	* xdelta.cc (compute_delta): Fix handling of empty data.
	* database.cc (sql): Require --db for init.
	* work.cc (read_options_map): Fix options regex.

2003-09-27  graydon hoare  <graydon@pobox.com>

	* lcs.hh: New jaffer LCS algorithm.
	* interner.hh, rcs_import.cc: Templatize interner.
	* diff_patch.hh: Use interner, new LCS.

2003-09-27  Tom Tromey  <tromey@redhat.com>

	* commands.cc (fetch): Always try lua hook; then default to all
	known URLs.

2003-09-26  Tom Tromey  <tromey@redhat.com>

	* commands.cc (tag): Use all-caps for meta-syntactic variables.
	(comment, add, cat, complete, mdelta, fdata): Likewise.

	* monotone.1: There's no default database.
	* monotone.texi (OPTIONS): There's no default database.

	* database.cc (sql): Throw informative error if database name not
	set.
	* app_state.cc (app_state): Default to no database.

2003-09-26  graydon hoare  <graydon@pobox.com>

	* debian/*, monotone.spec: Add packaging control files.

2003-09-24  graydon hoare  <graydon@pobox.com>

	* database.cc, database.hh (debug): New function.
	* commands.cc (debug): New command.
	* cert.cc, cert.hh (guess_branch): New function.
	* commands.cc (cert): Queue certs to network servers.
	* commands.cc (cert, commit): Use guess_branch.
	* commands.cc (list): List unknown, ignored files.
	* monotone.texi, monotone.1: Document.

2003-09-24  graydon hoare  <graydon@pobox.com>

	* commands.cc (queue_edge_for_target_ancestor): Queue the
	correct ancestry cert, from child to target, as well as
	patch_set.

2003-09-22  graydon hoare  <graydon@pobox.com>

	* depot_schema.sql, schema_migration.cc,
	schema_migration.hh: Add.
	* database.cc, depot.cc: Implement schema migration.
	* database.cc, commands.cc: Change to db ... cmd.
	* monotone.texi, monotone.1: Document command change.
	* depot.cc: Fix various query bugs.

2003-09-21  Nathaniel Smith  <njs@codesourcery.com>

	* depot.cc (depot_schema): Remove unique constraint on (contents),
	replace with unique constraint on (groupname, contents).

2003-09-21  Nathaniel Smith  <njs@codesourcery.com>

	* commands.cc (diff): Take manifest ids as arguments.  Add
	explanatory text on files added, removed, modified.

2003-09-19  Tom Tromey  <tromey@redhat.com>

	* commands.cc (genkey): Use all-caps for meta-syntactic variable.
	(cert, tag, approve, disapprove, comment, add, drop, commit,
	update, revert, cat, checkout, co, propagate, complete, list, ls,
	mdelta, fdelta, mdata, fdata, mcerts, fcerts, pubkey, privkey,
	fetch, post, rcs_import, rcs): Likewise.
	(explain_usage): Indent explanatory text past the command names.

2003-09-17  Tom Tromey  <tromey@redhat.com>

	* commands.cc (list): Don't compute or use "subname".

	* commands.cc (revert): Handle case where argument is a
	directory.
	* tests/t_revert.at: Test for revert of directory.

	* testsuite.at (MONOTONE_SETUP): Use "monotone initdb".
	* monotone.1: Document "initdb".
	* monotone.texi (Commands): Document initdb.
	(Creating a Database): New node.
	(Getting Started): Refer to it.
	* commands.cc (initdb): New command.
	* database.cc (database::sql): New argument `init'.
	(database::initialize): New method.
	* database.hh (database::initalize): Declare.
	(database::sql): New argument `init'.

2003-09-17  Tom Tromey  <tromey@redhat.com>

	* tests/t_persist_phrase.at: Use "ls certs".
	* tests/t_nntp.at: Use "ls certs".
	* tests/t_genkey.at: Use "ls keys" and "ls certs".

2003-09-16  Tom Tromey  <tromey@redhat.com>

	* monotone.1: Document "list branches".
	* commands.cc (ls_certs): New function, from `lscerts' command.
	(ls_keys): New function, from `lskeys' command.
	(ls_branches): New function.
	(list): New command.
	(ls): New alias.
	(explain_usage): Split parameter info at \n.
	* monotone.texi (Adding Files): Use "list certs".
	(Committing Changes): Likewise.
	(Forking and Merging): Likewise.
	(Commands): Likewise.
	(Generating Keys): Use "list keys".
	(Commands): Likewise.
	(Commands): Mention "list branches".
	(Branches): Likewise.

2003-09-15  graydon hoare  <graydon@redhat.com>

	* http_tasks.cc: Fix networking to handle long input.

	* ui.cc, ui.hh: Only pad with blanks enough to cover old output
	when ticking.

	* update.cc, cert.cc, commands.cc: Fix cert fetching functions to
	remove bogus certs.

2003-09-15  Tom Tromey  <tromey@redhat.com>

	* monotone.1: Don't mention MT_KEY or MT_BRANCH.

	* monotone.texi (Getting Started): Don't mention MT_DB or
	MT_BRANCH.
	(Adding Files): Explicitly use --db and --branch.
	* app_state.hh (app_state): New fields options, options_changed.
	Declare new methods.  Include work.hh.
	* work.cc (work_file_name): New constant.
	(add_to_options_map): New structure.
	(get_options_path): New function.
	(read_options_map, write_options_map): Likewise.
	* work.hh (options_map): New type.
	(get_options_path, read_options_map, write_options_map): Declare.
	* commands.cc (add, drop, commit, update, revert, checkout,
	merge): Write options file.
	* app_state.cc (database_option, branch_option): New constants.
	(app_state::app_state): Read options file.
	(app_state::set_database): New method.
	(app_state::set_branch): Likewise.
	(app_state::write_options): Likewise.
	Include work.hh.
	* monotone.cc (cpp_main): Don't set initial database name on
	app.  Use new settor methods.  Don't look at MT_BRANCH or MT_DB.

2003-09-14  graydon hoare  <graydon@pobox.com>

	* vocab.cc, vocab.hh: Add streamers for vocab terms in preparation
	for switch to formatter.

	* cert.cc (check_signature): Treat missing key as failed check.
	* commands.cc (lscerts): Warn when keys are missing.

	* rcs_import.cc, nntp_tasks.cc, http_tasks.cc: Tick progress.

	* sanity.cc, monotone.cc: Tidy up output a bit.

	* xdelta.cc: Add code to handle empty files. Maybe correct?

	* ui.cc, ui.hh: Add.

2003-09-13  Tom Tromey  <tromey@redhat.com>

	* tests/t_nntp.at: If we can't find tcpserver or snntpd, skip the
	test.
	* tests/t_http.at: If we can't find boa or depot.cgi, skip the
	test.

2003-09-12  graydon hoare  <graydon@pobox.com>

	* update.cc (pick_update_target): Only insert base rev as update
	candidate if it actually exists in db.

	* commands.cc, database.cc, database.hh: Implement id completion
	command, and general id completion in all other commands.

2003-09-12  Tom Tromey  <tromey@redhat.com>

	* commands.cc (revert): A deleted file always appears in the
	manifest.
	* tests/t_revert.at: Check reverting a change plus a delete; also
	test reverting by file name.

	* work.cc (deletion_builder::visit_file): Check for file in
	working add set before looking in manifest.
	* tests/t_drop.at: Added add-then-drop test.

	* testsuite.at: Include t_drop.at.
	* tests/t_drop.at: New test.
	* work.cc (visit_file): Check for file in working delete set
	before looking in manifest.

2003-09-12  Tom Tromey  <tromey@redhat.com>

	* Makefile.am ($(srcdir)/testsuite): tests/atconfig and
	tests/atlocal are not in srcdir.

	* Makefile.am (TESTS): unit_tests is not in srcdir.

2003-09-11  graydon hoare  <graydon@pobox.com>

	* commands.cc: Check for MT directory in status.
	* commands.cc: Require directory for checkout.
	* commands.cc: Delete MT/work file after checkout.
	* commands.cc: Implement 'revert', following tromey's lead.
	* commands.cc: Print base, working manifest ids in status.

	* diff_patch.cc: Further merge corrections.
	* diff_patch.cc (unidiff): Compensate for occasional miscalculation
	of LCS.

	* tests/t_merge.at: Check that heads works after a merge.
	* tests/t_fork.at:  Check that heads works after a fork.
	* tests/t_genkey.at: Remove use of 'import'.
	* tests/t_cwork.at: Check deletion of work file on checkout.
	* tests/t_revert.at: Check that revert works.

	* commands.cc, monotone.cc: Report unknown commands nicely.

2003-09-08  graydon hoare  <graydon@pobox.com>

	* tests/merge.at: Accept tromey's non-error case for update.

	* commands.cc(try_one_merge): Write merged version to packet
	writer, not directly to db.
	(merge): Write branch, changelog cert on merged version to db.

	* std_hooks.lua(merge3): Open result in mode "r", not "w+".

2003-09-06  Tom Tromey  <tromey@redhat.com>

	* update.cc (pick_update_target): Not an error if nothing to
	update.

	* monotone.texi: Use VERSION; include version.texi.

	* monotone.1: Document "co".
	* monotone.texi (Commands): Document "co".
	* commands.cc (ALIAS): New macro.
	(co): New alias.

	* README: Updated.

	* txt2c.cc: Added missing file.

	* texinfo.tex, INSTALL, Makefile.in, aclocal.m4, compile, depcomp,
	install-sh, missing, mkinstalldirs: Removed generated files.

2003-09-04  graydon hoare  <graydon@pobox.com>

	* Makefile.am, depot.cc, http_tasks.cc, http_tasks.hh,
	lua.cc, lua.hh, monotone.texi, network.cc, tests/t_http.at,
	vocab_terms.hh:

	Use public key signatures to talk to depot, not mac keys.

	* commands.cc, file_io.cc, monotone.texi, monotone.1,
	tests/t_scan.at, tests/t_import.at, work.cc, work.hh:

	Remove the 'import' and 'scan' commands, in favour of generalized
	'add' which chases subdirectories.

	* configure.ac, NEWS:

	Release point (v 0.4).

2003-09-03  graydon hoare  <graydon@pobox.com>

	* monotone.texi: Expand notes about setting up depot.

	* update.cc: Update by ancestry. Duh.

2003-09-02  graydon hoare  <graydon@pobox.com>

	* boost/socket/streambuf.hpp: Bump ppos on overflow.

	* packet.cc, transforms.cc, transforms.hh: Add function for
	canonicalization of base64 encoded strings. Use on incoming cert
	packet values.

	* commands.cc: Change fetch and post to take URL/groupname params
	rather than branchname.

	* network.cc, network.hh, depot.cc, http_tasks.cc: Fix URL parser,
	improve logging, change signatures to match needs of commands.cc

	* Makefile.am: Don't install txt2c or unit_tests.

	* Makefile.am: Build depot.cgi not depot.

	* database.cc, database.hh: Add "all known sources" fetching support.

	* patch_set.cc: Sort in a path-lexicographic order for nicer summaries.

	* monotone.texi: Expand coverage of packets and networking.

	* tests/t_nntp.at, tests/t_http.at: Update to provide URL/groupname
	pairs.

2003-09-02  Tom Tromey  <tromey@redhat.com>

	* aclocal.m4, monotone.info: Removed generated files.

2003-08-31  Nathaniel Smith  <njs@codesourcery.com>

	* configure.ac: Check for lua40/lua.h, lua40/lualib.h and -llua40,
	-lliblua40.
	* config.h.in: Add LUA_H, LIBLUA_H templates, remove HAVE_LIBLUA,
	HAVE_LIBLUALIB templates.
	* lua.cc: Include config.h.  Use LUA_H, LIBLUA_H macros.

2003-08-29  graydon hoare  <graydon@pobox.com>

	* Makefile.am, txt2c.cc, lua.cc, database.cc:
	Use a C constant-building converter rather than objcopy.

	* cert.cc, cert.hh, packet.cc, packet.hh, diff_patch.cc,
	rcs_import.cc:
	Modify cert functions to require a packet consumer, do no implicit
	database writing.

	* commands.cc, database.cc, database.hh, schema.sql, network.cc:
	Modify packet queueing strategy to select ancestors from known
	network server content, rather than most recent edge.

2003-08-25  graydon hoare  <graydon@pobox.com>

	* AUTHORS, ChangeLog, Makefile.am, NEWS, configure.ac,
	tests/t_http.at: Release point (v 0.3)

2003-08-24  graydon hoare  <graydon@pobox.com>

	* nntp_tasks.cc: Measure success from postlines state.
	* network.cc: Print summary counts of transmissions.
	* packet.cc: Count packets into database.
	* depot.cc: Add administrative commands, fix a bunch of
	little bugs.
	* t_http.at: Testcase for depot-driven communication.
	* monotone.texi: Update to reflect depot existence.
	* http_tasks.cc: Pick bugs out.

2003-08-24  graydon hoare  <graydon@pobox.com>

	* commands.cc: Wash certs before output.
	* *.cc,*.hh: Adjust cert packet format to
	be more readable, avoid superfluous gzipping.

2003-08-24  graydon hoare  <graydon@pobox.com>

	* configure, Makefile.in: Remove generated files, oops.
	* commands.cc: Implement 'propagate'.
	* lua.cc, lua.hh, network.cc, network.hh: Remove
	'aggregate posting' stuff.
	* network.cc: Batch postings into larger articles.
	* diff_patch.hh, diff_patch.cc: Implement basic
	merge2-on-manifest.

2003-08-23  graydon hoare  <graydon@pobox.com>

	* monotone.cc: Handle user-defined lua hooks as
	overriding internal / .monotonerc hooks no matter
	where on cmd line they occur.
	* update.cc: Made failures more user-friendly.
	* lua.cc: Improve logging a bit.
	* testsuite.at, tests/*.{at,in}, testsuite/: Rewrite tests in
	autotest framework, move to tests/ directory.
	* boost/io/*, cryptopp/hmac.h: Add missing files.

2003-08-23  Tom Tromey  <tromey@redhat.com>

	* monotone.cc (OPT_VERSION): New macro.
	(cpp_main): Handle OPT_VERSION.
	(options): Added `version' entry.
	Include config.h.

2003-08-21  Tom Tromey  <tromey@redhat.com>

	* database.cc: Include "sqlite/sqlite.h", not <sqlite.h>.

2003-08-20  graydon hoare  <graydon@pobox.com>

	* boost/*:
	incorporate boost sandbox bits, for now.

	* Makefile.am, Makefile.in, configure, configure.ac, diff_patch.cc,
	http_tasks.cc, http_tasks.hh, network.cc, nntp_machine.cc,
	nntp_machine.hh, nntp_tasks.cc, nntp_tasks.hh, testsuite/t_nntp.sh:

	fix up networking layer to pass nntp tests again

2003-08-19  graydon hoare  <graydon@pobox.com>

	* Makefile.am, Makefile.in, app_state.hh, cert.cc, commands.cc,
	constants.hh, cryptopp/misc.h, database.cc, depot.cc,
	http_tasks.cc, http_tasks.hh, keys.cc, lua.cc, lua.hh, monotone.cc,
	network.cc, network.hh, nntp_machine.cc, nntp_machine.hh,
	nntp_tasks.cc, nntp_tasks.hh, packet.cc, packet.hh, rcs_import.cc,
	sanity.cc, sanity.hh, schema.sql, test_hooks.lua,
	testsuite/runtest.sh, testsuite/t_null.sh, vocab_terms.hh:

	major surgery time
	- move to multi-protocol posting and fetching.
	- implement nicer failure modes for sanity.
	- redo commands to print nicer, fail nicer.

2003-08-18  graydon hoare  <graydon@pobox.com>

	* Makefile.am, Makefile.in, adler32.hh, database.cc, depot.cc,
	mac.hh, xdelta.cc, Makefile.am, Makefile.in:

	first pass at a depot (CGI-based packet service)

2003-08-08  graydon hoare  <graydon@pobox.com>

	* Makefile.am, Makefile.in AUTHORS, ChangeLog, Makefile.am,
	Makefile.in, NEWS, monotone.1, monotone.info, monotone.texi:

	release point (v 0.2)

2003-08-08  graydon hoare  <graydon@pobox.com>

	* cert.cc, cert.hh, interner.hh, rcs_import.cc:

	auxilliary certs

	* cert.cc, cert.hh, cycle_detector.hh, interner.hh, patch_set.cc,
	rcs_import.cc:

	improvements to cycle detection stuff

2003-08-05  graydon hoare  <graydon@pobox.com>

	* rcs_import.cc:

	almost even more seemingly correct CVS graph reconstruction (still slow)

	* sqlite/* cryptopp/* Makefile.am, Makefile.in, aclocal.m4,
	config.h.in, configure, configure.ac, file_io.cc, keys.cc,
	sanity.cc, sanity.hh, transforms.cc:

	minimizing dependencies on 3rd party libs by importing the
	necessary bits and rewriting others.

	* cert.cc, cert.hh, rcs_import.cc:

	cvs import seems to be working, but several linear algorithms need
	replacement

2003-07-28  graydon hoare  <graydon@pobox.com>

	* Makefile.am, Makefile.in, cert.cc, commands.cc, database.cc,
	database.hh, manifest.cc, rcs_file.cc, rcs_import.cc,
	rcs_import.hh, vocab.cc, xdelta.cc:

	cvs graph reconstruction hobbling along.

2003-07-21  graydon hoare  <graydon@pobox.com>

	* database.cc, xdelta.cc, xdelta.hh:

	piecewise xdelta; improves speed a fair bit.

2003-07-11  graydon hoare  <graydon@pobox.com>

	* Makefile.am, Makefile.in, config.h.in, configure, configure.ac,
	transforms.cc, xdelta.cc, xdelta.hh:

	implement xdelta by hand, forget 3rd party delta libs.

2003-07-02  graydon hoare  <graydon@pobox.com>

	* database.cc, rcs_import.cc, transforms.cc, transforms.hh:

	speedups all around in the storage system

2003-07-01  graydon hoare  <graydon@pobox.com>

	* database.hh, rcs_import.cc, transforms.cc, transforms.hh: speed

	improvements to RCS import

2003-06-30  graydon hoare  <graydon@pobox.com>

	* rcs_import.cc, transforms.cc:

	some speed improvements to RCS import

2003-06-29  graydon hoare  <graydon@pobox.com>

	* commands.cc, database.hh, rcs_import.cc, transforms.cc:

	RCS file import successfully (albeit slowly) pulls in some pretty
	large (multi-hundred revision, >1MB) test cases from GCC CVS

	* Makefile.in, commands.cc, rcs_file.cc, rcs_file.hh,
	rcs_import.cc, rcs_import.hh,

	Makefile.am: preliminary support for reading and walking RCS files

2003-04-09  graydon hoare  <graydon@pobox.com>

	* autogen.sh: oops
	* */*: savannah import

2003-04-06  graydon hoare  <graydon@pobox.com>

	* initial release.

