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

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-17  Matt Johnston  <matt@ucc.asn.au>

	* database.cc (database::execute()): truncate long query log messages
	before copying, saving memory.
	Patch from Eric Anderson < ea at 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-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-16  Matt Johnston  <matt@ucc.asn.au>

	* netcmd.{cc,hh}, netsync.cc: only read a single command packet
	worth of data at a time, to avoid having to shuffle buffers about.

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  <ubergeek@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  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>

	* 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 (br