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

	* NEWS: Set date, and it turns out AUTOMATE() was there in
	0.27...

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

	* AUTHORS: Add Thomas Moschny and Zack Weinberg.

	* UPGRADE, monotone.spec, visualc/config.h, win32/monotone.iss:
	* debian/changelog: Bump to version 0.28.

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

	* monotone.texi (Workspace): Make the Warnings about pluck more
	Dire.

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

	* NEWS: Update for 0.28.
	* tests/netsync_over_pipes/__driver__.lua: Remove no-longer-needed
	--debug.

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

	* roster.cc (print_to): It is perfectly valid to have an attr set
	to the empty string (which is why we have whole "full_attr"
	annoyance).  Remove incorrect I().

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

	* roster.cc (check_restricted_cset, editable_roster_for_check):
	Tweak comments.

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

	* configure.ac: Go ahead and bump the version number, to make
	distcheck happy.

2006-07-21  Derek Scherger  <derek@echologic.com>

	* roster.cc (mark_roster_with_one_parent): remove std:: prefix
	(editable_roster_for_check): new class for checking cset
	application
	(check_restricted_cset): convert check to use cset.apply_to with
	editable_roster_for_check
	* tests/restrictions_with_deletes: un-xfail
	* tests/restrictions_with_renames_and_adds: un-xfail

2006-07-21  Thomas Moschny  <thomas.moschny@gmx.de>

	* monotone.texi: Document command aliases 'mv', 'ci' and 'ls',
	motivated by savannah bug report #16923.

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

	* monotone.texi: avoid "to to".

2006-07-20  Zack Weinberg  <zackw@panix.com>

	* Makefile.am (run_lua_tests): In generated script, pass command
	line arguments down to tester, and exec it.

2006-07-19  Derek Scherger  <derek@echologic.com>

	* tests/restrictions_with_deletes/: new test for bugs in
	check_restricted_cset
	* testsuite.lua: add it

2006-07-19  Timothy Brownawell  <tbrownaw@gmail.com>

	* NEWS: It's been about a month since the last release. Collect
	important-looking things from the changelog.

2006-07-19  Zack Weinberg  <zackw@panix.com>

	* constants.cc (illegal_path_bytes_arr, illegal_path_bytes): Delete.
	* constants.hh (illegal_path_bytes): Delete.
	* paths.cc (has_bad_chars): Code set of forbidden characters
	explicitly here.

2006-07-18  Zack Weinberg  <zackw@panix.com>

	* revision.cc (print_insane_revision): New function.
	(print_revision, write_insane_revision): Use it.

2006-07-16  Timothy Brownawell  <tbrownaw@gmail.com>

	* tests/dump_on_crash: New test; check that debug dumps work.
	* testsuite.lua: Add it. Also, supply --confdir in safe_mtn.

2006-07-16  Timothy Brownawell  <tbrownaw@gmail.com>

	* cmd.hh: Declare a string commands::hidden_group, that can be given
	as the group name to make a command invisible.
	* commands.cc: Make it work and use it for a new command, "mtn crash".

2006-07-16  Timothy Brownawell  <tbrownaw@gmail.com>

	* monotone.cc: If we don't have a workspace and no dump file is
	specified, set the dumpfile to $CONFDIR/dump . Not tested; that would
	seem to need a reliable (not-a-bug) way to make monotone crash.

2006-07-16  Lapo Luchini  <lapo@lapo.it>

	* po/it.po: Updated and translated a few more strings (53 to go).

2006-07-16  Timothy Brownawell  <tbrownaw@gmail.com>

	* tests/revert_--missing_in_subdir/__driver__.lua: Make it
	line-ending safe.

2006-07-15  Derek Scherger  <derek@echologic.com>

	* tester.txt: wrap long lines and fix a couple spelling errors

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

	* po/sv.po: A few fuzzies to clear.

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

	* tests/diff_output_formats/: Use --no-show-encloser in the places
	where it used to not use --show-encloser.

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

	* boost/format/feed_args.hpp: cast buf.pcount() to size_type as well,
	fixes compiling with boost 1.32.0 for sarge

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

	* cmd_files.cc (diff):
	* cmd_diff_log.cc (fdiff): Oops, rename OPT_SHOW_ENCLOSER here
	too.

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

	* app_state.cc (diff_show_encloser): Default to true.
	* options.hh (OPT_SHOW_ENCLOSER): Rename to OPT_NO_SHOW_ENCLOSER.
	* monotone.cc (coptions): Adjust accordingly -- rename switches to
	--no-show-encloser and --no-show-c-function, remove -p.
	(cpp_main): Adjust accordingly.

2006-07-14  Alex Queiroz  <alex@ventonegro.org>

	* po/pt_BR.po: More strings translated.

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

	* po/sv.po: One new string.

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

	* tests/revert_--missing_in_subdir/: Un-XFAIL.

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

	* work.cc (find_missing): Take a restriction, instead of building
	one from command line args.
	(find_unknown_and_ignored): Similarly.
	* cmd_list.cc (ls_missing, ls_unknown_or_ignored):
	* cmd_ws_commit.cc (add, drop): Adjust accordingly.
	(revert): Re-do --missing handling to work correctly.

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

	* restrictions.cc: Take file_path's instead of utf8 strings; make
	it the cmd_* files's responsibility to convert user input into
	properly typed data.
	* cmd.hh (args_to_paths): Convenience function to make this
	easier.
	* cmd_ws_commit.cc, cmd_merging.cc, cmd_list.cc, cmd_diff_log.cc:
	Use it.

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

	* tests/revert_file_to_base_revision/: Expect a proper error
	message.

2006-07-13  Alex Queiroz  <alex@ventonegro.org>

	* po/pt_BR.po: Fixed fuzzy translations and removed old ones.

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

	* cmd_ws_commit.cc (revert): Only require some restriction be
	passed if --missing is not passed.  Print a proper error message
	when no restriction is given.

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

	* cmd_ws_commit.cc: Remove tabs.

2006-07-13  Zack Weinberg  <zackw@panix.com>

	* Makefile.am: Add explicit dependencies of object files on
	generated headers, to prevent parallel make issues.

	* revision.cc: Rename revision_set to revision_t,
	make_revision_set to make_revision, read_revision_set to
	read_revision, write_insane_revision_set to write_insane_revision,
	and write_revision_set to write_revision.
	* roster.cc: Rename flip_revision_set to flip_revision.
	* automate.cc, cmd_diff_log.cc, cmd_merging.cc, cmd_ws_commit.cc
	* database.cc, database.hh, database_check.cc, enumerator.cc
	* merge.cc, netsync.cc, packet.cc, rcs_import.cc, revision.hh
	* roster.cc roster.hh, work.cc: Update to match.

2006-07-13  Timothy Brownawell  <tbrownaw@gmail.com>

	* netsync.cc (session::process_*): Replace "W(msg); return false;"
	with "error(msg);" in several places, so the other side gets told why
	the connection is being killed.

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

	* tests/restrictions_with_renames_and_adds/__driver__.lua:
	* tests/diff_shows_renames/__driver__.lua: Add notes on possible
	fixes for these bugs.

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

	* tests/diff_shows_renames/__driver__.lua: Tests for bug in diff
	rename handling.

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

	* po/sv.po: One new string and a few fuzzies to fix.

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

	* tests/restrictions_with_renames_and_adds/: Tests for bugs in
	check_restricted_cset.

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

	* tester.lua, tester.txt: Add plain 'xfail' convenience function.
	* tests/revert_--missing_in_subdir/: A bunch of revert --missing
	tests.
	* roster.cc (check_restricted_cset): Add some MM()'s.

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

	* monotone.texi (Tree): Remove documentation of --lca and
	explicit_merge-with-ancestor.

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

	* std_hooks.lua (get_encloser_pattern): Add regexes for texinfo
	and latex, and disable enclosers for pure text.
	* monotone.texi (Hooks): Mention that there are default,
	language-specific regexen.

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

	* std_hooks.lua: Remove tabs.

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

	* cmd_merging.cc (merge): Small tweaks.
	* tests/merge_multiple_heads_1/__driver__.lua: Correctly document
	old algorithm.

2006-07-12  Timothy Brownawell  <tbrownaw@gmail.com>

	* tests/diff_output_formats/__driver__.lua: Needs canonicalization.

2006-07-11  Zack Weinberg  <zackw@panix.com>

	* diff_patch.cc (struct hunk_consumer): Change type of
	encloser_last_match and encloser_last_search from ssize_t to
	vector<string>::const_reverse_iterator.
	(hunk_consumer constructor): Initialize them with a.rend().
	(hunk_consumer::find_encloser): Restructure to do less pointer
	arithmetic.  Add some invariant checks.

2006-07-11  Zack Weinberg  <zackw@panix.com>

	* cmd_merging.cc (merge_two): New function.
	(CMD(merge)): Rewrite again - only merge one pair of heads on each
	pass.  Also, skip all the work of finding a good choice if there
	are only two heads. Use merge_two.
	(CMD(explicit_merge)): Use merge_two.

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

	* po/sv.po: Two new strings to translate.

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

	* restrictions.cc (node_restriction::includes,
	path_restriction::includes): handle --depth with empty restriction
	(test_include_depth_0_empty_restriction): new test for depth with
	empty restriction
	* restrictions.cc (add_restrictions_tests): add it to the testsuite
	* sanity.hh (dump): new template function for dumping variables
	when fiddling around or debugging
	(DUMP): macro wrapper for new dump function

2006-07-10  Zack Weinberg  <zackw@panix.com>

	* tests/diff_output_formats: Merge from mainline.  Correct
	expected output where necessary.  Use long switches in __driver__.lua.
	* diff_patch.cc (hunk_consumer::find_encloser): Use
	reverse_iterators instead of mucking with ssize_t.
	(unidiff_hunk_writer::flush_hunk)
	(ctxdiff_hunk_writer::flush_hunk): Scan what is about to be
	output, and give find_encloser exactly the right position.
	(make_diff): Collapse the overload that takes vectors of strings
	into its sole caller, the other overload.  * diff_patch.hh: Remove
	prototype for deleted overload of make_diff.

2006-07-10  Zack Weinberg  <zackw@panix.com>

	* tests/database_is_closed_on_signal_exit/__driver__.lua: Invert
	sense of SIGSEGV test - expect database *not* to be cleaned up,
	consistent with main.cc.  Remove xfail.

2006-07-10  Zack Weinberg  <zackw@panix.com>

	* configure.ac: Add test and workaround for gcc 4.1.[01] bug
	causing link to fail with a pile of multiple-definition errors.
	* .mtn-ignore: Add aclocal.m4 and all the files in m4/ that
	autoreconf --install likes to create.

2006-07-10  Zack Weinberg  <zackw@panix.com>

	* po/de.po, po/fr.po, po/it.po, po/ja.po, po/pt_BR.po: Re-msgmerge'd.

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

	* po/sv.po: A string got changed...

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

	* cmd_merging.cc (pluck): Restrictions support.
	* tests/pluck_restricted/__driver__.lua: New test.

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

	* roster.cc (check_sane_against): Take a temp_nodes_ok arg.
	(mark_roster_with_one_parent): Pass it.

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

	* cmd_merging.cc (pluck): Restructure to handle nids correctly.
	* tests/pluck_lifecycle/__driver__.lua: Fix and un-xfail.
	* roster.hh (make_roster_for_base_plus_cset): Fix typo.

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

	* roster.cc (mark_roster_with_no_parents)
	(mark_roster_with_one_parent): New functions.
	Plus tests, etc.

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

	* cmd_merging.cc (pluck): Check that revisions exist before using
	them.

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

	* cmd_files.cc (CMD(fdiff)): Make the synopsis match the
	convention used in the rest of the commands.
	* po/sv.po: Translate the new string.

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

	* po/sv.po: New string and a few fuzzies.

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

	* tests/pluck_lifecycle/__driver__.lua: New XFAILed test for a
	minor pluck bug.
	* testsuite.lua: Add it.

2006-07-07  Zack Weinberg  <zackw@panix.com>

	* diff_patch.cc: Add commentary on cxtdiff_hunk_writer algorithm.
	(cxtdiff_hunk_writer::advance_to): Flush pending mods before computing
	whether we need to make a new hunk.
	(unidiff_append_test): Remove.
	* cmd_files.cc (CMD(fdiff)): New debugging command.
	* tests/diff_output_formats: New test.
	* tests/(minor)_context_diff: Remove stub.
	* testsuite.lua: Update to match.

2006-07-07  Timothy Brownawell  <tbrownaw@gmail.com>

	* contrib/ChangeLog.sh: Make it work from anywhere in a workspace,
	not just the workspace root.

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

	* diff_patch.cc (make_diff): Add more notes on how diffs are
	interpreted.

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

	* diff_patch.cc (make_diff): Add notes on how 5 different diff
	parsing tools interpret diff headers.

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

	* cmd_diff_log.cc (dump_diffs): Oops again.

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

	* cmd_diff_log.cc (dump_diffs): Oops, fix typos.

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

	* diff_patch.cc (make_diff): Add a version that does a bit more
	work.
	* cmd_diff_log.cc (dump_diffs): Use it to simplify this code.

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

	* cmd_diff_log.cc: Remove tabs.

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

	* lcs.cc (_longest_common_subsequence): Trivial whitespace tweak.

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

	* cmd_merging.cc (pluck): Remove pointless call to
	maybe_update_inodeprints.

2006-07-07  Timothy Brownawell  <tbrownaw@gmail.com>

	* tester.cc: Add a newline to the help message.
	* tester.txt: Add a brief overview at the beginning.

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

	* tests/inodeprints/__driver__.lua: Add some sleep()s, so that the
	clever new inodeprints logic does not notice we are changing
	things very quickly and turn itself off.

2006-07-06  Timothy Brownawell  <tbrownaw@gmail.com>

	* Makefile.am: distcheck isn't happy that run_lua_tests doesn't get
	removed by distclean. I think it needs to be in DISTCLEANFILES ?

2006-07-06  Timothy Brownawell  <tbrownaw@gmail.com>

	Make 'mtn help' and 'mtn --help' exit with status 0 instead of 2.
	* app_state.{cc,hh}: requested_help is now in app_state
	* monotone.cc: requested_help is now in app_state. Also, check this
	when catching a usage, and exit with 0 instead of 2 if it's set.
	* commands.cc (CMD(help)): Set app.requested_help.
	* tests/basic_invocation_and_options/__driver__.lua:
	* tests/check_that_--xargs_and_-(at)_behave_correctly/__driver__.lua:
	* tests/empty_environment/__driver__.lua:
	* tests/test_the_help_command/__driver__.lua:
	Update to expect the new exit code.

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

	* unix/inodeprint.cc (inodeprint_file): Add some clever logic
	inspired by Martin Pool, to be somewhat more robust against clock
	issues.  This should be ported to win32, but I don't know how; I
	also have no earthly idea how to test this new code.

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

	* cmd_merging.cc (pluck): Write a note to _MTN/log after each
	pluck.
	* tests/pluck_basics/__driver__.lua: Test for it.

2006-07-07  Richard Levitte  <richard@levitte.org>

	* po/sv.po: A new string to translate

2006-07-06  Timothy Brownawell  <tbrownaw@gmail.com>

	* tests/common/cvs.lua: Sleep after running CVS.
	* tester.lua: Adjust command handling somewhat, so the above works.
	* tests/*cvs*/__driver__.lua: Remove any sleep(1) lines. This is now
	handled automatically.

2006-07-06  Timothy Brownawell  <tbrownaw@gmail.com>

	* tests/importing_cvs_branches_with_correct_ancestory/__driver__.lua:
	Move a sleep(). Maybe it'll work reliably now?

2006-07-06  Timothy Brownawell  <tbrownaw@gmail.com>

	* tests/fail_cleanly_on_unreadable__MTN_options/__driver__.lua:
	Monotone now checks that it was given a command before it looks at
	_MTN. So, check that "mtn status" fails properly, instead of just "mtn".

2006-07-06  Timothy Brownawell  <tbrownaw@gmail.com>

	* tester.cc: New function, does approximately "chmod -R u+rwx".
	* tester.lua: Use this on things we copy from the test dir to the
	scratch dir. This should fix the failures on the distcheck buildbots.
	* tests/importing_cvs_with_vendor_imports_and_branches/__driver__.lua:
	* tests/importing_cvs_files_with_identical_logs/__driver__.lua:
	Add sleep() s between some of the CVS operations.

2006-07-06  Alex Queiroz  <alex@ventonegro.org>

	* po/pt_BR.po: Fuzzies cleared and more strings translated.

2006-07-06  Richard Levitte  <richard@levitte.org>

	* po/sv.po: Another fuzzy.

2006-07-06  Richard Levitte  <richard@levitte.org>

	* cmd_merging.cc (CMD(pluck)): A message said 'cherrypatch' when
	it should say 'pluck'.
	* po/sv.po: New strings to translate and a few fuzzies that needed
	changing.

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

	* tests/checking_a_few_command_specific_options/__driver__.lua
	(output): Fix test to actually work.

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

	* monotone.cc (cpp_main): Tyop in previous commit.

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

	* commands.cc (complete_command):
	* monotone.cc (cpp_main): Minor code cleanups.

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

	* tests/checking_a_few_command_specific_options/__driver__.lua:
	Add test for minor bug reported by Marcin 'hrw' Juszkiewicz.

2006-07-05  Timothy Brownawell  <tbrownaw@gmail.com>

	* tests/importing_cvs_branches_with_correct_ancestory/__driver__.lua:
	Add some sleep() s to (try to) fix intermittent failures, apparently
	caused by CVS using only timestamps for change detection.

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

	* diff_patch.cc (get_ancestral_roster): Update comment and add an
	invariant.

2006-07-05  Timothy Brownawell  <tbrownaw@gmail.com>

	* diff-patch.cc: Apply njs's patch to fix crash.
	* tests/merge_conflict_with_no_lca/__driver__.lua: Remove xfail.

2006-07-05  Timothy Brownawell  <tbrownaw@gmail.com>

	* tests/merge_conflict_with_no_lca: We don't want to crash when
	a merge has a content conflict but no lca.

2006-07-05  Timothy Brownawell  <tbrownaw@gmail.com>

	* randomfile.hh (file_randomizer::build_random_fork): When generating
	two consecutive 'insert' hunks where the inserts occur on opposite
	sides of the fork, insert spacer lines between the hunks. This
	prevents it from generating some real conflicts that were making some
	of the unit_tests (which expect cleanly mergable files) fail.

2006-07-05  Timothy Brownawell  <tbrownaw@gmail.com>

	* tester.lua: Use open_or_err more.

2006-07-04  Alex Queiroz  <alex@ventonegro.org>

	* po/pt_BR.po: A few more strings translated.

2006-07-04  Timothy Brownawell  <tbrownaw@gmail.com>

	* tester.cc: When setting env vars, don't take .c_str() of a temporary.

2006-07-04  Graydon Hoare  <graydon@pobox.com>

	* cmd_automate.cc: Fix for VC8 compatibility.
	* netxx_pipe.cc: Minor cleanups.
	* visualc/*.vcproj: Build fixes.

2006-07-04  Graydon Hoare  <graydon@pobox.com>

	* randomizer.{cc,hh}: Remove seed function.
	* randomfile.hh: Remove use of seed().
	* diff_patch.cc: Remove seeding arg from tester.

2006-07-04  Graydon Hoare  <graydon@pobox.com>

	* randomizer.{cc,hh}: New helpers for prngs.
	* Makefile.am (MOST_SOURCES): Add them.
	* charset.cc: Fix some missing initializers in unit tests.
	* randomfile.hh: Use randomizer, not rand().
	* roster.cc: Likewise.
	* refiner.{cc,hh}: Add random unit tester,
	and fix serious protocol-wedging bug.
	* unit_tests.{cc,hh}: Register refiner tests.

2006-07-19  Thomas Moschny  <thomas.moschny@gmx.de>

	* tests/automate_tags: Some basic tests for automate tags.
	* testsuite.lua: Activated new test.

2006-07-04  Thomas Moschny  <thomas.moschny@gmx.de>

	* automate.cc (AUTOMATE(tags)): New function: List all tags in
	basic_io format, possibly filtered by branch.
	* monotone.texi (Automation): Description of the new added.

2006-07-02  Roberta Lazzeri  <ripley@lapo.it>

	* po/it.po: Translated a few more strings to Italian (42 to go).

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

	* tester.txt: Short descriptions of the functions provided for use
	by testsuites.
	* testsuite.txt: Short descriptions of the functions provided for
	use by tests.

2006-07-01  Thomas Moschny  <thomas.moschny@gmx.de>

	* automate.cc (AUTOMATE(branches)): New function, almost similar
	to ls branches.
	* cmd_automate.cc (interface_version): Incremented.
	* monotone.texi (Automation): Description of the new command added.
	* tests/automate_branches/: Testing the new command.
	* testsuite.lua: Activated new test.

2006-06-30  Thomas Moschny  <thomas.moschny@gmx.de>

	* contrib/monotone.zsh_completion: New function
	 _mtn_files_changed, used by _mtn_commit and _mtn_revert. Renamed
	 and updated mtn_files_unmaintained. Minor fixes.

2006-06-29  Thomas Moschny  <thomas.moschny@gmx.de>

	* contrib/monotone.zsh_completion: Bugfix: completion for 'mtn ci'
	used _mtn_checkout(). Directory completion for --keydir and
	--confdir. Revised _mtn_commit(). Redirecting stderr to /dev/null
	while completing branches or known files.

2006-06-28  Matthew Gregan  <kinetik@orcon.net.nz>

	* hash_map.hh: %s/_T/T/g; _T is reserved for the implementation,
	and attempting to use it results in compile failures on OS X 10.3.

2006-06-24  Richard Levitte  <richard@levitte.org>

	* Changelog: Convert all CRLF to LF.
	* po/sv.po: A few more fuzzies to correct.

2006-06-24  Lapo Luchini  <lapo@lapo.it>

	* po/it.po: Updated and translated a few more strings (63 to go).
	Removed quotes around revision values.
	* app_state.cc, revision.cc, work.cc: removed a newline.

2006-06-24  Thomas Moschny <thomas.moschny@gmx.de>

	* contrib/monotone.zsh_completion: Recommend installation into
	/usr/share/zsh/site-functions, as suggested by Steven E. Harris
	<seh@panix.com>. Add a note about per-user installation.

2006-06-24  Matthew Gregan  <kinetik@orcon.net.nz>

	* visualc/config.h: Bump version number to 0.27.
	* monotone.cc (cpp_main): Fix another 'monotone' vs 'mtn' in
	command output.
	* roster.cc (update_current_roster_from_filesystem): Use prog_name
	here too.

2006-06-24  Marcel van der Boom  <marcel@hsdev.com>

	* roster.cc (update_current_roster_from_filesystem): Change
	'monotone' to 'mtn' in an error message.

2006-06-24  Thomas Moschny <thomas.moschny@gmx.de>

	* contrib/monotone.zsh_completion: Replace references to
	'monotone' with 'mtn'. Allow more than one standard option on the
	command line.

2006-06-22  Richard Levitte  <richard@levitte.org>

	* testsuite.lua: Make sure to set all NLS environment variables
	to "C", so tests don't fail when the default locale is non-
	english.

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

	* tests/empty_environment/__driver__.lua: Fix test on Cygwin--copy
	essential DLLs into current directory before emptying $PATH.
	* win32/monotone.iss: Remove hardcoded paths that were
	accidentally left in after debugging.

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

	* hash_map.hh: Add a specialization for unsigned long; fixes build
	on Cygwin/GCC 3.4.  Thanks to Lapo Luchini for the original patch.
	* win32/monotone.iss: Add monotone logo to wizard (generated from
	figures/monotone-logo.svg).  Sanity check key ID, branch name, and
	workspace path.
	* Makefile.am: Include win32/modpath.iss in EXTRA_DIST.

2006-06-20  Alex Queiroz  <alex@ventonegro.org>

	* po/pt_BR.po: Fixed remaining fuzzies.

2006-06-20  Nathaniel Smith  <njs@pobox.com>

	* tester.lua (open_or_err): New function.
	(pre_cmd): Use it.  It should probably be used much more widely,
	but I'm not sure what I'm doing yet...

2006-06-20  Nathaniel Smith  <njs@pobox.com>

	* INSTALL: Update a little bit, in particular, give a newer boost
	download link in response to complaint on mailing list, and put
	1.9 version number on automake command line.

2006-06-20  Nathaniel Smith  <njs@pobox.com>

	* configure.ac: Remove autotest-related configury.
	Add magic AM_INIT_AUTOMAKE options to make tar handle the long
	filenames in the new test suite (automake 1.9 is now required).

2006-06-20  Nathaniel Smith  <njs@pobox.com>

	* Makefile.am (EXTRA_DIST): The auto* gods demand sacrifice;
	remove an extra / to balance previous change.
	(NB: apparently a trailing / on a directory in EXTRA_DIST does
	bizarre things.)
	Also, remove empty files tests/atconfig.in, tests/atlocal.in.

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

	* Makefile.am (EXTRA_DIST): Add missing \.

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

	* Makefile.am (EXTRA_DIST, BUILT_SOURCES_CLEAN):
	* database.hh, database.cc: Remove old dead views stuff.

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

	* po/sv.po: A fuzzy to clear.

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

	* cmd_automate.cc (AUTOMATE(interface_version),AUTOMATE(stdio)),
	cmd_list.cc (AUTOMATE(keys)): Don't send an empty string to
	gettext.  Here's what xgettext said:

	cmd_automate.cc:68: warning: Empty msgid.  It is reserved by GNU gettext:
				     gettext("") returns the header entry with
				     meta information, not the empty string.
	cmd_automate.cc:209: warning: Empty msgid.  It is reserved by GNU gettext:
				      gettext("") returns the header entry with
				      meta information, not the empty string.
	cmd_list.cc:539: warning: Empty msgid.  It is reserved by GNU gettext:
				  gettext("") returns the header entry with
				  meta information, not the empty string.

	I'm quite sure we don't want the header entry printed...

2006-06-19  Alex Queiroz  <alex@ventonegro.org>

	* po/pt_BR.po: Fixed several fuzzy translations.

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

	* Makefile.am (EXTRA_DIST): Make sure that all the files in
	examples/ get properly distributed as well.

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

	* cmd_automate.cc: #include <boost/function.hpp>, as requested in
	bug #16866 for boost 1.32.0 compatibility.

2006-06-19  Derek Scherger  <derek@echologic.com>

	* automate.cc (inventory): use path_restriction
	* cmd_diff_log.cc (diff,log):
	* cmd_list.cc (ls_known,ls_changed):
	* cmd_ws_commit.cc (revert,status,commit): use node_restrictions
	* restrictions.{cc,hh} (restriction): subclass into ...
	(node_restriction): ... this, operating on roster nodes and
	validated against roster paths
	(path_restriction): ... and this, operating on split paths and
	validated against workspace paths ; the unit_tests currently
	create directories {x,y}/{x,y} wherever they run to pass workspace
	path validation and this should probably be cleaned up
	* roster.{cc,hh} (make_restricted_csets,
	update_current_roster_from_filesystem,
	extract_path_set): use node_restrictions
	* work.{cc,hh} (find_missing): use node_restriction
	(find_unknown_and_ignored): use path_restriction
	* tests/ls_unknown_of_unknown_subdir/__driver__.lua: un-xfail
	and add output checks

2006-06-18  Derek Scherger  <derek@echologic.com>

	* cmd_ws_commit.cc (checkout): replace size check with call to
	workspace_root
	* paths.{cc,hh} (workspace_root): new function to test if a
	split_path is the workspace root
	* roster.cc (extract_path_set): replace size check with call to
	workspace_root

2006-06-18  Ethan Blanton  <elb@elitists.net>

	* std_hooks.lua: Call the lua function get_mtn_command(host)
	from get_netsync_connect_command in order to determine the
	monotone command on the remote host.
	* monotone.texi: Document get_mtn_command, update the
	get_netsync_connect_command definition to incorporate it.

2006-06-17  Graydon Hoare  <graydon@pobox.com>

	* Makefile.am: Permit building 'tester' with static boost.

2006-06-17  Derek Scherger  <derek@echologic.com>

	* testsuite.lua: fix references to renamed tests

2006-06-17  Derek Scherger  <derek@echologic.com>

	* tests/README: add a couple of notes on where to find test logs

2006-06-17  Derek Scherger  <derek@echologic.com>

	* tests/'heads':
	* tests/heads:
	* tests/'heads'_with_discontinuous_branches:
	* tests/heads_with_discontinuous_branches:
	* tests/trust_hooks_and_'trusted'_command:
	* tests/trust_hooks_and_trusted_command:
	rename tests to play nicer with find and xargs

2006-06-17  Derek Scherger  <derek@echologic.com>

	* tests/ls_unknown_of_unknown_subdir: new xfail test
	* testsuite.lua: insert in tests table

2006-06-17  Timothy Brownawell  <tbrownaw@gmail.com>

	* cmd.hh, commands.cc: Modify how command parameters description
	strings are handled.
	* cmd_automate.cc, cmd.hh: Use this to make the parameters for
	each automate subcommand be a parameter of the ATUOMATE() macro,
	instead of all being a big block in the automate command.
	* automate.cc, cmd_list.cc, cmd_automate.cc: Update AUTOMATE() usage.

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

	* po/sv.po: One new untranslated string and a couple of fuzzies.

2006-06-17  Nathaniel Smith  <njs@pobox.com>

	* configure.ac, debian/changelog, monotone.spec:
	* win32/monotone.iss, NEWS, UPGRADE: Bump version numbers to
	0.27.

2006-06-17  Timothy Brownawell  <tbrownaw@gmail.com>

	(see bug #15995, asking for a more comprehensive automate command set)
	Start splitting up automate.cc . There is now an AUTOMATE() macro in
	cmd.hh , similar to the CMD() macro. Individual automate commands can
	share a file with similar command-line commands, and many commands can
	be factored into an implementation with CMD() and AUTOMATE() wrappers
	to format input/output.
	* cmd.hh: Add stuff needed to define a new automate command.
	* cmd_automate.cc: This gets automate infrastructure similar to
	what commands.cc is for command-line commands. And automate stdio.
	* cmd_list.cc: "keys" and "certs" automate commands go here
	* automate.hh: No longer needed.
	* automate.cc: use AUTOMATE() macro for the automate commands that
	haven't got a new home yet.

2006-06-16  Richard Levitte  <richard@levitte.org>

	* examples/display_branches.lua: Enhanced to display how many
	times each branch cert appeared.

2006-06-14  Alex Queiroz  <alex@ventonegro.org>

	* monotone.texi: Added a trick about reusing code from the default
	hooks using Lua closures.

2006-06-13  Derek Scherger  <derek@echologic.com>

	* cmd_list.cc (ls_changed): roster friendly rewrite using existing
	select_nodes_modified_by_cset

2006-06-12  Derek Scherger  <derek@echologic.com>

	* cmd_merging.cc (get_roster): allow no arguments and default to
	value in _MTN/revision
	* std_hooks.lua: switch temporary file names from mt.XXX to
	mtn.XXX; update attr function docs; add java class files to
	standard ignore hook

2006-06-11  Lapo Luchini  <lapo@lapo.it>

	* po/it.po: Updated and translated a few more strings (68 to go).

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

	* po/sv.po: Clear 2 fuzzies.  Change a %s to %d, corresponding to
	Lapo's change below.

2006-06-09  Lapo Luchini  <lapo@lapo.it>

	* database.cc: corrected a '%s' in a '%d', removed a couple of '\n'.
	* po/it.po: Updated and translated a few more strings (71 to go).

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

	* visualc/sqlite3.vcproj: Let SQLite build find our config.h.

2006-06-08  Matt Johnston  <matt@ucc.asn.au>

	* inodeprint.cc: convert to basic_io format.
	Silently skips reading old format files, then writes
	out the new format as per usual. Old mtn versions
	have no format checking so will read the (nonsensical)
	new format file without errors.

2006-06-08  Matt Johnston  <matt@ucc.asn.au>

	* boost/format/feed_args.hpp: 0 needs to be unsigned.
	* vocab.cc: #undef EXTERN before #defining it again

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

	* cert.cc:
	* charset.cc:
	* commands.cc:
	* keys.cc:
	* lua.cc:
	* netsync.cc:
	* netxx_pipe.cc:
	* rcs_import.cc:
	* schema_migration.cc:
	* simplestring_xform.cc:
	* txt2c.cc:
	* xdelta.cc: add some more using std::* directives.
	* boost/format/feed_args.hpp: std::streamsize might be signed

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

	* Makefile.am: Add new SQLite sources.
	* sqlite/*: Import SQLite 3.3.6.
	* Makefile.am, configure.ac: Test for fdatasync and usleep.

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

	* netxx_pipe.cc (simple_pipe_test): Another test failure,
	another klugey #ifdef...

2006-06-07  Graydon Hoare  <graydon@pobox.com>

	* netxx_pipe.cc (simple_pipe_test): Attempt to fix broken unit
	test.

2006-06-05  Graydon Hoare  <graydon@pobox.com>

	* sanity.{cc,hh}: Specialize formatters to number types.
	* NEWS: Mention some optimizations.

2006-06-05  Matt Johnston  <matt@ucc.asn.au>

	* NEWS: fix ssh:// syntax to match what works

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

	* NEWS: fix version typo

2006-06-04  Nathaniel Smith  <njs@pobox.com>

	* NEWS: Draft release notes for 0.27.

2006-06-04  Nathaniel Smith  <njs@pobox.com>

	* HACKING (Tip): Add some tips on tracking down unit test
	failures.

2006-06-04  Richard Levitte  <richard@levitte.org>

	* m4/ac_compile_check_sizeof.m4, m4/acx_pthread.m4: Updates
	contributed by Peter Simons <simons@cryp.to>.

2006-06-03  Graydon Hoare  <graydon@pobox.com>

	* *.{cc,hh}: Update editor mode lines.

2006-06-03  Graydon Hoare  <graydon@pobox.com>

	* *.{cc,hh}: Update copyright notices.

2006-06-04  Richard Levitte  <richard@levitte.org>

	* po/sv.po: Lots of fuzzies to fix.

2006-06-03  Graydon Hoare  <graydon@pobox.com>

	* std_hooks.lua (merge3_xxdiff_cmd): Fix typo.
	* cmd_diff_log.cc (dump_diffs): Undo overzealous removal of '\n'.

2006-06-03  Graydon Hoare  <graydon@pobox.com>

	* {cert,charset,cleanup,cmd*}.{cc,hh}: Coppyright and formatting
	fixes.

2006-06-03  Lapo Luchini  <lapo@lapo.it>

	* *.cc *.hh: removed extra "\n" from translatable strings.
	removed trailing spaces.

	* po/it.po: Updated to the new newline-less strings.

2006-06-03  Matthew Gregan  <kinetik@orcon.net.nz>

	* win32/os_strerror.cc (os_strerror): Trim trailing newlines from
	error string returned from FormatMessage.

	* sanity.{cc,hh} (format_base): Add dtor to delete pimpl.

2006-06-02  Lapo Luchini  <lapo@lapo.it>

	* po/it.po: Updated and translated a few more strings (95 to go).

2006-06-02  Roberta Lazzeri  <ripley@lapo.it>

	* po/it.po: Translated a few more and fuzzy strings to Italian (90 to go).

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

	* visualc/monotone.vcproj: Add win32/os_strerror.cc to project.

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

	* HACKING: A small correction about namespaces.

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

	* HACKING: add note on using namespaces
	* ROADMAP: remove janitorial items pertaining to namespaces and
	splitting commands.cc

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

	* po/sv.po: A new string to translate.

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

	* std_hooks.lua (merge3_*_cmd): Make all the merge3 merge helpers
	check the returned exit code of the merge program and generate an
	error message if it fails.
	(execute_confirm): Don't output an error message, that's the
	caller's responsability.
	(merge3): Follow the way the check of exit code is done elsewhere.

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

	* std_hooks.lua (merge3): Check the exit code from the merging
	program to detect failure.  We could do that by strictly checking
	if the output file exists, but since some programs, like meld,
	don't produce a specific output file, that method is unsafe.
	(execute_confirm): Check the exit code from the execute call,
	and tell the user if something went wrong.

2006-05-28  Graydon Hoare  <graydon@pobox.com>

	* AUTHORS: Minor touchups.
	* ChangeLog: Fix capitalization.
	* annotate.{cc,hh}:
	* app_state.{cc,hh}:
	* automate.{cc,hh}:
	* lcs.cc:
	* basic_io.{cc,hh}: Cosmetic and copyright fixes.
	* configure.ac: Permit PCH for 4.* not 4.0*.
	* cert.cc:
	* charset.cc:
	* cmd_diff_log.cc:
	* cmd_merging.cc:
	* cmd_ws_commit.cc:
	* database.cc:
	* ui.hh:
	* unix/get_system_flavour.cc:
	* xdelta.cc: Purge boost::format uses.
	* sanity.{cc,hh}: Hide boost::format in pimpl.

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

	* app_state.cc:
	* charset.cc:
	* cmd.hh:
	* cmd_automate.cc:
	* cmd_files.cc:
	* cmd_key_cert.cc:
	* cmd_list.cc:
	* cmd_merging.cc:
	* cmd_othervcs.cc:
	* cmd_ws_commit.cc:
	* commands.cc:
	* database.cc:
	* diff_patch.cc:
	* keys.cc:
	* restrictions.cc:
	* restrictions.hh:
	* revision.cc:
	* schema_migration.cc:
	* string_queue.cc:
	* transforms.cc:
	* txt2c.cc:
	* update.cc:
	* work.cc:
	* xdelta.cc:
	more namespace fixups

2006-05-28  Richard Levitte  <richard@levitte.org>

	* po/sv.po: A few new and fuzzy strings to (re)translate.

2006-05-28  Matt Johnston  <matt@ucc.asn.au>

	* std_hooks.lua (get_netsync_connect_command): quote patterns
	so that remote shells won't expand them.

2006-05-28  Matthew Gregan  <kinetik@orcon.net.nz>

	* visualc/config.h: Fix build: add typedef needed by recent
	os_strerror changes.
	* netxx_pipe.cc (Netxx::PipeCompatibleProbe::add): Compile fix for
	Win32.
	* win32/fs.cc (rename_clobberingly_impl): Fix crash with
	VC8--calling convention for MoveFileEx was not correct (we
	defaulted to cdecl, should have been using stdcall).

	* win32/monotone.iss: First pass at rewriting InnoSetup file for
	modern versions of IS.
	* win32/modpath.iss: Add Jared Breland's GPL-licensed IS script
	for portable %PATH% modification.

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

	* {unix,win32}/os_strerror.cc, platform.hh: Add OS-specific
	wrapper around strerror().
	* Makefile.am: Add new files.
	* configure.ac: Define os_err_t based on detected OS.
	* {unix,win32}/{fs,process}.cc, file_io.cc: Use new strerror
	wrapper.

	* netxx/{resolve_gethostbyname,sockopt}.cxx: A couple more error
	reporting cleanups.

2006-05-28  Graydon Hoare  <graydon@pobox.com>

	* visualc/monotone.vcproj: Fix for package revision generation
	(still not capturing workspace changes, but base rev)

2006-05-28  Graydon Hoare  <graydon@pobox.com>

	* netcmd.cc: Fix build breakage in unit tests.

2006-05-28  Graydon Hoare  <graydon@pobox.com>

	* app_state.cc (search_root): Initialize to current_root_path().
	* paths.{cc,hh} (current_root_path): New function.
	* win32/get_system_flavour.cc (processor_types): Fix typo.

2006-05-28  Lapo Luchini  <lapo@lapo.it>

	* po/it.po: Translated a few more strings to Italian (105 to go).

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

	* annotate.cc:
	* app_state.cc:
	* automate.cc:
	* basic_io.cc:
	* cert.cc:
	* charset.cc:
	* cmd_automate.cc:
	* cmd_db.cc:
	* cmd_diff_log.cc:
	* cmd_list.cc:
	* cmd_merging.cc:
	* cmd_netsync.cc:
	* cmd_packet.cc:
	* cmd_ws_commit.cc:
	* commands.cc:
	* constants.cc:
	* crypto_tests.cc:
	* cset.cc:
	* database.cc:
	* database_check.cc:
	* diff_patch.cc:
	* enumerator.cc:
	* epoch.cc:
	* file_io.cc:
	* globish.cc:
	* hmac.cc:
	* inodeprint.cc:
	* key_store.cc:
	* keys.cc:
	* lcs.cc:
	* legacy.cc:
	* lua.cc:
	* lua_hooks.cc:
	* main.cc:
	* merge.cc:
	* merkle_tree.cc:
	* mkstemp.cc:
	* monotone.cc:
	* mt_version.cc:
	* netcmd.cc:
	* netsync.cc:
	* packet.cc:
	* paths.cc:
	* rcs_file.cc:
	* rcs_import.cc:
	* refiner.cc:
	* revision.cc:
	* roster.cc:
	* roster_merge.cc:
	* sanity.cc:
	* schema_migration.cc:
	* selectors.cc:
	* simplestring_xform.cc:
	* ui.cc:
	* unit_tests.cc:
	* vocab.cc:
	* vocab_macros.hh:
	* work.cc:
	* xdelta.cc:
	namespace fixups as described in the ROADMAP

2006-05-28  Richard Levitte  <richard@levitte.org>

	* po/sv.po: Update two fuzzies.

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

	* paths.cc (find_and_go_to_workspace): ensure that the current
	directory is below the specified --root; issue a warning and abort
	the search if it's not
	* tests/t_invalid_root.at: new test
	* testsuite.at: call it

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

	* tests/t_invalid_root.at:

2006-05-27  Lapo Luchini  <lapo@lapo.it>

	* po/it.po: Translated a few more strings to Italian (116 to go).
	* netxx/resolve_gethostbyname.cxx: Reverted what I think was an
	unwanted replace in r:0f1782f7e2348f991a0b8eeac03c45a72c8633a2

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

	* automate.cc (automate_get_manifest_of, automate_get_file):
	* cmd_merging.cc (get_roster): use roster_data instead of generic
	data
	* database.{cc,hh} (get_roster): rename to ...
	(get_roster_version): ... this and move to a better spot
	(put_roster): use roster_data
	* database_check.cc (check_rosters_manifest,
	check_rosters_marking): use roster_data
	* roster.{cc,hh} (read_roster_and_marking,
	write_roster_and_marking, write_manifest_of_roster,
	calculate_ident, do_testing_on_one_roster, tests_on_two_rosters,
	write_roster_test):
	* transforms.{cc,hh} (calculate_ident): use roster_data
	* vocab.cc: add dump template for roster_data
	* vocab.hh: add roster_data typedef
	* vocab_terms.hh: instantiate roster_data template, add
	roster_data operator<<

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

	* cmd_merging.cc (CMD(update)): Report branch switch after
	reporting updated files so that the user is less likely to miss
	the message.

	* netxx/osutil.cxx: Mark string table static const.  Trim any
	trailing line feeds from message returned from FormatMessage.

	* netxx/osutil.h: error_type is a DWORD on Win32.

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

	* database.{cc,hh} (exists): indentation fix
	(roster_version_exists, roster_exists_for_revision,
	get_roster_links, get_roster_ids, delete_existing_rev_and_certs,
	get_roster_id_for_revision, get_roster, put_roster):
	* database_check.cc (check_rosters_manifest,
	check_rosters_marking, check_roster_links, check_revisions,
	report_rosters, check_db): replace hexenc<id> with roster_id
	* transforms.{cc,hh} (calculate_ident): new roster_id variant
	* vocab.cc (dump): new roster_id variant
	* vocab.hh: typedef roster_id
	* vocab_terms.hh: roster_id template instantiations

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

	* cmd_merging.cc (merge_into_dir): use the_null_node rather than 0

2006-05-24  Matthew Gregan  <kinetik@orcon.net.nz>

	* win32/get_system_flavour.cc: Report service pack number, if any
	is installed.  While here, make a few other tweaks based on
	documentation in MSDN.
	* win32/fs.cc: Add win32_strerror() and use it in
	rename_clobberingly() rather than displaying a raw error number to
	the user.
	* netxx/osutil.{cxx,h}: Add OS-specific strerror function.  This
	continues to call strerror() on POSIX, and tries using
	FormatMessage() and a built-in error message table on Win32.
	* netxx/{accept,datagram,peer,probe_select,recvfrom}.cxx,
	netxx/{resolve_gethostbyname,serverbase,socket,sockopt}.cxx,
	netxx/{streambase,streamserver}.cxx: s/strerror/Netxx::str_error/g.

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

	* tester.cc tester.lua: New files, which will eventually become a
	new testsuite system.
	* Makefile.am: Break sanity.* and dependencies out as
	SANITY_CORE_SOURCES. Break lua.* and non-sanity dependencies out
	as LUAEXT_SOURCES. Right now these are just included into MOST_SOURCES,
	maybe compile them into .a files later? New target tester also
	uses these.

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

	* po/sv.po: A fuzzy to change.

2006-05-22  Graydon Hoare  <graydon@pobox.com>

	* cmd_netsync.cc (serve): Make --no-transport-auth require --stdio.

2006-05-22  Graydon Hoare  <graydon@pobox.com>

	* Makefile.am: Add uri.{cc,hh}.
	* app_state.{cc,hh} (use_transport_auth): New state variable.
	* cmd_netsync.cc (serve): Support use_transport_auth.
	* constants.hh (netcmd_minsz): Remove dead byte count related to adler32.
	* hmac.{cc,hh} (active): New state variable.
	* lua.{cc,hh} (lua_hooks::hook_get_netsync_connect_command):
	(lua_hooks::hook_use_transport_auth): New hooks.
	* monotone.cc: Support --no-transport-auth.
	* monotone.texi: Document all this stuff.
	* netcmd.cc: Predicate hmac activity on hmac.is_active().
	* netsync.cc: Parse URIs via lua, optionally disable transport auth.
	* options.hh (OPT_NO_TRANSPORT_AUTH): New option.
	* std_hooks.lua (get_netsync_connect_command):
	(use_transport_auth): New default definitions.
	* tests/t_netsync_pipe.at: New test.
	* testsuite.at: Add new hooks and t_netsync_pipe.at.
	* unit_tests.{cc,hh}: Support URI tests.
	* uri.{cc,hh}: New files.

2006-05-22  Timothy Brownawell  <tbrownaw@gmail.com>

	* file_io.{cc,hh} localized_file_io.{cc,hh}: Split off the functions
	that use lua_hooks (to get localization settings) into a separate file.
	* Makefile.am: Adjust for having new files.
	* roster.cc work.cc diff_patch.cc cmd_diff_log.cc:
	* cmd_files.cc cmd_ws_commit.cc: Adjust includes.

2006-05-22  Timothy Brownawell  <tbrownaw@gmail.com>

	* transforms.{cc,hh} charset.{cc,hh} simplestring_xform.{cc,hh}:
	Split up transforms.cc . Hex, base64, gzip, and ident stay in
	transforms. Simple string stuff (no botan or idna) goes in
	simplestring_xform. Charset stuff goes in charset.
	* Makefile.am unit_tests.{cc,hh}: Adjust for having new files.
	* 20 others: Adjust includes.

2006-05-22  Timothy Brownawell  <tbrownaw@gmail.com>

	* work.{cc,hh} constants.{cc,hh}: Move attribute strings to constants.
	* transforms.cc: Include constants.hh instead of work.hh .
	* annotate.cc diff_patch.cc crypto_tests.cc: Fix includes.

2006-05-22  Timothy Brownawell  <tbrownaw@gmail.com>

	* transforms.{cc,hh} revision.{cc,hh} roster.{cc,hh} file_io.{cc,hh}:
	Move calculate_ident for revision_set and roster to those files. Move
	calulate_ident for files to file_io.
	* 10 others: Fix includes.

2006-05-22  Timothy Brownawell  <tbrownaw@gmail.com>

	Do not include cert.hh from vocab.hh .
	* vocab_macros.hh vocab.{cc,hh} cert.{cc,hh}: Move the type definition
	macros to vocab_macros.hh, and move revision<cert> and manifest<cert>
	to cert.{cc,hh} .
	* Makefile.am: Adjust for having a new file.
	* 12 others: Fix includes that relied on cert.hh being included
	by vocab.hh .

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

	Split lua.cc into two files: lua_hooks.cc gets the lua_hooks class
	and the one callback that needs an app_state, lua.cc gets everything
	else.
	* lua.{cc,hh}: Rename to lua_hooks.{cc,hh}. Move almost everything
	except the lua_hooks class to...
	* lua.{cc,hh}: New files.
	* Makefile.am: Adjust accordingly.
	* app_state.hh file_io.cc keys.cc transforms.hh: Adjust includes to
	account for rename.

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

	* po/sv.po: Correct a translation that was clearly cut and pasted
	but never changed.  What was I thinking?

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

	* debian/changelog: Updated from the latest Debian release.

2006-05-20  Graydon Hoare    <graydon@pobox.com>

	* figures/monotone-logo.svg: Add.

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

	* automate.cc: add basic_io symbols
	(hook_get_revision_cert_trust, automate_certs): push symbols
	(automate_keys): push symbols and hexenc's
	* basic_io.{cc,hh}
	(is_xdigit, is_alpha, is_alnum, is_space): move to vocab.hh
	(push_hex_pair, push_hex_triple, push_str_pair, push_file_pair,
	push_str_multi, push_str_triple, print_stanza): use symbol and
	hexenc<id> in place of strings to avoid repeated/redundant
	validations which account for 4% of the client profile of a fresh
	pull of the monotone db
	* cset.cc (print_cset): push symbols and hexenc's
	* legacy.cc (read_dot_mt_attrs, extract_renames,
	get_manifest_and_renames_for_rev): parse symbols
	* revision.cc (print_edge, print_stanza): push symbols and hexenc's
	* roster.cc (push_marking, print_to): push symbols and hexenc's
	* vocab.cc (is_xdigit): move to vocab.hh
	(verify): new verification for symbol type
	* vocab.hh (is_xdigit, is_alpha, is_alnum, is_space): add functions
	from basic_io.hh
	* vocab_terms.hh (symbol): new ATOMIC type for basic_io symbols
	which allow only [a-zA-Z0-9_]

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

	Split lua.cc into two files: lua_hooks.cc gets the lua_hooks class
	and the one callback that needs an app_state, lua.cc gets everything
	else.
	* lua.{cc,hh}: Rename to lua_hooks.{cc,hh}. Move almost everything
	except the lua_hooks class to...
	* lua.{cc,hh}: New files.
	* Makefile.am: Adjust accordingly.
	* app_state.hh file_io.cc keys.cc transforms.hh: Adjust includes to
	account for rename.

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

	* po/sv.po: Correct a translation that was clearly cut and pasted
	but never changed.  What was I thinking?

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

	* debian/changelog: Updated from the latest Debian release.

2006-05-20  Graydon Hoare    <graydon@pobox.com>

	* figures/monotone-logo.svg: Add.

2006-05-19  Richard Levitte  <richard@levitte.org>

	* ui.cc (tick_write_count::write_ticks): Simplify the condition
	to check if the count width needs to be changed.

2006-05-19  Richard Levitte  <richard@levitte.org>

	* ui.hh (struct ticker), ui.cc (tick_write_count::ticker,
	ticker::write_ticks): Keep track of the last total we were given
	and recalculate the counter width each time we detect a change in
	total.  The reason is that the counter is sometimes display even
	though the real total isn't figured out yet, which gives the old
	stepwise increase of counter size instead of doing it in one go
	when we have the real total.

2006-05-19  Richard Levitte  <richard@levitte.org>

	* tests/t_quiet.at: Test that --quiet doesn't suppress warnings.
	* tests/t_reallyquiet.at: New file.  Test that --reallyquiet
	suppresses progress meters and warnings.
	* testsuite.at: Add t_reallyquiet.at.

2006-05-19  Richard Levitte  <richard@levitte.org>

	* automate.cc (automate_certs): Change a warning disguised as a
	progress meter into a real warning.

	* po/sv.po: Retranslate two fuzzies.

2006-05-19  Timothy Brownawell  <tbrownaw@gmail.com>

	* tests/t_quiet.at: --quiet now allows warnings to still be printed

2006-05-19  Timothy Brownawell  <tbrownaw@gmail.com>

	* sanity.cc: second sanity::set_quiet should be sanity::set_reallyquiet

2006-05-19  Richard Levitte  <richard@levitte.org>

	* monotone.cc, options.hh, sanity.cc, sanity.hh: Do not suppress
	warnings when --quiet is given.  Add --reallyquiet which does
	suppress warnings as well as everything that --quiet suppresses.

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

	* po/sv.po: Forgot to unfuzzy a string.

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

	* monotone.cc (cpp_main): Smarter stripping of ".exe" extension.

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

	* testsuite.at, t_merge_lca.at: Rename to t_merge_7.at, tweak
	comments to reflect that this used to test --lca, but now is
	simply another merge test.

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

	* options.hh, app_state.cc, monotone.cc:
	* cmd_merging.cc (merge, propagate, merge_into_dir): Remove
	OPT_LCA option.

2006-05-17  Richard Levitte  <richard@levitte.org>

	* po/sv.po: Another fuzzy to re-translate.

2006-05-16  Timothy Brownawell  <tbrownaw@gmail.com>

	* automate.cc: Uncomment automate_common_ancestors.
	* tests/t_automate_common_ancestors.at, testsuite.at: Test it.
	* monotone.texi: Document it.
	* cmd_automate.cc: Add it to the command description for automate.

2006-05-17  Matt Johnston  <matt@ucc.asn.au>

	* paths.cc (internal_string_to_split_path): move from cset.hh to
	here, make it share the path splitting with fully_normalized_path().
	(has_bad_chars): use lookup table to check bad chars.
	(bad_component): don't compare string vs char* every time.
	* roster.cc, cset.hh: internal_string_to_split_path changes
	* vocab.cc (verify(hexenc<id>): .empty() rather than == ""

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

	* roster.cc (parse_from): don't use lexical_cast, avoid copying a
	marking_t.

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

	* cmd_diff_log (log, dump_diffs): limit diffs to restricted files,
	updated for new restrictions code.
	* tests/t_log_diffs.at: A test for log --diffs

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

	* database.cc (info): allow any number of rows to be returned from
	query of next_roster_node_number
	* tests/t_db_init_info.at: new test of info on a new database
	* testsuite.at: call it

2006-05-14  Graydon Hoare  <graydon@pobox.com>

	* netsync.cc: Fix invariant typo.
	* merkle_tree.hh: Remove unused equal_to struct.
	* hash_map.hh: Correct for Microsoft hash_map assumption
	that the binary functor in the traits class is an order,
	not just an equality predicate.

2006-05-14  Graydon Hoare  <graydon@pobox.com>

	* netxx_pipe.{cc,hh}: Various cleanups to build on unix.
	* netsync.cc (drop_session_associated_with_fd): New helper,
	and use it everywhere we did sessions.erase() before.

2006-05-13  Graydon Hoare  <graydon@pobox.com>

	* netsync.cc, netxx/probe.h, netxx_pipe.{cc,hh}: Adaptation of
	Christof Petig's PipeStream work, with heavy modifications; seems
	to work under win32 / visualc8 now.

	* options.hh (OPT_STDIO): New option.
	* app_state.{cc,hh} (bind_stdio): Store it.
	* monotone.cc (cpp_main): Parse it.
	* cmd_netsync.cc (serve): Accept --stdio option for 'serve'.
	* platform.hh (munge_argv_into_cmdline): Export on win32.
	* win32/process.cc (munge_argv_into_cmdline): Make non-static.
	* unit_tests.{cc,hh}: Add tests for pipes.
	* visualc/monotone.vcproj: Add netxx_pipe.{cc,hh}
	* Makefile.am: Likewise.

2006-05-13  Christof Petig <christof@petig-baender.de>

	(Originally from 2004-06-18, on a different branch)

	* netsync.cc:
	(struct session): use PipeStream, pair of sockets
	(find_wordend,parse_ssh_url): helper functions to parse an URL
	(call_server): recognize ssh: and file: URLs
	(serve_stdio): variant of serve_connections for stdio
	(run_netsync_protocol): call serve_stdio if address is -

2006-05-14  Lapo Luchini  <lapo@lapo.it>

	* po/it.po: Translated a few more strings to Italian (115 to go).

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

	* po/sv.po: A fuzzy to correct.

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

	* tests/t_automate_get_current_revision_id.at: Canonicalise output
	before comparison--fixes test on Win32.

2006-05-13  Matt Johnston  <matt@ucc.asn.au>

	* cmd_diff_log (log): don't get the roster unless we have restrictions.

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

	* netsync.cc: (process_hello_cmd) Build our merkle tries after
	replying to the server.
	(call_server, serve_connections) Use instant timeout for our streams.
	Looking at the netxx code, it appears that reads will select() using
	the stream's timeout. Regardless of whether the stream has been set
	non-blocking.
	(call_server) Move maybe_step and maybe_say_goodbye to before we arm
	the session.
	(write_netcmd_and_try_flush) Uncomment the {read,write}_some calls.

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

	* monotone.texi: Re-sync the two copyright blocks.

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

	* testsuite.at (test_hooks.lua): ignore testsuite.log files

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

	* database.cc (begin_transaction): ensure there are no pending
	writes when a transaction begins
	(rollback_transaction): clear any pending writes before rolling
	back a transaction

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

	* automate.cc (automate_get_base_revision_id,
	automate_get_current_revision_id): new functions
	(automate_command): call them
	* cmd_automate.cc (automate): fix indentation and add entries for
	new commands
	* monotone.texi: document new commands
	* tests/t_automate_get_base_revision_id.at:
	* tests/t_automate_get_current_revision_id.at: new tests
	* testsuite.at: call them

2006-05-12  Timothy Brownawell  <tbrownaw@gmail.com>

	* lua.hh: Remove unused, unimplemented template lua_hooks::call_hook.

2006-05-12  Matt Johnston  <matt@ucc.asn.au>

	* netsync.cc (process_hello_cmd): ask for passphrase before
	doing merkle tree things.

2006-05-12  Matt Johnston  <matt@ucc.asn.au>

	* merkle_tree.cc (bitset_to_prefix): use strings directly
	rather than ostringstream for getting bitset blocks, ~10%
	cpu time improvement for empty pull.

2006-05-12  Graydon Hoare  <graydon@pobox.com>

	* xdelta.cc (apply_delta): Tolerate 0-length instructions.

2006-05-11  Patrick Mauritz  <oxygene@studentenbude.ath.cx>

	* roster.cc: include proper header for srand, rand and prefix
	srand, rand, search with std:: for sunpro

2006-05-11  Graydon Hoare  <graydon@pobox.com>

	* xdelta.cc (read_num): New function.
	(apply_delta): Rewrite to avoid string streams.

2006-05-10  Roberta Lazzeri  <ripley@lapo.it>

	* po/it.po: Translated a few more strings to Italian (140 to go).

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

	* xdelta.cc (copied_extent::operator<): Fix ordering bug which
	caused an unfortunate degradation in inverse delta quality,
	particularly on ChangeLogs.

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

	* packet.cc (consume_file_delta): remove redundant file delta
	verification

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

	* automate.cc (automate_inventory): remove invalid assertion
	* cmd_diff_log.cc (log): check for null revision id rather than
	missing revision id
	* commands.cc: remove unnecessary #include
	(help): fix indentation
	* netsync.cc: remove stale comment

2006-05-08  Roberta Lazzeri  <ripley@lapo.it>

	* po/it.po: Changed translation of 'directory' to 'directory'.

2006-05-07  Roberta Lazzeri  <ripley@lapo.it>

	* po/it.po: Translated a few more strings to Italian (148 to go).

2006-05-07  Graydon Hoare  <graydon@pobox.com>

	* database.{cc,hh} (pending_writes): New fulltext write buffer,
	gives about 20% performance gain on initial pull.
	(database::have_pending_write): Helper function.
	(database::load_pending_write): Likewise.
	(database::cancel_pending_write): Likewise.
	(database::schedule_write): Likewise.
	(database::exists): Modify to use buffer.
	(database::put_version): Likewise.
	(database::put_file): Likewise.
	(database::put_roster): Likewise.

2006-05-06  Lapo Luchini  <lapo@lapo.it>

	* po/it.po: Translated a few more strings to Italian (162 to go).

2006-05-06  Richard Levitte  <richard@levitte.org>

	* po/sv.po: New string to translate.

2006-05-06  Richard Levitte  <richard@levitte.org>

	* INSTALL: Warn people not to run "make check" as root, since it
	will cause failure of the tests.  I jave no idea if there's any
	such possiblity on Windows, someone else will have to fill that
	in.

2006-05-06  Timothy Brownawell  <tbrownaw@gmail.com>

	* database_check.cc (check_db_integrity_check): Replace F with FL.

2006-05-06  Nathaniel Smith  <njs@pobox.com>

	Patch contributed by 'zecke'.
	* database.cc (check_integrity):
	* database_check.cc (check_db_integrity_check): Add a call to
	PRAGMA integrity_check to 'db check'.

2006-05-05  Richard Levitte  <richard@levitte.org>

	* po/sv.po: Retranslate a few changed strings.

2006-05-05  Nathaniel Smith  <njs@pobox.com>

	* database.cc (info): Include count of total nodes allocated in
	this db in 'db info' output.

2006-05-04  Nathaniel Smith  <njs@pobox.com>

	* ChangeLog: fix whitespace.

2006-05-04  Nathaniel Smith  <njs@pobox.com>

	* cmd_files.cc (annotate): Check whether file exists.
	* tests/t_annotate.at: Test this check.

2006-05-04  Matt Johnston  <matt@ucc.asn.au>

	* work.cc (editable_working_tree::apply_delta): filename argument
	was missing for E() format string.

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

	* po/sv.po: A few new strings to translate.

2006-05-02  Matthew Nicholson  <matt@matt-land.com>

	* monotone.texi (Composite selectors): Added note about escaping in
	selectors.

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

	* commands.cc (commands::complete_command): Make sure to catch the
	case of a unknown command, and treat it as a naughty.

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

	* cmd_merging.cc (update): Hopefully clarify messages in the
	different cases where target branch differs from current branch.
	* tests/t_update_off_branch.at: Test all paths.
	* ui.cc (warn): Use prefix_lines_with and mark "warning:" for
	translation.

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

	* win32/terminal.cc (have_smart_terminal): Simplify smart terminal
	detection, since it doesn't really work anyway.  We'll now default
	to smart almost everywhere (except inside environments with
	TERM=dumb or TERM=emacs).  Users can override this with
	--ticker=(dot|none) if need be.

	* win32/fs.cc (get_current_working_dir): Strip trailing backslash
	from path, if present.  Fixes bug #16442.

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

	* automate.cc: "automate common_ancestors" was committed accidentally.
	Comment it out until tests/documentation are ready.

2006-04-30  Graydon Hoare  <graydon@pobox.com>

	* xdelta.{cc,hh} (invert_xdelta): New function.
	* database.{cc,hh} (database::get_arbitrary_file_delta): Add.
	(database::put_file_version): Use invert_xdelta.
	* netsync.cc (session::note_file_delta):
	Use get_arbitrary_file_delta.

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

	* po/sv.po: Updated a fuzzy.

2006-04-29  Matt Johnston  <matt@ucc.asn.au>

	* vocab.hh: removing superfluous string("") constructor shrinks mtn
	binary by >100kB (from Benoît Dejean)

2006-04-28  Matthew Nicholson  <matt@matt-land.com>

	* tests/t_escaped_selectors.at: Added.  Tests escaped selectors.
	* testsuite.at: Added t_escaped_selectors.at.

2006-04-28  Alex Queiroz  <alex@ventonegro.org>

	* po/pt_BR.po: Translated more strings.

2006-04-28  Graydon Hoare  <graydon@pobox.com>

	* contrib/color-logs.sh: Update to 'mtn'.
	* enumerator.{cc,hh}: Expose parent map, cache certs.
	* netsync.cc: Use caches in enumerator and refiners.
	* refiner.hh (local_item_exists): New helper.

2006-04-28  Matthew Gregan  <kinetik@orcon.net.nz>

	* database.cc (query::query): Allow query to be constructed
	without an initial SQL command.
	* database.cc (database::complete): Replace use of boost::format
	with query; building the query.sql_cmd as we go.  Fixes potential
	SQL injection attacks.

2006-04-28  Alex Queiroz  <alex@ventonegro.org>

	* po/pt_BR.po: Translated even more strings.

2006-04-27  Matthew Nicholson  <matt@matt-land.com>

	* selectors.cc (parse_selector): Change boost::char_separator to
	boost::escaped_list_separator to support branch names containing '/'.

2006-04-27  Timothy Brownawell  <tbrownaw@gmail.com>

	* std_hooks.lua: Remove default validate_commit_message hook.

2006-04-27  Timothy Brownawell  <tbrownaw@gmail.com>

	* hash_map.hh: Do things a little differently. Should make
	instantiating different types of hash_map (like merkle_tree.hh does)
	easier, slightly less dependent on the compiler/library. (Currently,
	this should mostly be useful in the .visualc8 branch.)
	* basic_io.hh cmd_list.hh rcs_file.cc rcs_import.cc unix/fs.cc: These
	wouldn't compile with g++/stlport. Add includes, replace a
	const_iterator with an iterator in rcs_import.cc
	* database.cc interner.hh merkle_tree.hh vocab.cc xdelta.cc: Adjust
	to match the new hash_map.
	Compile-tested on g++ and g++ with stlport. Won't link when using
	stlport, because my boost was compiled against g++'s normal stl.

2006-04-27  Daniel Carosone  <dan@geek.com.au>
	* monotone.texi: add a missing $ to a packet example, and an
	introductory paragraph to the section. From Jeronimo Pellegrini,
	with minor wording tweaks.

2006-04-27  Alex Queiroz  <alex@ventonegro.org>

	* po/pt_BR.po: Translated more strings.

2006-04-27  Patrick Mauritz  <oxygene@studentenbude.ath.cx>

	* cmd_list.cc: missing using std::sort; broke build with stlport4

2006-04-26  Timothy Brownawell  <tbrownaw@gmail.com>

	* netsync.cc (serve_connections): Cycle through all results before
	recalculating the probe. Netxx does not make this as simple as it
	should be.

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

	* automate.cc:
	* cmd_diff_log.cc:
	* cmd_list.cc:
	* cmd_merging.cc:
	* cmd_ws_commit.cc:
	* commands.cc:
	* work.cc: use explicit temp_node_id_sources everywhere
	* tests/t_log_dir.at: remove stale comment

2006-04-25  Derek Scherger  <derek@echologic.com>

	* cmd_*.cc: merge new restrictions changes in from commands.cc
	split
	* tests/t_log_dir.at: remove stale comment
	* work.{cc,hh}(find_missing, find_unknown_and_ignored): move
	these functions here from commands.cc split

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

	* Makefile.am (package_full_revision_raw.txt): Pass --root to our
	calls to mtn.

2006-04-25  Derek Scherger  <derek@echologic.com>

	* restrictions.{cc,hh} (find_missing, find_unknown_and_ignored): move to...
	* work.{cc,hh}: ...here since these are not really restriction things
	* cmd_ws_commit.cc: sort includes and add work.hh to account for moves

2006-04-26  Timothy Brownawell  <tbrownaw@gmail.com>

	* app_state.{cc,hh}: Overload set_restriction to take a path_set as
	the list of paths to restrict to.
	* cmd_ws_commit.cc: Use this to fix revert --missing.

2006-04-25  Timothy Brownawell  <tbrownaw@gmail.com>

	* monotone.cc: --quiet forces --ticker=none
	* tests/t_quiet.at: Check that --quiet turns off tickers.
	* testsuite.at: Call it.

2006-04-25  Timothy Brownawell  <tbrownaw@gmail.com>

	* lua.cc: There is now an "extract_classified_str" to go with
	"extract_str", which doesn't log the value of the returned string.
	Use this in hook_get_passphrase.
	* tests/t_no_log_password.at: Test that the passphrase is not logged.
	* testsuite.at: Call it.

2006-04-25  Timothy Brownawell  <tbrownaw@gmail.com>

	* po/POTFILES.in: add cmd.hh and the cmd_*.cc files

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

	* examples/000README.txt, examples/display_branches.lua: Start a
	directory of small examples and other cool things you can do with
	monotone.  Contrary to the contrib directory, these files can
	seldom be taken and used as they are, they usually need to get
	integrated into some other file.
	* debian/docs, debian/changelog: Make sure the examples directory
	end up inside Debian's standard documentation directory, and
	document this change.

2006-04-25  Nathaniel Smith  <njs@pobox.com>

	* monotone.texi: Add Jeronimo to copyright holder list.
	* AUTHORS: And the contributor list.

2006-04-25  Jeronimo Pellegrini  <pellegrini@mpcnet.com.br>

	* monotone.texi (Using packets): New section, short tutorial
	showing how packets work.  (With some small fixups by Nathaniel.)

2006-04-25  Jeronimo Pellegrini  <pellegrini@mpcnet.com.br>

	* monotone.texi: Replace many references to 'monotone' with
	'mtn'.

2006-04-24  Derek Scherger  <derek@echologic.com>

	* contrib/monotone.el (monotone-commit-complete): call line
	removal function by it's actual name

2006-04-24  Derek Scherger  <derek@echologic.com>

	* cmd_diff_log.cc (log): remove --recursive option from log;
	directories are always recursive as with other restricted commands
	* tests/t_log_dir.at: account for recursive directories

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

	* commands.cc (attr): Use get_base_and_current_roster_shape
	instead of doing a pointless workspace scan.

2006-04-23  Richard Levitte  <richard@levitte.org>

	* po/sv.po: Clear a fuzzy.

2006-04-23  Richard Levitte  <richard@levitte.org> &  Alex Queiroz <alex@ventonegro.org>

	* lua.cc (monotone_includedir_for_lua): Tweak a spelling mistake.
	Notified by Jeronimo Pellegrini <pellegrini@mpcnet.com.br>.

2006-04-23 Alex Queiroz <alex@ventonegro.org>

	* pt_BR.po: Fixed some fuzzy translations.

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

	* contrib/usher.cc (fork_server): Make sure to append to already
	existing log file.

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

	* contrib/usher.cc (fork_server): Redirect the logs of the sub-
	servers to log files instead of a pipe, and have the main
	process read that file instead of the pipe.
	(read_server_record): Complain about unrecognised commands, and
	continue processing.
	(reload_conffile): Parse the logdir command.  Complain about
	unrecognised commands, and continue processing.

2006-04-21 Alex Queiroz <alex@ventonegro.org>

	* Make clear in the "automate get_revision" documentation that
	path stanzas are grouped under the corresponding "old_revision" one.

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

	* contrib/usher.cc (server::set_hosts, server::set_patterns):
	Explain a little more what is removed from what.

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

	* contrib/usher.cc (server::set_hosts, server::set_patterns):
	Write a warning saying that existing entries with the same host
	or pattern are stripped of said host or pattern.
	(server::set_patterns): Erasing the list node that we're iterating
	on, then trying to go to the next node doesn't work.  Save the
	iterator, then increment it before erasing the node using the
	saved value.  No more segfaults.  This is the same fix as was done
	for server::set_hosts February 21st.

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

	* po/sv.po: A fuzzy updated

2006-04-20  Timtohy Brownawell  <tbrownaw@gmail.com>

	* commands.{cc,hh} cmd.hh cmd_*.cc Makefile.am: Split commands.cc into
	lots of smaller files. Current grouping is semi-arbitrary by other
	code called and general "what it does" concept.

2006-04-20  Timtohy Brownawell  <tbrownaw@gmail.com>

	* tests/t_hook_helpers.at: New file: test some of the helper functions
	for the lua hooks.
	* testsuite.at: Add it.

2006-04-20  Timtohy Brownawell  <tbrownaw@gmail.com>

	* commands.cc (commit): E() if the old end of a delta is missing.

2006-04-20  Timtohy Brownawell  <tbrownaw@gmail.com>

	* tests/t_ls_changed.at: Also check that it detects added files/dirs.

2006-04-20  Timtohy Brownawell  <tbrownaw@gmail.com>

	* tests/t_ls_epochs.at: New file: test "ls epochs" and
	"ls epochs <branch>"
	* testsuite.at: Add it.

2006-04-20  Timtohy Brownawell  <tbrownaw@gmail.com>

	* tests/t_checkout_heads.at: New file: checkout should fail if there
	are multiple heads.
	* testsuite.at: Add it.

2006-04-20  Timtohy Brownawell  <tbrownaw@gmail.com>

	* testsuite.at: NOT_ON_WIN32 seems to be broken. Fix it.

2006-04-19  Timtohy Brownawell  <tbrownaw@gmail.com>

	* commands.cc (log): Make log accept --recursive, which makes
	"log dir" log revisions where anything under dir/ changes.
	* tests/t_log_dir.at: Remove XFAIL. Test logging at attr change.
	* tests/t_help.at: New file, test the "help" command.
	* tests/t_approve.at: New file, test the "approve" command.
	* testsuite.at: Add the new tests.

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

	* tests/t_mtn_ignore.at: Tweak test so it would have detected the
	broken .mtn-ignore error handling fixed in the last commit.

	* std_hooks.lua (ignore_file): Fix up error handling for
	non-existent .mtn-ignore files.

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

	This change was contributed by Shaun Jackman <sjackman@gmail.com>

	* debian/changelog: Add missing Debian releases.

	* debian/rules: From Debian bug report #334999: FTBFS on
	arm/hppa/m68k: please use g++-3.4

2006-04-17  Benoît Dejean  <benoit@placenet.org>

	* po/fr.po: Fixed nœud spelling.

2006-04-15  Matthew Gregan  <kinetik@orcon.net.nz>

	* tests/t_pidfile_log_permissions.at: Minor tweak to last change.

	* tests/t_empty_env.at: Remove LD_LIBRARY_PATH test; it was
	causing the test to be skipped without good reason in too many
	environments.

	* tests/t_ls_branches.at: Tweak include and exclude patterns to
	avoid spurious glob expansion under MinGW.

	* tests/t_pidfile_log_permissions.at: Skip part of the test under
	MinGW since we can't get UNIX permissions to map to the particular
	NT permissions we'd need for this portion of the test.

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

	* commands.cc (CMD(setup)): Make this a CMD_NO_WORKSPACE.  The
	reason is a use-case, when someone setup a new project as a
	subdirectory of another project, and forgot to give the database
	and branch for this new project, and thereby ended up having it
	be in the same database and branch as the parent directory.
	* tests/t_setup_workspace_in_workspace.at (setup in subdirectory),
	testsuit.at: Add a test for it.

2006-04-14  Lapo Luchini  <lapo@lapo.it>

	* po/it.po: Corrected an error (some "help command" were translated).

2006-04-14  Julio M. Merino Vidal  <jmmv@NetBSD.org>

	* Makefile.am: Use sed instead of perl to add the stylesheet
	reference in HTML files.  Perl is not available in some systems
	by default so this avoids an extra build-time dependency.

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

	* unix/process.cc (read_umask): New function.
	(make_executable): Use it.
	* tests/t_executable_umask.at, testsuite.at: New test.
	XFAILed, because of totally mysterious failure!

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

	* monotone.cc (cpp_main): Use the entire path leaf for prog_name,
	but strip ".exe" off if present.

2006-04-12  Richard Levitte  <richard@levitte.org>

	* ui.cc (compose_count): Simplify for count/total ticks.  There's
	no need to calculate the maximum size every time, since
	write_ticks has a specific test with the exact same effect.
	(tick_write_count::write_ticks): Specialise the test for the
	count/total case, since we know the exact maximum and therefore
	don't need to make space for a ludicrously large number.

2006-04-12  Richard Levitte  <richard@levitte.org>

	* ui.hh (struct ticker): Add a member count_size to hold the size
	of the tick count output and a method set_count_size to modify it.

	* ui.cc (compose_count): New function to compose the count string
	for a ticker.  The code was moved from...
	(write_ticks): ... here.  If the tick's count_size is zero, use
	compose_count to calculate the output string for a well chosen
	large number and use its size as a default initial count size.
	This is still updated dynamically if we get a count string size
	that's still larger, but it should happen very rarely (when we get
	a size of 1024 gibibytes or more, quite precisely).

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

	* tests/t_pidfile_log_permissions.at: Spelling.

2006-04-12  Richard Levitte  <richard@levitte.org>

	* po/sv.po: A few more fuzzies to change.

2006-04-12  Richard Levitte  <richard@levitte.org>

	* contrib/usher.cc (fork_server): Set the C locale before
	executing monotone itself.  This is needed since usher is
	trying to interpret the first line of monotone output, and
	only understands the english message.

2006-04-12  Richard Levitte  <richard@levitte.org>

	* po/sv.po: "ls branches" changed to take a pattern.

2006-04-12  Matthew Nicholson  <matt@matt-land.com>

	* commands.cc (pid_file::pid_file): Move check for open pidfile until
	after we attempt to open the file :).

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

	* tests/t_pidfile_log_permissions.at: New test to check that we
	fail properly if the specified pid or log file could not be
	opened.  Thanks to Matthew Nicholson for the bug report.
	* testsuite.at: Add it.
	* ui.cc (user_interface::redirect_log_to): Check that file is open.
	* commands.cc (pid_file::pid_file): Ditto.

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

	* UPGRADE: Add a note that all certs will be re-issued, and all
	revids will change.

2006-04-12 Thomas Keller <me@thomaskeller.biz>
	* po/README: Added small HOWTO for new translations

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

	* merkle_tree.hh: make merkle_table be a hash_map instead of a map.

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

	* commands.cc (ls_branches): Allow "ls branches <pattern>".
	* tests/t_ls_branches.at: Test it.

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

	* contrib/usher.cc (main): Small error.  When -m was parsed, it
	was saved as the path to mtn instead of its value.

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

	* win32/make_io_binary.cc: Fix compile errors under MinGW.

2006-04-11  Henry Nestler  <Henry@BigFoot.de>

	* contrib/mtbrowse.sh: Binary call to mtn

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

	* netxx/resolve_getaddrinfo.cxx (resolve_hostname): monotone might
	be compiled on a computer that has AI_ADDRCONFIG and run on one
	that doesn't understand that flag.  If the error EAI_BADFLAGS is
	returned, try again without AI_ADDRCONFIG.

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

	* contrib/usher.cc: Changed all reference to "monotone" to the new
	"mtn".  Submitted by Ethan Blanton <eblanton@cs.ohiou.edu>.

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

	* paths.cc (file_path::file_path): MM() on source path.

2006-04-09  Timothy Brownawell  <tbrownaw@gmail.com>

	* platform.hh (make_io_binary): new function, turn off textmode
	"\n"->"\r\n" translation on Windows
	* {win32,unix}/make_io_binary.cc: Implementations of said function.
	* commands.cc (automate): Use said function so our output doesn't get
	mangled. (Mostly important for "automate stdio".)
	* Makefile.am: Add the new files.

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

	* restrictions.{cc,hh}: Audit use of node id sources, and make a
	number of functions take an explicit node_id_source argument.
	* roster.cc (make_roster_for_base_plus_cset): Also take an
	explicit node_id_source.
	* commands.cc, automate.cc: Update to match new calling conventions.

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

	* std_hooks.lua (accept_testresult_change): s/MT/_MTN/, thanks to
	Alex Queiroz for the catch...

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

	* NEWS: Finish paragraph that stopped in the

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

	* configure.ac, debian/changelog, win32/monotone.iss:
	* monotone.spec: Bump version number to 0.26.
	* NEWS: Insert release time.

2006-04-08  Timothy Brownawell  <tbrownaw@gmail.com>

	* commands.cc (process_netsync_args): fix crash when calling netsync
	with an --exclude but no include argument.
	* tests/t_netsync_no_include.at: netsync with --exclude but no
	include should E(), not I().
	* testsuite.at: call it

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

	* monotone.texi: Several little content improvements, scattered
	throughout.
	(Automation): Document new rev and manifest formats.  Document new
	packet commands.
	* database_check.cc: Add a comment to warn people that there are
	detailed docs on this, so if they add new stuff they'll want to
	add new docs too.
	* automate.cc (automate_get_manifest_of, automate_get_revision):
	Re-sync docs to manual.
	(automate_packet_for_fdata): Fix copy/paste error in error
	message.

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

	* netxx/resolve_gethostbyname.cxx (resolve_hostname): #ifdef out
	Win32-incompatible error reporting call.

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

	* netsync.cc, annotate.cc: Turn all ticker labels from _() to
	N_(), to match Benoît's changes to the ticker class.

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

	* AUTHORS: Add Thomas Keller.

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

	* Makefile.am (distcleancheck_listfiles): Third time's
	the... charm?

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

	* monotone.cc: Oops, needed to include
	boost/filesystem/convenience.hpp too.

	* monotone.cc (cpp_main): Exclude .exe extension by using
	fs::basename rather than path.leaf().

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

	* netxx/resolve_gethostbyname.cxx (resolve_hostname),
	* netxx/resolve_getaddrinfo.cxx (resolve_hostname): Include the
	error string associated with the error returned by getaddrinfo()
	and gethostbyname() in the exception text.

	* netsync.cc (serve_connections): When socket() fails in Netxx,
	it throws a Netxx::Exception rather than a
	Netxx::NetworkException, so we need to catch that as well.  This
	should solve the problems some have experienced when they don't
	have a IPv6 stack and try to run a IPv6-enabled monotone.

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

	* po/sv.po: A phrase was changed in command.cc...

2006-04-07  Richard Levitte  <richard@levitte.org>

	* po/sv.po: A few untranslated ones appeared.

2006-04-07  Richard Levitte  <richard@levitte.org>

	* po/sv.po: Fixed a fuzzy.

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

	* Makefile.am: Syntax tweak.  I bet this still won't work...

	* Makefile.am: Backticks don't nest, use $().

2006-04-07  Daniel Carosone  <dan@geek.com.au>

	* monotone.texi: Update more examples to reflect new program
	output for revisions and diffs and manifests.

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

	* lua.cc, commands.cc: Tiny string cleanups.

	* Makefile.am (distcleancheck_listfiles): Fix up find(1) syntax.

2006-04-07  Daniel Carosone  <dan@geek.com.au>

	* monotone.texi: Correct a copy/paste error, bug #15708

2006-04-07  Daniel Carosone  <dan@geek.com.au>

	* figures/README: Revise to describe a better .png generation method
	* figures/{manifest,file-id-manifest-id,revision-chaining,revision}.png:
	Reregenerate accordingly
	* figures/oo-figures.sxd: Source changes for the following:
	* figures/{local,general}-workflow: "working copy" to "workspace", MT to _MTN

2006-04-07  Nathaniel Smith  <njs@pobox.com>

	* Makefile.am (distcleancheck_listfiles): Another try at this...

2006-04-07  Nathaniel Smith  <njs@pobox.com>

	* Makefile.am (distcleancheck_listfiles): Attempt to teach
	distcheck that it's okay that distclean does not remove
	package_revision.txt and package_full_revision_dist.txt files.
	Untested, because the test is taking ages and I want to go to
	sleep, so good luck :-).

2006-04-07  Nathaniel Smith  <njs@pobox.com>

	* figures/README: Add note on PNGs.
	* figures/{manifest,file-id-manifest-id,revision-chaining,revision}.png:
	Regenerate PNGs.

2006-04-07  Nathaniel Smith  <njs@pobox.com>

	* figures/oo-figures.sxd: Sigh, accidentally discarded the changes
	I had to make since the fonts changed and the arrows/boxes became
	incorrect.  This redoes them, to approximately match the version
	used to generate the current pdf files.

2006-04-07  Nathaniel Smith  <njs@pobox.com>

	* figures/README: More notes.
	* figures/oo-figures.sxd: No idea what changed about this file,
	don't care.
	* figures/{manifest,file-id-manifest-id,revision-chaining,revision}:
	Finally managed to get proper pdfs out of OpenOffice.  Committing
	now before I have a chance to screw things up.

2006-04-06  Nathaniel Smith  <njs@pobox.com>

	* figures/README: New file.
	* figures/oo-figures.sxd: Write into the file the filename that
	each figure should be exported to.  I'll actually do the exports
	later...

2006-04-07  Benoît Dejean  <benoit@placenet.org>

	* ui.{cc,hh}: Use untranslated ticker name as key in ui.tickers
	to prevent buggy translations from crashing monotone.

2006-04-07  Benoît Dejean  <benoit@placenet.org>

	* po/fr.po: Fixed.

2006-04-07  Benoît Dejean  <benoit@placenet.org>

	* po/fr.po: Replaced nice unicode arrows with long strings.

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

	* monotone.cc: Remove libgen.h and basename(), replace with
	equivalent from boost::filesystem.

	* sqlite/*: Import SQLite 3.3.5.

	* tests/t_mtn_ignore.at: Shuffle the output grepping tests a bit
	to make failure cases more obvious.

2006-04-06  Nathaniel Smith  <njs@pobox.com>

	* Makefile.am (mostlyclean-local): Delete
	package_full_revision.txt, not package_full_revision_dist.txt.

2006-04-06  Nathaniel Smith  <njs@pobox.com>

	* monotone.texi: Fix up the ascii diagrams in the early sections
	to match current data formats.  Fix up sample output similarly.
	Fix even more places where we say "monotone" to refer to the
	command.
	* figures/oo-figures.sxd: Update graphical figures to match
	current data formats.

2006-04-06  Nathaniel Smith  <njs@pobox.com>

	* monotone.texi: Fix a bunch more places where we say "monotone"
	to refer to the command name.

2006-04-06  Nathaniel Smith  <njs@pobox.com>

	* monotone.texi: .mt-attrs?  Never heard of it...

2006-04-06  Nathaniel Smith  <njs@pobox.com>

	* po/LINGUAS: Add de.

2006-04-06  Nathaniel Smith  <njs@pobox.com>

	* NEWS: Go ahead and add a note about sqlite 3.3, since
	incompatibility with the 3.2 command line client has apparently
	bitten at least two of us.

2006-04-06  Nathaniel Smith  <njs@pobox.com>

	* Makefile.am (package_full_revision_*.txt): Try this again,
	hopefully now 'distcheck' will work in a clean dir on systems that
	have no mtn binary.

2006-04-06  Nathaniel Smith  <njs@pobox.com>

	* UPGRADE: Expand and hopefully clarify 0.26 upgrading notes.
	Also add a paragraph at the top to explain how the file is
	organized (maybe this should have been there a long time ago...)

2006-04-06  Nathaniel Smith  <njs@pobox.com>

	* NEWS: Complete (?) draft of 0.26 release notes.

2006-04-07  Satoru SATOH <ss@gnome.gr.jp>

	* po/ja.po: Updated Japanese translation.

2006-04-06  Richard Levitte  <richard@levitte.org>

	* ui.cc (user_interface::output_prefix): Move the invariant
	checking that prog_name isn't empty...
	(user_interface::set_prog_name): here.  The reason is that an
	invariant generates a log, and that will generate another call
	to this message, which will trigger the invariant again, which
	generates a log, which...
	In user_interface::output_prefix, still check if prog_name is
	empty, and output something harmless if it is.

2006-04-05  Nathaniel Smith  <njs@pobox.com>

	* NEWS: Start writing 0.26 release notes.

2006-04-05  Nathaniel Smith  <njs@pobox.com>

	* roster.cc (unify_roster_oneway): Discover that this code is not
	really composable with arbitrary node_id_sources; add an assertion
	to document the real interface, and a comment explaining why this
	is the case, and why it is a problem for workspace merge and db
	check.

2006-04-05  Nathaniel Smith  <njs@pobox.com>

	* database_check.cc (check_sane): Remove dead code.

2006-04-05  Richard Levitte  <richard@levitte.org>

	* monotone.cc: Make sure prog_name gets the basename of the
	program from argv[0], not the whole absolute path to it.

	* tests/t_commit_validate.at, tests/t_log_to_file.at: The monotone
	logs are prefixed with the program name ('mtn'), not with
	'monotone' any longer.

2006-04-05  Richard Levitte  <richard@levitte.org>

	* mt_version.cc (get_version): Close the parenthesis.

	* po/sv.po: Fix a few fuzzy strings and translate a new one.

2006-04-05  Nathaniel Smith  <njs@pobox.com>

	* sanity.cc (dump_buffer): Make the "discarding debug log"
	slightly more informative.

2006-04-05  Nathaniel Smith  <njs@pobox.com>

	* ui.{cc,hh}: Use the prog_name in output.
	* app_state.cc (app_state::prog_name): Change default to 'mtn'.
	Set the global ui object's prog_name whenever our prog_name is
	set.
	* monotone.cc (cpp_main): Use the new prog_name setter.

2006-04-05  Nathaniel Smith  <njs@pobox.com>

	* monotone.cc (cpp_main): MM() our command line, LC_ALL, and full
	version, so that they are always included in dump and debug
	files.

2006-04-04  Nathaniel Smith  <njs@pobox.com>

	* mt_version.{cc,hh} (get_version, get_full_version): New
	functions.  Also tweak --full-version output for readability.

2006-04-04  Nathaniel Smith  <njs@pobox.com>

	* mt_version.cc (print_full_version): Include compiler
	vendor/version, c++ stdlib vendor/version, and boost version in
	--full-version output.

2006-04-04  Nathaniel Smith  <njs@pobox.com>

	* Makefile.am: Yet another try at the package full revision stuff;
	hopefully this version still works just as well as the old
	versions, while also getting rid of the repeated "Generated from
	cached data" messages.

2006-04-05  Lapo Luchini  <lapo@lapo.it>

	* po/it.po: Changed "in/out" translations as graphical arrows.

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

	* tests/t_rosterify_empty_manifest.at: a test for rosterifying a db
	that has empty manifests

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

	* revision.cc (construct_revisions_from_ancestry): all rosters must be
	given a root node, even if all files have been dropped.

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

	* database.cc (database::dump): don't check schema of the db.

2006-04-04  Nathaniel Smith  <njs@pobox.com>

	* roster.hh (class roster_t): Add massive comment about roster_t's
	location tracking stuff.  Conclusion: it is a little icky, but
	it's icky in an overly conservative way that doesn't cause any
	forseeable problems, so we'll leave it for now.

2006-04-04  Richard Levitte  <richard@levitte.org>

	* po/sv.po: Updated and additional translations.

2006-04-02  Matthew Nicholson  <matt@matt-land.com>

	* contrib/get_passphrase_from_file.lua: Added.  This hook reads
	passphrases from 'confdir/passphrases'.

2006-04-02  Matthew Nicholson  <matt@matt-land.com>

	* contrib/ChangeLog.sh: Updated to reflect monotone name changes.

2006-04-02  Matthew Nicholson  <matt@matt-land.com>

	* tests/t_pidfile.at: Added.  Test's pid file cleanup.
	* testsuite.at: Added new t_pidfile.at test.

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

	* ui.cc (user_interface::redirect_log_to): Someone correctly
	pointed out that the log gets clobbered.  Now corrected.

2006-04-01  Lapo Luchini  <lapo@lapo.it>

	* po/it.po: Translated a few more strings to Italian (170 to go).

2006-04-01  Benoît Dejean  <benoit@placenet.org>

	* commands.cc (CMD(attr)): 2 more strings for I18N.

2006-04-01  Benoît Dejean  <benoit@placenet.org>

	* xdelta.cc (apply_copy): Fixed warning.

2006-04-01  Lapo Luchini  <lapo@lapo.it>

	* po/it.po: Translated a few more strings to Italian (205 to go).

2006-04-01  Petr Ovtchenkov  <ptr at island.corbina.net>

	* xdelta.cc: avoid dereference of iterators at end()

2006-03-31  Nathaniel Smith  <njs@pobox.com>

	* work.cc (apply_delta): Don't print file hashes when updating.

2006-03-31  Nathaniel Smith  <njs@pobox.com>

	* commands.cc (update): Print branch name when updating.

2006-04-01  Henry Nestler  <Henry@BigFoot.de>

	* contrib/mtbrowse.sh: Bookkeeping directory _MTN

2006-03-31  Lapo Luchini  <lapo@lapo.it>

	* po/it.po: Translated a few more strings to Italian (243 to go).

2006-03-30  Nathaniel Smith  <njs@pobox.com>

	* testsuite.at: Ah-hah, missed AT_TESTED.  Should fix the
	"monotone not found" errors people have reported.

2006-03-30  Henry Nestler  <Henry@BigFoot.de>

	* mnt.1: '--bind' for serve on host, syntax from monotone.texi

2006-03-29  Nathaniel Smith  <njs@pobox.com>

	* testsuite.at: Clean up the macros that call monotone a little.

2006-03-29  Nathaniel Smith  <njs@pobox.com>

	* .mt-ignore: Rename to .mtn-ignore.

2006-03-29  Nathaniel Smith  <njs@pobox.com>

	* NEWS: Set date.

2006-03-29  Nathaniel Smith  <njs@pobox.com>

	* Makefile.am (package_revision.txt): Whoops, missed a few spots,
	thanks to Marcel for the tip...

2006-03-29  Nathaniel Smith  <njs@pobox.com>

	* INSTALL: mtn-related tweaks.
	* monotone.spec, win32/monotone.iss: Untested mtn-related tweaks,
	and bump version to 0.26pre3.
	* debian/changelog: Bump version.

2006-03-29  Nathaniel Smith  <njs@pobox.com>

	* NEWS: First pass at entry for 0.26pre3.

2006-03-28  Nathaniel Smith  <njs@pobox.com>

	* revision.cc (construct_revisions_from_ancestry): Convert
	.mt-ignore to .mtn-ignore.  We have always been at war with
	Oceania.
	* tests/t_rosterify_mt_ignore.at, testsuite.at: Test it.

2006-03-28  Nathaniel Smith  <njs@pobox.com>

	* std_hooks.lua (ignore_file): Read .mtn-ignore, not .mt-ignore.
	* tests/t_mt_ignore.at, tests/t_add.at, testsuite.at: Adjust
	accordingly.
	* monotone.texi: Update accordingly.

2006-03-28  Nathaniel Smith  <njs@pobox.com>

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

2006-03-28  Matthew Nicholson  <matt@matt-land.com>

	* contrib/monotone.bash_completion: Convert to use mtn instead of
	monotone.

2006-03-28  Lapo Luchini  <lapo@lapo.it>

	* AUTHORS: Added myself as translator.

	* po/it.po: Added Itailan translation.

2006-03-28  Richard Levitte  <richard@levitte.org>

	* contrib/monotone.bash_completion: Make if complete mtn as well.

	* po/fr.po: Translation update.

	* po/sv.po: Translation update.

	* contrib/monotone-import.pl, contrib/monotone-import.pl: Change
	MT to _MTN.

2006-03-28  Nathaniel Smith  <njs@pobox.com>

	* tests/t_at_sign.at: Add a missing MTN_SETUP.

2006-03-28  Nathaniel Smith  <njs@pobox.com>

	* tests/README, testsuite.at, tests/*.at: First pass at updating
	tests for s/monotone/mtn/.  NB: new tests should use MTN_SETUP and
	MTN macros.

2006-03-28  Nathaniel Smith  <njs@pobox.com>

	* Makefile.am: Build "mtn", not "monotone".
	* monotone.1: Rename to...
	* mtn.1: ...this.

2006-03-28  Nathaniel Smith  <njs@pobox.com>

	* tests/*_MT*: Rename to reflect that they now test _MTN, not MT.
	* testsuite.at: Update accordingly.

2006-03-28  Nathaniel Smith  <njs@pobox.com>

	* tests/*.at: s/MT/_MTN/.

2006-03-28  Nathaniel Smith  <njs@pobox.com>

	* testsuite.at: s/MT/_MTN/.

2006-03-28  Nathaniel Smith  <njs@pobox.com>

	* monotone.texi: s/.db/.mtn/ everywhere.  Also, s/MT:/MTN:/, and
	s/MT/_MTN/ as appropriate.
	* monotone.1: Likewise.

2006-03-28  Nathaniel Smith  <njs@pobox.com>

	* paths.cc (file_path): Use in_bookkeeping_dir when joining paths,
	instead of being clever.  It should be just about as fast, and
	means that there's only one code path that has to know how to
	detect bookkeeping dirs.
	* app_state.cc, automate.cc: Oops, forgot to hit save before.
	s/MT/_MTN/.

2006-03-28  Nathaniel Smith  <njs@pobox.com>

	* paths.cc (in_bookkeeping_dir): Argh.  Really correct now!
	Really!
	(test_split_join): Another cut-and-paste error.

2006-03-28  Nathaniel Smith  <njs@pobox.com>

	* paths.cc (test_split_join): Whoops, be more careful
	copy-and-pasting within a single scope...
	(in_bookkeeping_dir): Was totally wrong, make all the constants
	correct...

2006-03-28  Nathaniel Smith  <njs@pobox.com>

	* commands.cc (CMD_NO_MT): Rename to...
	(CMD_NO_WORKSPACE): ...this.
	* *.cc, *.hh: s/MT/_MTN/ (mostly in comments).

2006-03-28  Nathaniel Smith  <njs@pobox.com>

	* commands.cc (get_log_message_interactively):
	* std_hooks.lua (edit_comment): s/MT:/MTN:/

2006-03-28  Nathaniel Smith  <njs@pobox.com>

	* paths.cc: s/MT/_MTN/ everywhere.
	(in_bookkeeping_dir): Also apply the security kluge from 0.25.2,
	where we define the bookkeeping dir case-insensitively.
	Add tests for this.

2006-03-27  Nathaniel Smith  <njs@pobox.com>

	* database.cc (check_format): Use .empty() instead of comparing
	.size() to zero, trivial style cleanup.
	(check_is_not_rosterified): New method.
	* revision.cc (build_changesets_from_manifest_ancestry)
	(build_roster_style_revs_from_manifest_style_revs): Call it.
	* tests/t_rosterify_on_rosterified_db.at, testsuite.at: New test.

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

	* idna/nfkc.c, popt/popt.c, popt/popt.h, popt/popthelp.c: Warning
	cleanups.

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

	* diff_patch.cc, hash_map.hh, lua/lua.h, mkstemp.cc, monotone.cc,
	platform.hh, rcs_file.cc, sanity.hh, ui.cc, vocab.hh: config.h
	cleanups--ensure it is included before any other includes, and
	that we use "", rather than <>.

	* idna/version.c: Use STRINGPREP_VERSION rather than VERSION,
	which just happens to be defined to the monotone version number.

2006-03-24  Richard Levitte  <richard@levitte.org>

	* po/sv.po: Corrected all the fuzzy translations
	* po/fr.po: Added some missing translations.

2006-03-24  Matthew Gregan  <kinetik@orcon.net.nz>

	* database.cc (database::load): Analyze database after load.
	(database::execute): Minor whitespace cleanup.

2006-03-23  Richard Levitte  <richard@levitte.org>

	* tests/t_update_off_branch.at: Instead of retrying the update
	by specifying the branch of the off-branch revision, check that
	the branch specified in MT/options has changed automagically to
	the intended revision's branch.

2006-03-22  Matthew Gregan  <kinetik@orcon.net.nz>

	* database.{cc,hh}: Report page size and default cache size in 'db
	info' output.

2006-03-22  Nathaniel Smith  <njs@pobox.com>

	* key_store.cc (consume_key_pair, read_key_dir)
	(ensure_in_database, write_key): Add some logging.

2006-03-22  Matt Johnston  <matt@ucc.asn.au>

	* commands.cc (CMD(update)): update the workspace branch
	to match a revision given with -r.

2006-03-22  Matt Johnston  <matt@ucc.asn.au>

	* schema_migration.cc, database.cc: print a more helpful
	error message when we fail in calculate_schema_id() (usually
	because of locking). Don't bother telling the user what the
	sqlite error number is (but still log it).

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

	* configure.ac: Fix Windows identification test so that it doesn't
	pass unexpected under Cygwin.  Reported by Lapo Luchini.

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

	* configure.ac: use test -f rather than test -e, since Solaris's
	/bin/sh doesn't have the latter.

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

	* Makefile.am: Tidier versions of html and monotone.html targets,
	thanks to Thomas Moschny for the patch.

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

	* automate.cc (automate_inventory): Add an MM().

	* Makefile.am: Copy figures/ into two places for html target, and
	don't attempt to copy std_hooks.lua over itself if we're building
	in the src dir.

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

	* Makefile.am (html): For the html target, figures/ and
	std_hooks.lua should always be copied.  Making it conditional
	should only be done for the monotone.html target.

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

	* Makefile.am (monotone.html, html): Only copy figures/ and
	std_hooks.lua if the builder is in a separate build directory.

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

	* tests/t_netsync_notes.at: Enhance the test by checking that a
	netsync where no data is written to the database won't trigger
	the note_netsync* hooks.

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

	* Makefile.am: Fix a couple of cases where documentation was
	failing to build.  If you're building outside of the source dir we
	need to copy figures/ and std_hooks.lua into the build dir.

	* win32/monotone.iss: Include zlib1.dll in installer package.

	* tests/t_empty_env.at: Copy zlib1.dll into the current directory
	like we have to for libiconv-2.dll.  While here, add a check for
	LD_LIBRARY_PATH and cause the test to be skipped if it is set.

	* tests/t_netsync_notes.at: Canonicalise output in a few places so
	that the test passes on CRLF platforms.

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

	* netsync.cc (session): Only call the note_netsync hooks if
	something has been written to the database.  The reason is that
	if those hooks are called from a server process and those hooks
	are used to update another database (say, for viewmtn), it means
	another run will be done with monotone to pull from the server,
	which would trigger another call to the hooks, which would cause
	another pull, which would cause those hooks to be called again,
	...

2006-03-17  Richard Levitte  <richard@levitte.org>

	* tests/t_netsync_notes.at: New test to check that the
	note_netsync hooks work as they should.
	* testsuite.at: Add the above test as well as the following
	useful macros.
	(BASE_MANIFEST): Gives the manifest identity of the base
	revision.
	(WORKING_MANIFEST): Gives the manifest identity of the workspace.
	(CERTVALUE): Picks out the value of a specific cert from a given
	revision.
	(DATA): Like AT_DATA, but allows environment variables to be
	expanded in the resulting file.
	(NETSYNC_SETUP_WITH_NOTES): A variant of NETSYNC_SETUP that adds
	note_netsync hooks.

2006-03-17  Richard Levitte  <richard@levitte.org>

	* lua.cc, lua.hh (lua::hookshook_note_netsync_revision_received,
	lua::hookshook_note_netsync_cert_received,
	lua::hookshook_note_netsync_pubkey_received): Change them so nonce
	comes last.  It means that hooks written for the older inteface
	(the once without nonce) will work transparently.
	* monotone.texi (Hooks): Change the docs accordingly.
	* netsync.cc (session::~session): Change the calls accordingly.

2006-03-17  Richard Levitte  <richard@levitte.org>

	There are times when it is good to be able to prepare for a
	bunch of calls to note_netsync* hooks, as well as to know when
	there are not more such calls to be expected.  To that end, I've
	added note_netsync_start and note_netsync_end, and changed the
	others to take the exact same nonce as those two.  The purpose
	of the nonce is to differentiate between different runs, if they
	ever would run in parallel.

	* lua.cc, lua.hh (lua_hooks::hook_note_netsync_start,
	lua_hooks::hook_note_netsync_end): Added methods.
	(lua_hooks::hook_note_netsync_revision_received,
	lua_hooks::hook_note_netsync_pubkey_received,
	lua_hooks::hook_note_netsync_cert_received): Modified to take a
	nonce.
	* monotone.texi (Hooks): Documented.
	* netsync.cc (session::~session): Modified to call
	app.lua.hook_note_netsync_start and app.lua.hook_note_netsync_end
	as well as the others with the nonce argument.

2006-03-16  Benoît Dejean  <benoit@placenet.org>

	* commands.cc (log): Don't include <sys/time.h>, my mistake.

2006-03-16  Richard Levitte  <richard@levitte.org>

	* revision.cc (construct_revisions_from_ancestry): Linguistics:
	Close a parenthesis.
	* po/sv.po: Translation update.

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

	* diff_patch.cc (unidiff_hunk_writer::advance_to,
	cxtdiff_hunk_writer::advance_to): Because ctx is a size_t, make
	everything dealing with it a size_t as well.  Keeps the compiler
	quiet...

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

	* database.cc (db::load), schema.sql: PRAGMA page_size=8192

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

	* tests/t_serve_ignores_mt_options.at: New test to check that
	'monotone serve' really ignores the contents of an available
	MT/options.
	* testsuite.at: Use it.

2006-03-12  Timothy Brownawell  <tbrownaw@gmail.com>

	* netsync.cc (session::maybe_note_epochs_finished): only begin the
	other refinements if we're the client, as per the comment in refiner.cc

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

	* revision.cc (construct_revisions_from_ancestry): Now with 17%
	more helpfulness.

2006-03-12  Richard Levitte  <richard@levitte.org>

	Some of the monotone commands don't really need to use the data
	in MT/options.  As a matter of fact, it's even a really bad idea
	for some command, for example 'monotone serve'.  We must still
	check for the MT directory and read whatever is there, just
	don't immediately use the data from MT/options.  I've done it by
	moving the code that processes the data from MT/options in
	app_state::allow_workspace to another method, which is then used
	separately.

	* app_state.cc, app_state.hh (app_state::allow_workspace): The
	code that processes data from MT/options and uses the information
	is now moved...
	(app_state::process_options): ... here.

	* commands.cc (struct command, commands::process, CMD, CMT_NO_MT):
	Add a per-command flag that says if the particular command needs
	to bother with the workspace options or not.  CMD_NO_MT is a new
	macro to help define commands that don't.
	(CMD(serve)): Change into...
	(CMD_NO_MT(serve)): ... this.

	* monotone.cc (cpp_main): Changed the comment so it matches
	reality.

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

	* tests/t_dump_load.at: Don't canonicalise database dump output;
	there should be no need to do so.

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

	* monotone.texi (Selectors): Remove line noise.
	Also, add an example for c:.

	* roster.cc (update_restricted_roster_from_filesystem): Put back
	hint about drop --missing, revert --missing that was lost in
	transition to rosters.

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

	* configure.ac: Add a second sync_for_stdio test to work around a
	bug in OS X.

	* testsuite.at: Changes to Perl and Python UNB64_COMMAND
	invocations to work around some quoting issues broken/revealed in
	my last change.

2006-03-12  Benoît Dejean  <benoit@placenet.org>

	* commands.cc: log: retrieve changes summary and ancestors only when
	needed.

2006-03-12  Benoît Dejean  <benoit@placenet.org>

	* po/fr.po: Small fixes.

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

	* paths.cc, annotate.cc, xdelta.cc: Fix the signed vs unsigned
	warnings which have obvious solutions.

	* testsuite.at: Remove eval in UNB64_COMMAND and UNGZ_COMMAND; it
	breaks testsuite tracing.

	* tests/t_database_check.at, tests/t_rosterify_attrs.at,
	tests/t_rosterify_rename.at: Use POSIX syntax for tail.

2006-03-12  Richard Levitte  <richard@levitte.org>

	* ChangeLog: Fixup after merge lossage.

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

	* m4/prog_cxx_warnings.m4: Turn on extra warnings (-W) when using
	GCC.  Also disable 'unused variable' warnings (enabled by -W) for
	now.  This change only causes 8 new warnings (all of one
	type--signed vs unsigned) to occur.

	* netxx/peer.cxx, netxx/sockaddr.cxx, netxx/sockaddr.h: Correct
	the only six cases of type punning that occur (that GCC 4.1 can
	detect, at least) in C++ code we compile.  It is probably safe to
	remove -fno-strict-aliasing from CXXFLAGS now.

2006-03-11  Benoît Dejean  <benoit@placenet.org>

	* po/fr.po: Fixed encoding.

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

	* po/fr.po: Small details to change.

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

	* ROADMAP: Remove items that have been done and correct a typo.

	* COPYING: Update FSF address.

	* po/fr.po: Fix up broken msgstrs that were causing msgmerge to
	choke.

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

	* po/fr.po: Finished almost all untranslated things.  I'm a
	bit tired...

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

	* po/fr.po: More translations done.

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

	* po/fr.po: More translations done.  Started using freedict
	services.

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

	* po/fr.po: More translations done.  Some new standard
	translations added.

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

	* po/fr.po: More translations done.  Note that I changed the
	translation "cert" -> "cert" to "cert" -> "certif" because I
	found a previous translation of the latter kind and liked it
	better.

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

	* po/fr.po: Translating more untranslated strings.

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

	* po/sv.po: Traduce 2 new strings.

2006-03-08  Matt Johnston  <matt@ucc.asn.au>

	* monotone.texi: mention merge_into_dir in the pivot_root description.

2006-03-08  Derek Scherger  <derek@echologic.com>

	* work.{cc,hh} (get_current_restricted_roster,
	get_base_and_current_restricted_roster): comment out
	suspicious/unused functions

2006-03-08  Derek Scherger  <derek@echologic.com>

	* tests/t_revert_file_blocked_by_dir.at: new XFAIL test for revert
	* testsuite.at: call it

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

	* tests/t_sink_has_extra_epochs.at: Er, and also check for branch
	names rather than revisions in the output of 'ls branches'.

	* tests/t_sink_has_extra_epochs.at: Fix up subtle syntax error.

	* lru_cache.h: Rename some enums to avoid namespace collisions on
	Win32.

2006-03-08  Joel Rosdahl  <joel@rosdahl.net>

	* po/sv.po: Minor updates.

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

	* monotone.texi: Spelling fixes.

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

	* tests/t_disapprove_branch.at: I'm an idiot.

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

	* tests/t_disapprove_branch.at: Actually add.

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

	* tests/t_disapprove_branch.at, testsuite.at: Add a placeholder
	test for disapprove's broken branch handling; from code
	inspection, it is obviously broken.  I don't have time to write a
	real test right now, though, never mind fix it... but at least we
	have an XFAIL and a comment...

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

	* std_hooks.lua (ignore_file): Fixup after introduction of
	dir_matches() helper.  Visual SourceSafe stores metadata in named
	files, not named directories.

2006-03-07  Richard Levitte  <richard@levitte.org>

	* po/fr.po: Started on the untranslated strings.

2006-03-07  Richard Levitte  <richard@levitte.org>

	* po/fr.po: Done all the fuzzy translations I could.

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

	* tests/t_push_with_upstream_epochs.at: Test that we don't hang on a
	one-way transfer where the sink has extra epochs.
	* testsuite.at: call it
	* tests/t_epoch.at: When we're setting epochs by hand, also try one
	with an invalid length. It should N(), not I().

2006-03-06  Graydon Hoare  <graydon@pobox.com>

	* lru_cache.hh (LRUCache::insert): Fix memory leak.

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

	* tests/t_delete_dir.at: Check that drop on a non-empty dir
	without --recursive doesn't work.

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

	* app_state.{cc,hh}, options.hh, monotone.cc: Add a --recursive option.
	* commands.cc (drop): accept --recursive
	* work.cc (perform_deletions): obey --recursive
	* tests/t_delete_dir{,_patch}.at, tests/t_subdir_drop.at:
	use --recursive, remove XFAIL
	* tests/t_add_intermediate_MT_path.at: reenable recursive drop section

2006-03-06  Richard Levitte  <richard@levitte.org>

	* po/fr.po: More translations.

2006-03-05  Timothy Brownawell  <tbrownaw@gmail.com>

	* commands.cc (db set_epoch): N() on the epoch size, so we don't I()
	on it in database.cc .
	* netsync.cc (maybe_note_epochs_finished): If we're in source_role,
	epochs can be finished even if the refiner says we still have some
	to receive.
	* refiner.cc (begin_refinement): Add logging.

2006-03-05  Richard Levitte  <richard@levitte.org>

	* po/fr.po: Add a translation guide, partly borrowed from
	subversion, work on a translation update, partly done.
	(this is done with Benoît's blessing)

2006-03-05  Richard Levitte  <richard@levitte.org>

	* commands.cc (CMD(tag)): "revision version" seems a bit
	redundant.
	* po/sv.po: change the translation accordingly.

2006-03-05  Nathaniel Smith  <njs@pobox.com>

	* monotone.texi (Hooks): Update merge2 and merge3 hook
	documentation to reflect current reality.

2006-03-05  Graydon Hoare  <graydon@pobox.com>

	* basic_io.{cc,hh}: Change printer to use static string buf.
	* {automate,cset,revision,roster,work}.cc: Update to match.
	* xdelta.cc: Minor optimizations.

2006-03-05  Graydon Hoare  <graydon@pobox.com>

	* lru_cache.h: New file.
	* AUTHORS: Mention Patrick.
	* Makefile.am: Include file.
	* basic_io.cc: Change uses of isxdigit, isalnum.
	* botan/gzip.h: Reduce gzip to level 1.
	* constants.cc (db_roster_cache_sz): Set to 7.
	* database.cc: Use lru cache for vcache; add roster cache.
	* hmac.cc: Instantiate "SHA-160" not "SHA-1"
	(corrects lookup miss in botan's algorithm table).
	* transforms.cc ({encode,decode}_hexenc): Specialize for idlen.

2006-03-05  Matthew Gregan  <kinetik@orcon.net.nz>

	* work.cc: Remove single quotes from the new adding, dropping, and
	renaming messages to make them consistent with the existing update
	message.

2006-03-04  Derek Scherger  <derek@echologic.com>

	* tests/t_revert_move_to_renamed_dir.at: new test for bug reported
	by Thomas Keller
	* testsuite.at: call it

2006-03-05  Richard Levitte  <richard@levitte.org>

	* po/sv.po: A few changes.

2006-03-03  Nathaniel Smith  <njs@pobox.com>

	* commands.cc (checkout): Oops, missed a format string
	argument...

2006-03-03  Nathaniel Smith  <njs@pobox.com>

	* std_hooks.lua (merge3_xxdiff_cmd): Pass --exit-with-merge-status
	so as to get a meaningful exit code.

2006-03-03  Nathaniel Smith  <njs@pobox.com>

	* commands.cc (update): Make plain update with multiple heads an
	Error, not a Naughty.
	(checkout): If a branch has multiple heads, list candidates, give
	usage hint, and use Error instead of Naughty.

2006-03-31  Derek Scherger  <derek@echologic.com>

	* restrictions.cc (get_nodes, merge_states): remove;
	(add_paths, add_nodes, map_paths, map_nodes): simplify after above
	cleanup and removal of implicit includes;
	* restrictions.hh: remove stale comments

2006-03-30  Derek Scherger  <derek@echologic.com>

	* commands.cc (status, ls_changed, commit, diff, revert): call
	check_restricted_cset after make_restricted_csets
	* restrictions.cc: remove implicit parents gunk and update
	unit tests accordingly
	* roster.{cc,hh} (check_restricted_cset): new function to issue a
	nice message if required directories have been excluded
	* tests/t_log_dir.at: un-XFAIL

2006-03-03  Derek Scherger  <derek@echologic.com>

	* restrictions.cc (check_for_missing_additions): new function
	(remap_paths): make static
	(get_base_roster_and_working_cset): call check_for_missing_additions
	* tests/t_restriction_excludes_parent.at: un-XFAIL

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

	* commands.cc: remove rdata, certs, fdata and fdelta commands
	from user interface, and move them to
	* automate.cc: the automate interface as packet_for_rdata,
	packets_for_certs, packet_for_fdata, packet_for_fdelta
	* tests/t_bad_packets.at: adapt for 0.26 and for the changes above

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

	testsuite.at: fix broken include of t_restriction_excludes_parent.at

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

	* app_state.{cc,hh} (restriction_requires_parent): remove
	* restrictions.cc (restrict_cset): remove call to
	restriction_requires_parent
	* restrictions.hh: remove unused struct
	* tests/t_persistent_server_keys.at: use unrestricted commit to
	avoid parent exclusion
	* tests/t_restriction_with_exclude.at: remove bogus check
	* tests/t_restrictions.at: work around excluded parents
	* tests/t_revert_new_project.at: un-XFAIL
	* tests/t_subdirs.at: work around excluded parents
	* tests/t_restriction_excludes_parent.at: new XFAIL test for restrictions
	that exclude required parent dirs
	* testsuite.at: call it

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

	add --unknown, when new files exist in new directories, would try
	to add files multiple times.

	* commands.cc (CMD(add)): Call perform_additions() with correct
	new boolean flag val to determine whether it recurses on the paths
	we hand it.
	* work.{cc,hh} (perform_additions): Use boolean flag to indicate
	whether the paths should be treated as a set of starting points
	for recursively adding entries, or a fixed set of paths.
	* tests/t_add.at: Test that we are not getting the warning
	messages when adding new files in new directories.

2006-03-01  Benoît Dejean  <benoit@placenet.org>

	* po/fr.po: Updated French translation.

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

	* po/sv.po: One small translation change.

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

	* transforms.cc: Better use of appropriately typedefed types.
	* transforms.cc: Don't assume wchar_t is wide enough to hold a
	UCS-4 character.
	* transforms.cc, transforms.hh: Add utf8_validate function and
	some validity unit tests.
	(system_to_utf8): Check that conversion has resulted in valid
	UTF-8.
	* paths.cc (file_path::file_path): Check that path is valid UTF-8.

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

	* tests/t_mt_ignore.at: Fix test on MinGW/Win32.

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

	* commands.cc (CMD(merge)): don't say "misuse" if it's
	just already merged.

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

	* netsync.cc: Fixed string surgery.
	One more string for i18n.

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

	* po/sv.po: More translations.

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

	* netsync.cc: more logging

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

	* po/sv.po: Updated translation.

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

	* revision.cc (parse_revision): Prepare for the future by giving a
	more user-friendly error message on unknown format_version
	strings.

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

	* po/sv.po: Updated translations.

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

	* schema_migration.cc (migrate): Provide a little more feedback
	during migration, so it doesn't look like it's taking minutes and
	minutes just to "calculate necessary migration steps".

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

	Add a new command, merge_into_dir, to allow a project to include an
	unrelated project as a subdir. Also add a show_conflicts command that
	performs a dry-run merge and prints conflict counts.
	* commands.cc: new commands, merge_into_dir and show_conflicts
	* commands.cc (propagate): remove duplicated code; this now calls
	merge_into_dir with a dir of '' (the empty string).
	* monotone.texi: Document the new commands.
	* tests/t_{merge_into_dir,show_conflicts}.at: Test the new commands.
	* testsuite.at: Use the new tests.
	* merge.{cc,hh}: Factor a store_roster_merge_result function out
	of interactive_merge_and_store.

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

	* tests/t_log_dir.at: new XFAIL test of log restricted to a single
	directory
	* testsuite.at: call it

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

	* monotone.cc, app_state.{cc,hh}, ...: print argv[0] when giving
	usage of commands to run, rather than just "monotone"

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

	* std_hooks.lua (ignore_file, dir_matches): add dir_matches helper
	to avoid including ignored dirs such as '.svn', since dirs now
	actually exist.

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

	* roster_merge.cc: Update notes on tests.

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

	* work.cc (attach_node): Apparently the tests depend on update
	clobbering existing non-versioned files... and we don't have a
	good solution _anyway_, so just go back to clobbering them.

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

	* cset.cc (root_dir_test, invalid_csets_test): Don't test that
	root dir stuff fails.  Test that it works.

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

	* roster.cc (detach_node): Add missing invariant.

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

	* roster_merge.cc (roster_merge): Fix strange merge-created
	problem...

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

	* work.cc (attach_node): This code should use path_exists, not
	file_exists.

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

	* netcmd.cc: Ignore protocol version field on usher_cmd packets. It
	should now be possible to use an usher to redirect connections based
	on netsync version.
	* netcmd.hh: Remove unused netcmd::get_version() and
	unused/unimplemented netcmd::netcmd(u8 version).

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

	* commands.cc (ls_changed): I was a bit overly paranoid about the
	possibilities with C++ and defined an explicit functor for the set
	instead of relying on the automatic generation of less<file_path>.
	Derek Scherger made me realise I was a bit overzealous, and this
	change removes the explicit functor.

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

	* enumerator.hh: Another GCC 4.1 compile fix.

	* tests/t_log_selectors.at: UnXFAIL.

	* commands.cc (complete): Refactor selector completion to enable
	return of single or sets of completed revisions.
	(CMD(log)): Do something sensible with selectors that return
	multiple revisions.

	* tests/t_log_selectors.at: XFAILed test for bug #15877.

	* testsuite.at: Add it.

	* app_state.cc, app_state.hh, commands.cc, monotone.cc,
	options.hh: Revert failed UI experiment: reenable logging merges
	by default and rename --merges back to --no-merges.

	* contrib/color-logs.{conf,sh}, contrib/monotone-notify.pl,
	contrib/monotone.el, tests/t_log_nofiles_nomerges.at,
	testsuite.at: Handle --no-merges.

	* monotone.texi: Document --no-merges.

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

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

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

	* automate.cc (automate_inventory):
	* commands.cc (status, ls_known, find_unknown_and_ignored,
	find_missing, ls_changed, commit, diff, revert, log):
	* roster.cc (update_current_roster_from_filesystem): add app_state
	to restriction constructors
	* restrictions.{cc,hh}: add support for --depth option and ignored
	files in restrictions to match old functionality; clean up
	constructors a bit
	* tests/t_automate_get_manifest_of.at: add format_version stanza
	to test manifest
	* tests/t_restrictions.at: re-enable --depth tests

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

	* automate.cc (automate_get_revision, automate_get_manifest_of):
	merge fixups
	* commands.cc (ls_changed): convert to new restrictions
	(commit, update, revert):
	* restrictions.cc:
	* roster.cc: merge fixups

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

	* restrictions.{cc,hh}: attempt to simplify and remove duplication

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

	* commands.cc (status, ls_known, find_unknown_and_ignored,
	find_missing, commit, diff, revert, log): add excludes to restrictions
	* restrictions.{cc,hh}: preliminary support for excludes and unit
	tests to see if it works

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

	* app_state.{cc,hh}:
	* globis.{cc,hh}: make exclude_patterns a vector rather than a
	set so that restriction includes/excludes are of the same type

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

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

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

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

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

	* roster_merge.cc: Fixup after merge.

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

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

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

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

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

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

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

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

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

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

	* monotone.texi (OPTIONS): Document it.

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

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

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

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

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

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

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

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

	* ChangeLog: Fixup after xxdiff lossage.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

	* contrib/monotone.bash_completion: Update for 0.25.

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

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

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

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

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

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

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

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

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

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

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

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

	* testsuite.at: Add t_log_nofiles_merges.at.

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

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

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

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

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

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

	* testsuite.at: Add t_db_kill_rev_locally_2.at.

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

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

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

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

	* testsuite.at: Add t_revert_new_project.at.

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

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

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

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

	* sqlite/*: Import SQLite 3.3.4.

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

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

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

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

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

	* netsync.cc (serve_connections): Correct spelling.

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

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

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

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

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

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

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

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

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

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

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

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

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

	* NEWS: Add mention of validate_commit_message.

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

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

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

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

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

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

	* NEWS: Fix rename example.

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

	* NEWS: Update with the netsync change.

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

	* NEWS: Draft for 0.26pre2.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

	* testsuite.at: Remove duplicate line.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

	* po/sv.po: One more translation.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

	* configure.ac: Remove some dead comments.

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

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

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

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

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

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

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

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

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

	* AUTHORS: Add Richard as a translator.

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

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

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

	* po/sv.po: More translations done.

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

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

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

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

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

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

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

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

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

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

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

2006-01-14  Christof Petig <christof@petig-baender.de>

	* database.cc, database.h: binary transparent infrastructure,
	store and retrieve former base64 encoded columns as BLOBs

	* schema_migration.cc: unbase64 changed columns, change comment
	on files.data which indicates a different database format

	* schema.sql: change comment on file which indicates, that
	files.data is no longer base64 encoded

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

	* Makefile.am: pch.hh should be included

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

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

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

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

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

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

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

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

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

	* netsync.cc (process_confirm_cmd): Remove.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

	* change_set.{cc,hh}: Remove.

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

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

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

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

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

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

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

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

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

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

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

	* NEWS: Write up for 0.25.

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

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

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

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

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

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

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

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

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

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

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

	* upgrade to Botan 1.4.10

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

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

2005-12-18  Graydon Hoare  <graydon@pobox.com>

	* AUTHORS: Add Roland.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

	Addresses part of bug #12086.

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

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

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

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

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

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

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

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

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

	* NEWS: Fill in date for 0.24 release.

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

	* UPGRADE: Add note about serve changing syntax.

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

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

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

	* ChangeLog: fixup after merge.

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

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

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

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

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

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

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

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

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

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

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

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

2005-11-25  Graydon Hoare  <graydon@pobox.com>

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

2005-11-25  Graydon Hoare  <graydon@pobox.com>

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

2005-11-25  Graydon Hoare  <graydon@pobox.com>

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

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

	* botan/*: import of Botan 1.4.9

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

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

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

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

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

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

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

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

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

	* NEWS: Initial draft of 0.24 release notes.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

	* commands.cc: Merged 2 i18n strings.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

	* revision.hh: Oops, missed a bit.

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

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

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

	* revision.cc (analyze_manifest_changes): Remove.

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

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

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

	* revision.cc (check_sane_history): Remove.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

	* tests/t_automate_keys.at: Portability fixes.

2005-10-08  Benoît Dejean  <benoit@placenet.org>

	* commands.cc: One more i18n string.

2005-10-08  Matthew Gregan  <kinetik@orcon.net.nz>

	* tests/t_automate_keys.at: Don't rely on extended sed either!

2005-10-08  Nathaniel Smith  <njs@pobox.com>

	* database.{hh,cc}: Clean-up previous change -- switch to using a
	cleanup_ptr to hold sqlite3_stmt handles, for proper exception
	safety.

2005-10-08  Nathaniel Smith  <njs@pobox.com>

	* database.cc (fetch): Do not insert prepared statements into the
	statement table until they are successfully created, to avoid
	segfaults on database teardown.

2005-10-08  Matthew Gregan  <kinetik@orcon.net.nz>

	* tests/t_automate_keys.at: Use sed rather than relying on an
	extended grep being available.

2005-10-08  Nathaniel Smith  <njs@pobox.com>

	* contrib/ciabot_monotone.py (send_change_for): Handle branch-less
	revisions.

2005-10-08  Nathaniel Smith  <njs@pobox.com>

	* paths.cc: Make initial_rel_path an fs::path.  Adjust code
	correspondingly.  Add tests that calling monotone from inside MT
	should work.
	* tests/t_add_inside_MT.at, testsuite.at: New test.

2005-10-08  Matthew Gregan  <kinetik@orcon.net.nz>

	* win32/fs.cc: Don't consider USERPROFILE as a possible home
	directory; APPDATA is more appropriate.  Add a second method to
	get the APPDATA path.  Always use HOME if it's set (not just under
	Cygwin/MinGW).
	* tests/t_netsync_absorbs.at: Add missing CANONICALISE().

2005-10-07  Timothy Brownawell  <tbrownaw@gmail.com>

	* commands.cc (pubkey): don't insist on having a database
	* tests/t_key_management_without_db.at: check it

2005-10-07  Timothy Brownawell  <tbrownaw@gmail.com>

	* file_io.cc, vocab.cc, Makefile.am: fix merge
	* botan/algolist.cpp, botan/def_alg.cpp: fix merge

2005-10-07  Timothy Brownawell  <tbrownaw@gmail.com>

	* automate.cc: add "automate keys". like "ls keys", except it
	uses basic_io (since "ls keys" is now slightly irregular and not
	very well suited to machine interpretation).
	* monotone.texi: document it
	* tests/t_automate_keys.at: test for it
	* testsuite.at: add test
	* basic_io.{cc,hh} (stanza): add push_str_multi, for entries
	that can take a variable number of string arguments.
	* commands.cc: add "automate keys" to automate help
	misc minor whitespace cleanup

2005-10-06  Timothy Brownawell  <tbrownaw@gmail.com>

	* commands.cc (ls_keys): don't insist on having a db
	* tests/t_key_management_without_db.at: check ls keys
	* monotone.texi: update for new key storage
		* concepts :: storage and workflow
		* tutorial :: generating keys
		* tutorial :: committing work
		* command reference :: informative
		* command reference :: key and cert
		* command reference :: packet I/O

2005-10-06  Timothy Brownawell  <tbrownaw@gmail.com>

	* commands.cc (chkeypass): doesn't use the db, so we don't need a guard
	* commands.cc (dropkey): don't insist on having a db
	* tests/t_genkey_without_db.at: rename (s/genkey/key_management) and
	add checks for chkeypass and dropkey without a db

2005-10-06  Timothy Brownawell  <tbrownaw@gmail.com>

	* database.{cc,hh}: new function, database::database_specified()
	return whether we were given a database (doesn't care about validity,
	only that we were told to use one)
	* commands.cc (genkey): don't insist on having a db, but still
	check it for duplicates if we're given one.
	* tests/t_genkey_without_db.at: make sure it works
	* testsuite.at: add test

2005-09-28  Timothy Brownawell  <tbrownaw@gmail.com>

	* keys.cc (get_private_key): don't use lua hook passwords for
	chkeypass.

2005-09-28  Matt Johnston  <matt@ucc.asn.au>

	* keys.cc (get_private_keys): don't use lua hook passwords for
	chkeypass.

2005-09-28  Timothy Brownawell  <tbrownaw@gmail.com>

	* key_store.cc: fix delete_key
	* tests/t_database_check_normalized: needs 'db migrate'
	* tests/t_lua_privkey.at: update for new key location
	* tests/t_netsync_absorbs.at: use genkey instead of packets
	* tests/t_netsync_checks_server_key.at: same
	* tests/t_netsync_pubket.at: update key packet to new format

2005-09-27  Timothy Brownawell  <tbrownaw@gmail.com>

	Replace extract_keys command with a database migrator.
	* database.{cc,hh}: Remove last traces of private keys in db.
	* schema.sql: Remove private_keys table
	* commands.cc (dropkey): private keys can no longer be in the db.
	* schema_migration.cc: new migrator
	* commands.cc: remove extract_keys
	* tests/t_migrate_schema.at: update
	* keys.hh, cert.cc, key_store.cc: keys_match doesn't work well on
	privkeys. Don't use it.
	* key_store.cc: Allow duplicate insertions, if they match.

2005-09-27  Timothy Brownawell  <tbrownaw@gmail.com>

	* schema_migration.hh: migrate_depot_schema() doesn't really exist
	* database.cc, schema_migration.{cc,hh}: migrate_monotone_schema
	now takes an app_state * , so data can be moved to/from the database.

2005-09-27  Matt Johnston  <matt@ucc.asn.au>

	* botan/pkcs8.cc, keys.cc: fix monotone-specific pkcs8 key
	parsing.
	* commands.cc: ls keys shows keystore-only pubkeys as well
	* packet.cc: fix unit tests
	* testsuite.at: use keypair packet rather than privkey/pubkey
	packets.

2005-09-26  Matt Johnston  <matt@ucc.asn.au>

	* commands.cc, keys.cc, others: use standard
	"PBE-PKCS5v20(SHA-1,TripleDES/CBC)" encoding rather than
	raw arc4. extract_keys will re-encode keys, still
	need to work on packet.cc encoding.
	* botan/{des*,pkcs5*,algolist.cpp}: required files
	from Botan 1.4.6

2005-09-25  Timothy Brownawell  <tbrownaw@gmail.com>

	Move private keys outside the database.
	They're now stored as keypairs in ~/.monotone/keys
	Details:
	* keystore.{cc,hh}: handle storage of keypairs
	* tests*: Specify keystore location when running the testsuite.
		This prevents it from polluting the user's keystore.
	* database{cc,hh}: remove ability to put privkeys. They can still
		be listed, retrieved, and deleted, to support
	* commands.cc: New command, extract_keys. Copies private keys from
		the database to the keystore.
	* vocab.hh: add keypair type, like pair<pubkey, privkey>, except that
		the members are named pub and priv.
	* packet.cc: Clean up read_packets.
	* packet.{cc,hh}: privkey packets no longer exists, handle keypair
		packets instead.
	* file_io.{cc,hh}: add read_directory because tree_walker needs to
		be in the wc. add a write_data that works outside the wc.
	* Makefile.am: add keystore.{cc,hh}
	* others: update to work with new key storage

2005-10-06  Matthew Gregan  <kinetik@orcon.net.nz>

	* std_hooks.lua (merge3_emacs_cmd): Minor cleanup.
	* std_hooks.lua: Pass '--eval' rather than '-eval' to Emacs; the
	CVS emacsclient does not consider '-eval' as valid.
	* platform.hh, unix/fs.cc, win32/fs.cc (rename_clobberingly): New
	function for best-effort atomic renames.  This will probably never
	be atomic on Win32.
	* file_io.cc (write_data_impl): Append process ID to temporary
	file name so that multiple monotone processes operating on the
	same working copy are less likely to clobber each other.  Use
	rename_clobberingly().
	* ui.cc (user_interface): Allow std::cout to raise
	ios_base::failure exceptions if stream goes bad (e.g. stream
	receives EPIPE).
	* monotone.cc (cpp_main): Catch ios_base::failure exceptions and
	exit cleanly.
	* main.cc (main_with_signal_handlers): Install handler to ignore
	SIGPIPE.
	* Makefile.am: Remove platform_netsync.cc references.
	* {unix,win32}/platform_netsync.cc: Remove files.
	* platform.hh, netsync.cc (run_netsync_protocol):
	Remove {start,end}_platform_netsync() calls.

2005-10-04  Nathaniel Smith  <njs@pobox.com>

	* monotone.texi (Automation): Document the mysterious columns of
	numbers in 'automate inventory' output format.

2005-10-04  Matt Johnston  <matt@ucc.asn.au>

	* botan/, Makefile.am: update to Botan 1.4.7

2005-10-03  Nathaniel Smith  <njs@pobox.com>

	* monotone.texi (Automation): Clean up formatting and description
	of 'automate inventory' sample output.

2005-10-02  Marcel van der Boom  <marcel@hsdev.com>

	* commands.cc (CMD(checkout)): Check for non-existant checkout dir
	earlier, so we can fail earlier.

2005-09-30  Nathaniel Smith  <njs@pobox.com>

	* Makefile.am (AM_CFLAGS, AM_CXXFLAGS): Add
	-DBOOST_SP_DISABLE_THREADS (disables thread-safe shared_ptr
	reference counting).

2005-09-30  Nathaniel Smith  <njs@pobox.com>

	* debian/README.Debian, debian/TODO.Debian: Add debian files
	left out of repository.

2005-09-30  Nathaniel Smith  <njs@pobox.com>

	* NEWS: Set date for 0.23.

2005-09-30  Nathaniel Smith  <njs@pobox.com>

	* testsuite.at: Whoops, forgot to hit save.  Remove
	t_diff_changeset_bug.at.

2005-09-30  Grahame Bowland  <grahame@angrygoats.net>

	* paths.cc: remove unit tests for
	file_path_internal_from_user

2005-09-30  Patrick Mauritz  <oxygene@studentenbude.ath.cx>

	* configure.ac: only add gnu specific CFLAGS and CXXFLAGS for
	gnu compilers

2005-09-30  Nathaniel Smith  <njs@pobox.com>

	* tests/t_log_outside_working_dir.at: Fix summary line.
	* tests/t_diff_changeset_bug.at: Remove redundant test
	(cf. t_restricted_diff_unchanged.at).

2005-09-30  Nathaniel Smith  <njs@pobox.com>

	* Makefile.am (BOTAN_SOURCES): Add botan/hash_id.h.

2005-09-30  Nathaniel Smith  <njs@pobox.com>

	* NEWS: More additions (mention MM and the problems paths.cc will
	cause for colinux folks).

2005-09-30  Nathaniel Smith  <njs@pobox.com>

	* Makefile.am (MOST_SOURCES): Add hash_map.hh.
	(BOTAN_SOURCES): Add botan/charset.h.

2005-09-29  Nathaniel Smith  <njs@pobox.com>

	* NEWS: Fix typos pointed out by Matthew Gregan.

2005-09-29  Nathaniel Smith  <njs@pobox.com>

	* UPGRADE, configure.ac, monotone.spec, win32/monotone.iss:
	* debian/changelog: Bump version number.

2005-09-30  Grahame Bowland  <grahame@angrygoats.net>

	* paths.hh: update file_path documentation,
	remove file_path_internal_from_user
	* paths.cc: remove file_path_internal_from_user
	* commands.cc CMD(cat): change file_path_internal_from_user
	to file_path_external
	* tests/t_diff_outside_working_dir.at: check diff works outside
	  of a working dir (with a file specified)
	* tests/t_log_outside_working_dir.at: check log works outside
	  of a working dir (with a file specified)
	* tests/t_diff_changeset_bug.at: mysterious changeset bug
	* testsuite.at: add new tests

2005-09-29  Nathaniel Smith  <njs@pobox.com>

	* AUTHORS: Add Grahame and Marcel.
	* NEWS: Write 0.23 entry.
	* monotone.texi (Reserved Files): Mention in .mt-ignore docs that
	the patterns are regexes.

2005-09-30  Grahame Bowland  <grahame@angrygoats.net>

	* paths.cc (file_path::file_path): Allow external paths outside of
	a working directory, so long as we don't enter a working directory
	later.
	(access_tracker) add new very_uninitialized state which
	prevents subsequent initialization
	(test_access_tracker) check the very_uninitialized state works
	* paths.hh: correct mention of monotone cat file to new syntax

2005-09-29  Matthew Gregan  <kinetik@orcon.net.nz>

	* paths.cc: Restore two unit tests on Win32.

2005-09-29  Richard Levitte  <richard@levitte.org>

	* testsuite.at: Removed a spurious G...

2005-09-29  Matthew Gregan  <kinetik@orcon.net.nz>

	* paths.cc, win32/fs.cc: Fixes to allow unit tests to pass on Win32.

2005-09-29  Marcel van der Boom  <marcel@hsdev.com>

	* netsync.cc (rebuild_merkle_trees): only get matched branch
	certs, not all of them

2005-09-28  Nathaniel Smith  <njs@pobox.com>

	* tests/t_rename_diff_names.at, testsuite.at: New test.

2005-09-27  Richard Levitte  <richard@levitte.org>

	* monotone.texi (Tutorial): It seems like texi2pdf gets quite
	confused when a @chapter has a @subsection with a @section in
	between.  The resulting PDF had a Tutorial that was a indexed as a
	subsection under Concepts/Branches instead of being indexed as the
	chapter it is, and most confusingly, it's last subsection
	(Branching and Merging) ended up as a a separate chapter of it's
	own...

2005-09-27  Matt Johnston  <matt@ucc.asn.au>

	* netsync.cc (ancestry_fetcher): new approach to requesting file
	and manifest deltas and full data. Tries to be more efficient
	for the vcache of recontstructed data, and conceptually simpler

	* tests/t_netsync_unrelated.at: passes, remove XFAIL

2005-09-26  Benoît Dejean  <benoit@placenet.org>

	* database.cc: Merged 3 strings.

2005-09-26  Matt Johnston  <matt@ucc.asn.au>

	* commands.cc: add 'help' command
	* monotone.cc: add -h alias for --help

2005-09-25  Matt Johnston  <matt@ucc.asn.au>

	* netsync.cc: use lexical_cast on port numbers to avoid
	strange-looking "port 5,253"

2005-09-25  Matthew Gregan  <kinetik@orcon.net.nz>

	* sqlite/*: Update in-tree SQLite from 3.2.6 to 3.2.7.

2005-09-25  Benoît Dejean  <benoit@placenet.org>

	* netsync.cc: 3 more i18n strings.

2005-09-25  Benoît Dejean  <benoit@placenet.org>

	* cert.cc (cert_signable_text): F() vs. boost::format.
	* lua.cc (monotone_guess_binary_file_contents_for_lua),
	(monotone_include_for_lua), (monotone_includedir_for_lua):
	* rcs_import.cc (import_cvs_repo): Merged some strings.

2005-09-25  Benoît Dejean  <benoit@placenet.org>

	* lua.cc (monotone_guess_binary_file_contents_for_lua):
	Fixed signednes warning and istream usage.

2005-09-25  Matt Johnston  <matt@ucc.asn.au>

	* ui.cc: fallback to the default locale if locale("") fails.

2005-09-25  Matt Johnston  <matt@ucc.asn.au>

	* botan/arc4.cpp: increase maximum keylength to 256 bytes.

2005-09-24  Benoît Dejean  <benoit@placenet.org>

	* ChangeLog: Fixed.
	I don't understand how xxdiff works :/ Please help.

2005-09-24  Satoru SATOH <ss@gnome.gr.jp>

	* po/ja.po: Updated Japanese translation.

2005-09-23  Benoît Dejean  <benoit@placenet.org>

	* std_hooks.lua: More i18n strings.

	I don't know how to handle lua
	"multiline" ..
	"strings" because gettext doesn't join them.

2005-09-22  Benoît Dejean  <benoit@placenet.org>

	* sanity.{cc,hh}: Uninlined F() and FP().
	This happily saves ~100KB of .text on my ppc.

2005-09-22  Benoît Dejean  <benoit@placenet.org>

	* netsync.cc: Reverted changes
	from f0a632bf14468b6e03a488d6f1a64ef18b61d04c
	to   4f7f638954c79c54460d04c3be111acad8b26dd3

2005-09-22  Benoît Dejean  <benoit@placenet.org>

	* lua.cc (monotone_gettext_for_lua): New function.
	* po/POTFILES.in: Added std_hooks.lua.
	* std_hooks.lua: One more string for i18n.

2005-09-22  Benoît Dejean  <benoit@placenet.org>

	* ui.{cc,hh} (get_user_locale): Returns a const &.

2005-09-21  Timothy Brownawell  <tbrownaw@gmail.com>

	* contrib/usher.cc: better error checking

2005-09-20  Timothy Brownawell  <tbrownaw@gmail.com>

	* restrictions.cc: Make calculate_unrestricted_revision work
	with --exclude
	* tests/t_restriction_with_exclude_iprint.at: remove XFAIL

2005-09-20  Patrick Mauritz <oxygene@studentenbude.ath.cx>

	* configure.ac: solaris needs librt for fdatasync
	* sqlite/parse.c: #line and #include interactions aren't defined

2005-09-20  Matt Johnston  <matt@ucc.asn.au>

	* database.cc (space_usage): workaround the issue that in sqlite
	3.2.6, SUM({empty set}) returns NULL. (this is part of the sql spec,
	see http://www.sqlite.org/cvstrac/tktview?tn=1413 and the comment for
	SUM() in sqlite docs).

2005-09-20  Matt Johnston  <matt@ucc.asn.au>

	* ui.cc, ui.hh, sanity.hh: replace ui.user_locale with
	get_user_locale(), so that we can guarantee that it will be
	initialised when the global_sanity object (and probably other things)
	are instantiated.

2005-09-20  Matthew Gregan  <kinetik@orcon.net.nz>

	* tests/t_restriction_with_exclude_iprint.at: New test, variant of
	t_restriction_exclude.at, but with inodeprints enabled.  Mark as
	XFAILed.
	* testsuite.at: Add new test.
	* sqlite/*: Update in-tree SQLite from 3.2.2 to 3.2.6.
	* Makefile.am: Add sqlite/{analyze,vbdefifo,complete}.c to
	SQLITE_SOURCES
	* schema_migration.cc (calculate_schema_id): Explicitly exclude
	sqlite_stat1 table from schema ID calculation.  This is a new
	magic table created by the 'analyze' command in SQLite >= 3.2.3.

2005-09-18  Nathaniel Smith  <njs@pobox.com>

	* po/ja.po: New translation from Satoru SATOH <ss@gnome.gr.jp>.
	* AUTHORS: Add Satoru SATOH.

2005-09-18  Matthew Gregan  <kinetik@orcon.net.nz>

	* testsuite.at: Tweak default 'eveything' netsync glob to
	something that works around the MinGW/Win32 globbing issues for
	now.
	* tests/t_log_brief.at: Canonicalise output on Win32.

2005-09-17  Timothy Brownawell  <tbrownaw@gmail.com>

	* contrib/usher.cc: Remove stray "new int[2];' statements from
	debugging. Remove connections from list when finished.

2005-09-16  Timothy Brownawell  <tbrownaw@gmail.com>

	* Makefile.am (EXTRA_DIST): add contrib/monotone-cvs-ignore.lua,
	contrib/ciabot_monotone_hookversion.py, and contrib/usher.cc .
	also remove duplicate of contrib/monoprof.sh

2005-09-16  Timothy Brownawell  <tbrownaw@gmail.com>

	* netsync.cc: finish renaming things, so it compiles again...

2005-09-16  Timothy Brownawell  <tbrownaw@gmail.com>

	* contrib/usher.cc: A simple usher/proxy server. It asks connecting
	clients for their include pattern, and then forwards the connection
	to an appropriate (as given in a config file) monotone server. Note
	that all servers operating behind one usher need to have the same
	server key.

2005-09-16  Timothy Brownawell  <tbrownaw@gmail.com>

	* netcmd.{cc,hh}, netsync.cc: new netcmd types: usher_cmd and
	usher_reply_cmd. They are not included in the HMAC, and do not
	occur during normal communication. Purpose: running multiple servers
	from the same port. This allows a special server to ask for the
	client's include pattern, and then forward the connection to a real
	monotone server.

2005-09-16  Matt Johnston  <matt@ucc.asn.au>

	* botan/pkcs8.cpp: re-add the monotone-specific code for guessing if
	a key is DER encoded or not.

2005-09-16  Matt Johnston  <matt@ucc.asn.au>

	* botan/*: update to Botan 1.4.6
	* Makefile.am: ditto

2005-09-15  Timothy Brownawell  <tbrownaw@gmail.com>

	* app_state.{cc,hh}: restrictions now understand --exclude
	* commands.cc: commit and revert now take OPT_EXCLUDE
	* monotone.cc: update description of --exclude
	* tests/t_restriction_with_exclude.at: new test
	* testsuite.at: add it

2005-09-14  Timothy Brownawell  <tbrownaw@gmail.com>

	* contrib/ciabot_monotone_hookversion.py: CIA bot client script
	meant to be called from the note_netsync_revision_received hook.
	* lua.{cc,hh}: hook_note_commit and hook_note_netsync_revision_received
	now take the text of the revision as an argument.
	* netsync.cc, commands.cc: Give hooks new argument.
	* monotone.texi: Update documentation for those hooks.

2005-09-11  Benoît Dejean  <benoit@placenet.org>

	* database.cc
	* database_check.cc
	* netsync.cc
	* po/POTFILES.in
	* po/POTFILES.skip
	* rcs_import.cc: More i18n strings.

2005-09-07  Jim Meyering  <jim@meyering.net>

	* tests/t_rename_dir_cross_level.at: When invoking mv to rename
	a directory, do not include a trailing slash on the target -- that
	is not portable.

	* Makefile.am (TESTS_ENVIRONMENT): Ensure that PATH starts with
	the current directory, so we test the just-built monotone binary,
	not some older version.

2005-09-07  Benoît Dejean  <benoit@placenet.org>

	* std_hooks.lua: Don't spawn emacs with '-no-init-file'.

2005-09-09  Matthew Gregan  <kinetik@orcon.net.nz>

	* paths.cc (save_initial_path): Default Boost's fs::path to
	fs::native grammar.
	* tests/t_unreadable_{db,MT}.at: Disable on Win32 for now.
	* paths.cc: Consistency--use WIN32 rather than _WIN32.
	* file_io.cc (walk_tree): Correct test for file existence.

2005-09-08  Matthew Gregan  <kinetik@orcon.net.nz>

	* Makefile.am: Add '-f' argument to 'mv'; avoids build waiting on
	 user confirmation in some cases.

2005-09-08  Nathaniel Smith  <njs@pobox.com>

	* monotone.texi (Certificates): Remove mention of fcerts and
	mcerts.

2005-09-07  Benoît Dejean  <benoit@placenet.org>

	* ui.{cc,hh}: Added user_inferface::user_locale.
	* sanity.hh: Made F() and FP() locale aware.

2005-09-06  Benoît Dejean  <benoit@placenet.org>

	* monotone.cc: One more i18n string.

2005-09-06  Benoît Dejean  <benoit@placenet.org>

	* po/fr.po: Updated French translation.

2005-09-06  Benoît Dejean  <benoit@placenet.org>

	* commands.cc: No i18n for cert_revision_changelog.

2005-09-06  Matthew Gregan  <kinetik@orcon.net.nz>

	* tests/t_netsync_read_permissions.at: Tweak tests so we aren't
	trying to serve a bare '*'; works around test hangs due to glob
	expansion sillyness on MinGW.
	* tests/t_netsync_globs.at: Ditto.
	* tests/t_netsync_exclude.at: Ditto.
	* std_hooks.lua (ignore_file): Add Mac OS X (.DS_Store) and
	Windows (desktop.ini) per-directory browser configuration files.


2005-09-05  Benoît Dejean  <benoit@placenet.org>

	* commands.cc: Fixed some strings (added ' around revisions).
	Removed some whitespaces.
	No i18n in diff output.

2005-09-05  Benoît Dejean  <benoit@placenet.org>

	* sanity.{cc,hh}: boost::format vs. F(). Merged boost::format
	and moved non-template code to sanity.cc.

2005-09-05  Matthew Gregan  <kinetik@orcon.net.nz>

	* win32/terminal.cc (have_smart_terminal): We were returning false
	in almost all circumstances; changed logic so that we at least
	work when running in a cmd.exe window.

2005-09-05  Matt Johnston  <matt@ucc.asn.au>

	* commands.cc (dump_diffs): don't use the terminal width to
	print ===== seperators.

2005-09-05  Matthew Gregan  <kinetik@orcon.net.nz>

	* paths.cc (find_and_go_to_working_copy): Create root and bookdir
	paths as fs::native.
	* main.cc: Tweak #ifdef to avoid exposing some unused SEH handling
	on MinGW.
	* configure.ac: Minor cleanup to Win32 configure test.

2005-09-04  Nathaniel Smith  <njs@pobox.com>

	* monotone.cc (options): Remove default from the help string for
	--count, since none of the options listed are actually the
	default.

2005-09-04  Nathaniel Smith  <njs@pobox.com>

	* tests/t_unreadable_db.at, testsuite.at: New test.

2005-09-03  Nathaniel Smith  <njs@pobox.com>

	* po/Makevars (XGETTEXT_OPTIONS): N_ != ngettext.
	Add c-format flags on F() and FP() calls (only partially
	successful on latter, because of bug in xgettext).

2005-09-04  Grahame Bowland  <grahame@angrygoats.net>

	* commands.cc: siplify the monotone cat command
	to "monotone cat [-r] FIELNAME" (as in bug #12597)
	* monotone.texi: update documentation of "monotone cat"
	* tests/t_add_edge.at, tests/t_cat_file_by_name.at,
	tests/t_change_empty_file.at, tests/t_cvsimport.at,
	tests/t_cvsimport_deleted_invar.at, tests/t_cvsimport_drepper.at,
	tests/t_cvsimport_drepper2.at, tests/t_cvsimport_manifest_cycle.at,
	tests/t_cvsimport_samelog.at, tests/t_database_check.at,
	tests/t_db_kill_rev_locally.at, tests/t_empty_id_completion.at,
	tests/t_epoch.at, tests/t_epoch_server.at, tests/t_erename.at,
	tests/t_i18n_file.at, tests/t_import.at, tests/t_merge_add_del.at,
	tests/t_movedel.at, tests/t_movepatch.at, tests/t_netsync.at,
	tests/t_netsync_exclude.at, tests/t_netsync_exclude_default.at,
	tests/t_netsync_globs.at, tests/t_netsync_nocerts.at,
	tests/t_netsync_permissions.at, tests/t_netsync_read_permissions.at,
	tests/t_netsync_single.at, tests/t_normalized_filenames.at,
	tests/t_persistent_server_revision.at, tests/t_remerge.at,
	tests/t_rename.at, tests/t_renamed.at, tests/t_scan.at,
	tests/t_set_default.at, tests/t_singlecvs.at,
	tests/t_update_with_pending_add.at, tests/t_update_with_pending_drop.at,
	tests/t_update_with_pending_rename.at, tests/t_versions.at:
	use automation interface rather than "monotone cat"

2005-09-04  Grahame Bowland  <grahame@angrygoats.net>

	* ChangeLog: fix up screwed up three-way merge

2005-09-04  Grahame Bowland  <grahame@angrygoats.net>

	* automate.cc, commands.cc: add "automate get_file",
	"automate get_revision" and "automate get_manifest" to
	automation interface.
	* monotone.texi: document new automation commands
	* tests/t_automate_get_file.at, tests/t_automate_get_revision_at,
	tests/t_automate_get_manifest.at: trivial testing of new
	automation commands for output as specified, make sure they
	do not complete IDs, make sure invalid IDs are caught.
	* testsuite.at: add new tests

2005-09-03  Matthew Gregan  <kinetik@orcon.net.nz>

	* tests/t_persistent_server_keys_2.at: 'commit' needs a commit
	message.  Un-XFAIL.
	* tests/t_netsync_unrelated.at: Fix 'setup' syntax.
	* tests/t_add_vs_commit.at: BASE_REVISION needs to be in the root
	of a working copy to work.  Un-XFAIL.
	* tests/t_add_stomp_file.at: 'add' does not take a --branch
	argument.  BASE_REVISION needs to be in the root of a working copy
	to work.
	* annotate.cc (build_parent_lineage): Don't access uninitialized
	memory--use resize() rather than reserve().

2005-09-02  Matthew Gregan  <kinetik@orcon.net.nz>

	* monotone.cc: Use consistent case in option descriptions.

2005-09-02  Nathaniel Smith  <njs@pobox.com>

	* paths.{hh,cc}: Add split_path typedef.  Use it.

2005-09-02  Matt Johnston  <matt@ucc.asn.au>

	* lua.cc (monotone_guess_binary_file_contents_for_lua): use a
	temporary char* buffer rather than &string[], extra copying seems
	to have negligible performance impact.
	* tests/perf-test.sh: change path from tests/ to contrib/, make
	executable.
	* tests/parse-accounting.pl: make executable.

2005-09-01  Timothy Brownawell  <tbrownaw@gmail.com>

	* lua.cc, std_hooks.lua: use proper regexes for .mt-ignore
	taken from a patch from Martin Dvorak
	* contrib/monotone-cvs-ignore.lua: New file, from the same patch.
	supports .cvsignore files
	* tests/t_mt_ignore.at: check that a missing .mt-ignore
	doesn't cause problems

2005-09-01  Timothy Brownawell  <tbrownaw@gmail.com>

	* tests/t_mt_ignore.at: use RAW_MONOTONE instead of ugly --rcfile
	Also actually do "mtn add" this time.

2005-09-01  Timothy Brownawell  <tbrownaw@gmail.com>

	* tests/t_mt_ignore.at: new test, checks that .mt-ignore works
	* testsuite.at: add it

2005-09-01  Timothy Brownawell  <tbrownaw@gmail.com>

	* std_hooks.lua: support .mt-ignore
	* monotone.texi: mention .mt-ignore and MT/wanted-testresults under
	"Existing control files"
	* .mt-ignore: ignore testsuite.dir

2005-09-03  Benoît Dejean  <benoit@placenet.org>

	* commands.cc (ls_certs):
	* netsync.cc (load_data): Merged strings.

2005-09-01  Benoît Dejean  <benoit@placenet.org>

	* commands.cc: Merged one more "no such revision '%s'" string.

2005-09-01  Benoît Dejean  <benoit@placenet.org>

	* commands.cc: Merged all "no such revision '%s'" strings.
	(string_to_datetime): Merged catch blocks in order to merge error
	messages.

2005-09-01  Benoît Dejean  <benoit@placenet.org>

	* ChangeLog: Fixed.

2005-09-01  Matthew Gregan  <kinetik@orcon.net.nz>

	* ui.cc (user_interface): Avoid calling sync_with_stdio(false) on
	Win32 for now to work around a bug in MinGW where unsynchronized
	std::cin returns EOF earlier when reading a stream with DOS
	newlines.  Resolves 'db load' failure reported by Howard Spindel.
	* database.cc (load): Don't bother executing an empty string.
	* commands.cc (ALIAS(import, setup)): Remove alias.

2005-09-01  Matt Johnston  <matt@ucc.asn.au>

	* schema.sql: add BEGIN, COMMIT to make it a single transaction,
	improves db init performance significantly on OS X (avoids many
	disk-cache flushes).

2005-09-01  Matthew Gregan  <kinetik@orcon.net.nz>

	* testsuite.at: Increase entropy used to generate port numbers
	where we can and increase range of port numbers generated.
	* monotone.texi: Fix a couple of minor typos.

2005-09-01  Matthew Gregan  <kinetik@orcon.net.nz>

	* monotone.texi: Update 'setup' documentation and tutorial to
	reflect new usage.  Also update much of the monotone output in the
	tutorials to reflect the output of more modern versions of
	monotone.  Correct some minor errors and typos while here.
	* commands.cc (CMD(setup)): Require database and branch arguments.
	(ALIAS(import,setup)): Add setup alias.
	* testsuite.at, tests/*.at: Update 'setup' usage.

2005-08-31  Richard Levitte  <richard@levitte.org>

	* lua.cc, std_hooks.lua: Rename
	monotone_guess_binary_filename_for_lua and guess_binary_filename
	to monotone_guess_binary_file_contents_for_lua and
	guess_binary_file_contents.

2005-08-31  Benoît Dejean  <benoit@placenet.org>

	* basic_io.cc (basic_io::input_source::err): Merged strings.

2005-08-31  Nathaniel Smith  <njs@pobox.com>

	* file_io.cc (set_char_is_binary, guess_binary): static_cast chars
	to uint8_t before using as array indices.  Also replace some ints
	with size_t's to quiet g++ warnings.

2005-08-30  Benoît Dejean  <benoit@placenet.org>

	In function void set_char_is_binary(char, bool)
	133: warning: array subscript has type char
	In function void init_char_is_binary()
	147: warning: comparison between signed and unsigned integer expressions
	In function bool guess_binary(const std::string&)
	160: warning: comparison between signed and unsigned integer expressions
	162: warning: array subscript has type char

2005-08-30  Benoît Dejean  <benoit@placenet.org>

	* file_io.cc (walk_tree): Fixed format.

2005-08-31  Marcel van der Boom  <marcel@hsdev.com>

	* std_hooks.lua (execute_confirm): New function.
	(merge2_opendiff_cmd, merge3_opendiff_cmd): Add.

2005-08-31  Matthew Gregan  <kinetik@orcon.net.nz>

	* paths.cc (test_bookkeeping_path, test_system_path): Second
	attempt at compile fixes; this time the unit tests actually pass
	too.

2005-08-30  Matthew Gregan  <kinetik@orcon.net.nz>

	* paths.cc (test_bookkeeping_path, test_system_path): Shift object
	instantiation around a little to work around what seems to be a
	bug in the gcc 3.3 parser.
	* win32/inodeprint.cc (inodeprint_file): Update to use new path
	handling code.
	* win32/fs.cc (tilde_expand): Compile fix.

2005-08-30  Petr Baudis  <pasky@suse.cz>

	* std_hooks.lua: Simple support for merging using merge(1) and vim.

2005-08-30  Benoît Dejean  <benoit@placenet.org>

	* po/fr.po: Updated French translation.

2005-08-30  Benoît Dejean  <benoit@placenet.org>

	* commands.cc: Merged some error messages.

2005-08-30  Benoît Dejean  <benoit@placenet.org>

	* commands.cc: Merged complete(..., file_id) and
	complete(..., manifest_id) into template complete(..., ID).

2005-08-30  Benoît Dejean  <benoit@placenet.org>

	* commands.cc (ls_certs): Reworked for i18n.
	(CMD(commit)): Merged 2 strings.

2005-08-30  Matthew Gregan  <kinetik@orcon.net.nz>

	* revision.cc (ensure_parents_loaded): Don't reuse an iterator
	after we've invalidated it.  Fixes 'diff' crash reported by Howard
	Spindel.

2005-08-30  Matt Johnston  <matt@ucc.asn.au>

	* botan/allocate.cpp: avoid string comparison when looking up the
	default allocator
	* monotone.cc (cpp_main): set a default allocator

2005-08-28  Nathaniel Smith  <njs@pobox.com>

	* tests/t_attributes.at: Delete checkout dir in between
	checkouts.

2005-08-28  Matt Johnston  <matt@ucc.asn.au>

	* keys.cc (keys_match): new function to compare whether two keys
	match (ignoring whitespace as the database does, etc).
	* packet.cc, keys.cc: use it for existing-key-comparison.

2005-08-27  Nathaniel Smith  <njs@pobox.com>

	* commands.cc (checkout): Special-case "checkout ."
	* tests/t_checkout_dir.at: Test it.

2005-08-26  Nathaniel Smith  <njs@pobox.com>

	* file_io.hh: Remove comment describing old path types.
	* paths.hh: Add comment describing new path types.

2005-08-26  Nathaniel Smith  <njs@pobox.com>

	* app_state.cc (create_working_copy): Remove
	fs::filesystem_exception catching.
	* file_io.hh (mkdir_p): Remove comment noting app_state.cc's
	dependence on a boost-based implementation.

2005-08-26  Nathaniel Smith  <njs@pobox.com>

	* paths.cc: Include <string>.  Helps build on g++ 3.3?

2005-08-26  Nathaniel Smith  <njs@pobox.com>

	* commands.cc (get_log_message): Make the log message commentary a
	little more descriptive for people who may not know what a log
	message is...
	(commit): When canceling a commit due to empty log message, say
	so.

2005-08-26  Nathaniel Smith  <njs@pobox.com>

	* std_hooks.lua: Check for both "vi" and "notepad.exe" as fallback
	editors.  If no editor was found, print a helpful message instead
	of just running "vi" anyway.  Print a message if the editor exited
	with error.

2005-08-26  Nathaniel Smith  <njs@pobox.com>

	* file_io.cc (mkdir_p, make_dir_for): Increase error checking.
	* commands.cc (checkout): Make sure that checkout target directory
	does not already exist.  Also use system_path more uniformly.
	* tests/t_checkout_dir.at: Test.
	* tests/t_setup_existing_path.at: New test.

2005-08-26  Nathaniel Smith  <njs@pobox.com>

	* commands.cc (read): Optionally take files on command line.
	* tests/t_read_from_file.at, testsuite.at: New test.
	* monotone.texi (Network Service): Show Jim using this.
	(Packet I/O, Commands): Document.
	* monotone.1: Likewise.

2005-08-26  Nathaniel Smith  <njs@pobox.com>

	* change_set.cc (move_files_from_tmp_top_down): Typo again.

2005-08-26  Nathaniel Smith  <njs@pobox.com>

	* database.cc (open): Convert stray line to paths.cc.

2005-08-26  Nathaniel Smith  <njs@pobox.com>

	* change_set.cc (move_files_from_tmp_top_down): Typo.

	* file_io.cc (move_path): New function.
	(move_file, move_dir): Minor cleanup -- use
	require_path_is_nonexistent.

	* work.cc (build_deletions): Use delete_file, rather than unlink.
	If file is already non-existent, do nothing.
	(build_rename): Use move_path, rather than rename.  If file
	already appears to have been renamed, do nothing.

2005-08-26  Nathaniel Smith  <njs@pobox.com>

	* app_state.cc (allow_working_copy): Make logging more sensible.

2005-08-26  Nathaniel Smith  <njs@pobox.com>

	* transforms.cc (length):
	* database.cc (sql, load, open):
	* commands.cc (rename, attr):
	* change_set.cc (move_files_to_tmp_bottom_up)
	(move_files_from_tmp_top_down): Merge fixups.

2005-08-26  Nathaniel Smith  <njs@pobox.com>

	* database_check.cc: Track and report on manifest and revision
	parseability.
	* tests/t_database_check_normalized.at: Update to expect "not
	parseable" messages rather than "not normalized" messages.
	All tests pass.

2005-08-26  Nathaniel Smith  <njs@pobox.com>

	* tests/t_unreadable_MT.at: This test was called "do not fail on
	unreadable MT/options".  I do not know why we wanted such
	behavior.  I am making it "fail cleanly on unreadable
	MT/options".

2005-08-26  Nathaniel Smith  <njs@pobox.com>

	* paths.cc (check_fp_normalizes_to, test_file_path_internal):
	Oops, there were more places testing for non-brokenness; break
	them too.

2005-08-26  Nathaniel Smith  <njs@pobox.com>

	* paths.cc (test_split_join): Test that you cannot create a path
	in MT by joining.
	(file_path): Implement it.
	(split): Break, to match broken behavior of old splitter (easier
	than fixing change_set.cc...)
	(file_path_internal): Test for brokenness accordingly.

2005-08-26  Nathaniel Smith  <njs@pobox.com>

	* commands.cc (cat): Hack so that 'cat file REV PATH' works
	correctly both inside and outside of working copy, interpreting
	path slightly differently in each case.

2005-08-26  Nathaniel Smith  <njs@pobox.com>

	* tests/t_normalized_filenames.at: Internal unnormalized pathnames
	are no longer silently normalized, but rather a hard error.
	Adjust test accordingly.

2005-08-26  Nathaniel Smith  <njs@pobox.com>

	* paths.hh (file_path_internal_from_user): New constructor.
	* paths.cc (test_file_path_internal): Test it.
	(file_path::file_path): Implement it.
	* commands.cc (cat): Use it to create/validate passed in
	filenames.

2005-08-26  Nathaniel Smith  <njs@pobox.com>

	* paths.cc (test_system_path): Require that system_path normalize
	out ..'s.
	(system_path): Do so.

2005-08-26  Nathaniel Smith  <njs@pobox.com>

	* work.cc (build_additions): Remove redundant (and now wrong)
	code.
	Test 53 now passes.

2005-08-26  Nathaniel Smith  <njs@pobox.com>

	* file_io.cc (make_dir_for): Oops, this doesn't need a
	fs::native.
	Test 37 now passes.

2005-08-26  Nathaniel Smith  <njs@pobox.com>

	* file_io.cc (mkdir): New function.  Now with extra brain-eating
	power.
	(mkdir_p, make_dir_for, delete_file, delete_dir_recursive)
	(move_file, move_dir, write_data_impl): Use it, to make all
	fs::path's native and disable boost's random rejection of paths.

2005-08-26  Nathaniel Smith  <njs@pobox.com>

	* paths.cc (test_file_path_external_prefix_a_b)
	(test_file_path_external_no_prefix, test_file_path_internal): Test
	for validity of more strange characters (,+@*%#$=).

2005-08-26  Nathaniel Smith  <njs@pobox.com>

	* file_io.cc (ident_existing_file): Remove accidentally-left-in
	code.  Test 26 now passes.
	* lua.cc (monotone_includedir_for_lua, load_rcfile): Add
	fs::native's.

2005-08-25  Nathaniel Smith  <njs@pobox.com>

	* paths.hh (system_path::system_path): Add new boolean argument
	controlling some access_tracker behavior.
	* app_state.cc (allow_working_copy): Use it.
	* paths.cc (system_path): Implement it.
	(test_system_path): Test it.

2005-08-25  Nathaniel Smith  <njs@pobox.com>

	* file_io.cc (walk_tree): Return properly.

2005-08-25  Nathaniel Smith  <njs@pobox.com>

	* paths.cc (test_file_path_internal): Add tests for
	file_path.empty().
	* file_io.cc (walk_tree_recursive): Add explicit fs::native.

2005-08-25  Nathaniel Smith  <njs@pobox.com>

	* paths.cc: Many small changes.  Unit tests now pass.  72
	unexpected autotest failures.

2005-08-25  Nathaniel Smith  <njs@pobox.com>

	* paths.cc (file_path): Fix up error reporting in external path
	normalization.
	(test_file_path_external_no_prefix): "" is always an invalid
	path.

2005-08-25  Nathaniel Smith  <njs@pobox.com>

	* database.cc (sql): Only check schema version when db actually
	exists.

2005-08-25  Nathaniel Smith  <njs@pobox.com>

	* file_io.cc (read_data_for_command_line): We are given a
	system_path.

2005-08-25  Nathaniel Smith  <njs@pobox.com>

	* paths.cc: Fix all unit test failures, except for two mysterious
	boost::too_few_args exceptions.

2005-08-25  Nathaniel Smith  <njs@pobox.com>

	* paths.cc, unix/fs.cc: Many, many fixes and some new tests too.

2005-08-25  Nathaniel Smith  <njs@pobox.com>

	* paths.cc (struct access_tracker): Doh, initializer should set
	'initialized'...
	(test_file_path_internal): It's valid for a split file
	to have a null component if the file is "".

2005-08-25  Nathaniel Smith  <njs@pobox.com>

	* paths.cc (in_bookkeeping_dir): Last change didn't work out so
	well; let's remove some negatives and see if I can understand what
	the code does this way...

2005-08-25  Nathaniel Smith  <njs@pobox.com>

	* paths.cc (not_in_bookkeeping_dir): Handle "MT" case.
	Update tests to make sure it sticks...

2005-08-25  Nathaniel Smith  <njs@pobox.com>

	* unit_tests.{cc,hh} (init_unit_test_suite): Remove
	path_component_tests.
	* unix/fs.cc (tilde_expand): Another compile fix.

2005-08-25  Nathaniel Smith  <njs@pobox.com>

	* {unix,win32}/fs.cc: Misc. compile fixes.

2005-08-25  Nathaniel Smith  <njs@pobox.com>

	* Makefile.am (UNIX_PLATFORM_SOURCES): Add unix/fs.cc
	(WIN32_PLATFORM_SOURCES): Add win32/fs.cc
	* paths.hh (bookkeeping_path): Implement default constructor.

2005-08-25  Nathaniel Smith  <njs@pobox.com>

	* rcs_import.cc (import_cvs_repo):
	* lua.cc (default_rcfilename):
	* diff_patch.cc (get_version): Small compile fixes.

2005-08-25  Nathaniel Smith  <njs@pobox.com>

	* paths.{cc,hh} (is_bookkeeping_path): New static method.
	* file_io.cc (walk_tree_recursive): Use it.  Now compiles.
	paths.cc and file_io.cc now compile.

2005-08-25  Nathaniel Smith  <njs@pobox.com>

	* file_io.cc (delete_dir_recursive): Implement.
	Misc. compile fixes.

2005-08-25  Nathaniel Smith  <njs@pobox.com>

	* file_io.cc (test_book_keeping_file): Remove.

2005-08-25  Nathaniel Smith  <njs@pobox.com>

	* file_io.cc (walk_tree_recursive, walk_tree): Implement.

2005-08-25  Nathaniel Smith  <njs@pobox.com>

	* paths.cc (const_system_path): Do tilde expansion.

2005-08-25  Nathaniel Smith  <njs@pobox.com>

	* file_io.cc (read_localized_data, read_data_for_command_line)
	(write_localized_data, write_data, write_data_impl): Implement.

2005-08-25  Nathaniel Smith  <njs@pobox.com>

	* file_io.cc (read_data): Implement.  Remove the base64<gzip<>>
	versions.

2005-08-25  Nathaniel Smith  <njs@pobox.com>

	* file_io.cc (move_file, move_dir): Implement.

2005-08-25  Nathaniel Smith  <njs@pobox.com>

	* file_io.cc (assert_path_is_nonexistent, assert_path_is_file)
	(assert_path_is_directory, require_path_is_nonexistent)
	(require_path_is_file, require_path_is_directory)
	(ident_existing_file, mkdir_p, make_dir_for, delete_file)
	(delete_dir_recursive): Implement.

2005-08-25  Nathaniel Smith  <njs@pobox.com>

	* Audit uses of 'file_exists', because its semantics have changed;
	it now checks to see if a path exists and is a regular file,
	rather than that it simply exists.  A fair amount of code already
	thought it meant that... other places now use 'path_exists'.

2005-08-25  Nathaniel Smith  <njs@pobox.com>

	* file_io.cc (path_exists, directory_exists, file_exists):
	Implement.

2005-08-25  Nathaniel Smith  <njs@pobox.com>

	* platform.hh (get_path_status): New function.
	* unix/fs.cc (get_path_status): Implement.
	* win32/fs.cc (get_path_status): Implement inefficiently (does
	win32 have stat?)

2005-08-25  Nathaniel Smith  <njs@pobox.com>

	* file_io.cc (get_homedir, tilde_expand, book_keeping_file)
	(book_keeping_dir): Remove.

2005-08-25  Nathaniel Smith  <njs@pobox.com>

	* platform.hh (get_homedir): New function.
	* {win32,unix}/fs.cc (get_homedir): Expose.

2005-08-25  Nathaniel Smith  <njs@pobox.com>

	* Minor compile fixes.

2005-08-25  Nathaniel Smith  <njs@pobox.com>

	* platform.hh (tilde_expand): New function.
	* win32/fs.cc, unix/fs.cc: Implement it.

2005-08-25  Nathaniel Smith  <njs@pobox.com>

	* paths.cc: Many more fixes.  Now compiles with and without unit
	tests.

2005-08-25  Nathaniel Smith  <njs@pobox.com>

	* paths.cc: Lots of compile fixes for unit tests.
	Add a test for access_tracker.

2005-08-25  Nathaniel Smith  <njs@pobox.com>

	* paths.cc: Many fixes.  Now compiles.

2005-08-25  Nathaniel Smith  <njs@pobox.com>

	* paths.cc (system_path): Implement.

2005-08-24  Nathaniel Smith  <njs@pobox.com>

	* paths.cc (fully_normalized_path): Use find_first_of.

2005-08-24  Nathaniel Smith  <njs@pobox.com>

	* paths.cc (find_and_go_to_working_copy, save_initial_path)
	(go_to_working_copy): Use new checked structure.
	(operator <<): Make sure we can log our access_tracked values
	without marking them as used.

2005-08-24  Nathaniel Smith  <njs@pobox.com>

	* paths.cc (struct access_tracker): Add invariant checking on
	lifetime usage of path roots.

2005-08-24  Nathaniel Smith  <njs@pobox.com>

	* paths.hh (any_path::operator =): return *this.

2005-08-24  Nathaniel Smith  <njs@pobox.com>

	* paths.{cc,hh}: More fixes.

2005-08-24  Nathaniel Smith  <njs@pobox.com>

	* paths.{cc,hh}: Reorganize a bit.  Implement file_path and
	bookkeeping_path.

2005-08-24  Nathaniel Smith  <njs@pobox.com>

	* paths.cc (file_path): Implement basic constructor.
	Misc compile fixes.
	Add single-character names to tests.

2005-08-24  Nathaniel Smith  <njs@pobox.com>

	* paths.cc (go_to_working_copy): New function.  Implement.
	* app_state.cc (create_working_copy): Adjust accordingly.

2005-08-24  Nathaniel Smith  <njs@pobox.com>

	* paths.cc (find_and_go_to_working_copy): Implement.
	* app_state.cc (allow_working_copy): Adjust accordingly.
	(relative_directory): Remove.
	* file_io.cc (find_working_copy): Remove.

2005-08-24  Nathaniel Smith  <njs@pobox.com>

	* paths.cc (save_initial_path): Update for previous changes.

2005-08-24  Nathaniel Smith  <njs@pobox.com>

	* paths.cc (test_system_path): Add tests for the
	from-any_path constructor.  Add test for "~foo" handling.
	Start cleaning up path roots.
	* platform.hh: Note that get_current_working_dir() is
	charset-broken (i.e., operations started inside non-utf8
	directories are probably broken).

2005-08-24  Nathaniel Smith  <njs@pobox.com>

	* app_state.cc (allow_working_copy):
	* change_set.cc (print_insane_change_set): Two more small compile
	fixes.
	All remaining compile errors are localized to unimplemented
	paths.cc/file_io.cc functionality.

2005-08-24  Nathaniel Smith  <njs@pobox.com>

	* database.cc (initialize): Missing ;.

2005-08-24  Nathaniel Smith  <njs@pobox.com>

	* monotone.cc (cpp_main): Handle message_file right.

2005-08-24  Nathaniel Smith  <njs@pobox.com>

	* change_set.cc (print_insane_path_rearrangement):
	* database.cc (initialize):
	* monotone.cc (cpp_main): More small compile fixes.

2005-08-24  Nathaniel Smith  <njs@pobox.com>

	* file_io.hh
	({assert,require}_path_is_{nonexistent,file,directory}): New
	functions.
	Use them everywhere.

2005-08-24  Nathaniel Smith  <njs@pobox.com>

	* basic_io.hh: #include "paths.hh".
	* monotone.cc (add_rcfile): Remove obsolete absolutification, etc.

2005-08-24  Nathaniel Smith  <njs@pobox.com>

	* paths.hh (system_path): Add a from-any_path constructor.
	* Makefile.am (MOST_SOURCES): Remove path_component.{cc,hh}.
	* basic_io.hh (push_file_pair): New method.
	* change_set.cc (print_insane_change_set)
	(print_insane_path_rearrangement): Use it.

2005-08-24  Nathaniel Smith  <njs@pobox.com>

	* paths.hh (any_path::as_internal): On second thought, return a
	std::string, not a utf8 -- utf8 would be better, but should wait
	for some more general charset handling cleanup.
	* Adjust other files accordingly.

2005-08-24  Nathaniel Smith  <njs@pobox.com>

	* More compile fixes.  All remaing compile errors are real
	problems, yay.

2005-08-24  Nathaniel Smith  <njs@pobox.com>

	* Lots and lots more compile fixes.

2005-08-24  Nathaniel Smith  <njs@pobox.com>

	* paths.hh, monotone.cc, app_state.hh, app_state.cc:
	* unix/inodeprint.cc: More compile fixes.

2005-08-24  Nathaniel Smith  <njs@pobox.com>

	* manifest.hh: Include paths.hh.
	* file_io.hh: Fix syntax errors, and fixup interface.

2005-08-24  Nathaniel Smith  <njs@pobox.com>

	* paths.hh, sanity.hh: Compilation fixes.

2005-08-24  Nathaniel Smith  <njs@pobox.com>

	* paths.cc: Update tests to use path_state_* and pass utf8
	objects.

2005-08-24  Nathaniel Smith  <njs@pobox.com>

	* paths.hh (file_path_external): Take a utf8() object, always.

2005-08-24  Nathaniel Smith  <njs@pobox.com>

	* paths.hh (class file_path): Make "convenience functions"
	required.

2005-08-24  Nathaniel Smith  <njs@pobox.com>

	* Switch rest of instances to using convenience functions.

2005-08-24  Nathaniel Smith  <njs@pobox.com>

	* Switch many instances to using convenience functions.

2005-08-24  Nathaniel Smith  <njs@pobox.com>

	* paths.hh (file_path_internal, file_path_external): Define
	convenience functions.
	(file_path, bookkeeping_path, system_path): Add default
	constructors.

2005-08-24  Nathaniel Smith  <njs@pobox.com>

	* app_state.cc, change_set.cc, change_set.hh, commands.cc:
	* inodeprint.cc, manifest.cc, rcs_import.cc, restrictions.cc:
	* work.cc: Audit all calls to file_path() to add internal/external
	notation.

2005-08-24  Nathaniel Smith  <njs@pobox.com>

	* app_state.cc: More paths.hh conversion.
	(app_state::prefix): Remove.
	* commands.cc: Remove uses of app.prefix.
	* automate.cc (automate_attributes): Likewise.

2005-08-23  Nathaniel Smith  <njs@pobox.com>

	* paths.hh (any_path::as_internal): On second thought, return a
	utf8 object.
	* app_state.cc (set_database): Take a system_path.
	(set_pidfile): Likewise.
	* monotone.cc (cpp_main): Pass one.

2005-08-23  Nathaniel Smith  <njs@pobox.com>

	* file_io.hh (get_homedir): Return a system_path.
	* app_state.hh (app_state): Make pidfile a system_path.
	* sanity.hh (sanity::filename): Make a system_path.
	* monotone.cc (cpp_main): Adjust accordingly.
	* paths.hh (any_path): Add as_internal() to interface.
	* paths.cc: Add roundtripping tests.

2005-08-23  Nathaniel Smith  <njs@pobox.com>

	* platform.hh, unix/fs.cc, win32/fs.cc
	(change_current_working_dir): Take an any_path, not a string.
	* rcs_import.{cc,hh}: Convert to paths.hh.

2005-08-23  Nathaniel Smith  <njs@pobox.com>

	* commands.cc (pid_file): Remove fs::path.

2005-08-23  Nathaniel Smith  <njs@pobox.com>

	* mkstemp.cc (monotone_mkstemp): Remove references to fs::path.

2005-08-23  Nathaniel Smith  <njs@pobox.com>

	* change_set.cc (apply_rearrangement_to_filesystem): Oops, missed
	some local_path's.

2005-08-23  Nathaniel Smith  <njs@pobox.com>

	* path_component.{cc,hh}: Delete.

2005-08-23  Nathaniel Smith  <njs@pobox.com>

	* change_set.cc (move_files_to_tmp_bottom_up)
	(move_files_from_tmp_top_down): Convert to paths.hh.
	Whole file: stop using path_component.hh.

2005-08-23  Nathaniel Smith  <njs@pobox.com>

	* paths.cc (test_bookkeeping_path): Oops, "" is an invalid
	bookkeeping_path.

2005-08-23  Nathaniel Smith  <njs@pobox.com>

	* lua.cc, paths.cc: Few more tweaks for previous change.

2005-08-23  Nathaniel Smith  <njs@pobox.com>

	* paths.{cc,hh}: Add / operators.  Make that the usual way to use
	bookkeeping_path's.
	* work.cc: Adjust accordingly.
	* lua.cc (working_copy_rcfilename): Likewise.
	* commands.cc (update): Likewise.

2005-08-23  Nathaniel Smith  <njs@pobox.com>

	* paths.{cc,hh} (operator <<): Implement for any_paths.
	* paths.hh (class bookkeeping_path): Note that current design is
	bogus to remind myself to fix it tomorrow...

2005-08-23  Nathaniel Smith  <njs@pobox.com>

	* work.{hh,cc}: Convert to paths.hh.

2005-08-23  Nathaniel Smith  <njs@pobox.com>

	* lua.{cc,hh}: Mostly convert to paths.hh.  (Still uses boost::fs
	internally for some directory iteration.)
	* app_state.cc (load_rcfiles): Update accordingly.
	* file_io.hh (path_state): De-templatify; take any_path instead of
	a T.

2005-08-23  Nathaniel Smith  <njs@pobox.com>

	* paths.cc (any_path): New base class.
	(file_path, bookkeeping_path, system_path): Inherit from it.
	* transforms.{hh,cc} (utf8_to_system): Actually, always take a
	utf8 after all (but still have two return types).

2005-08-23  Nathaniel Smith  <njs@pobox.com>

	* transforms.cc: Convert to paths.hh.

2005-08-23  Nathaniel Smith  <njs@pobox.com>

	* transforms.{cc,hh} (localized, localized_as_string): Remove.

2005-08-23  Nathaniel Smith  <njs@pobox.com>

	* transforms.cc (utf8_to_system): Make fast.

2005-08-23  Nathaniel Smith  <njs@pobox.com>

	* transforms.hh (utf8_to_system): Add a string->string version.
	* transforms.cc (utf8_to_system): Implement it.

2005-08-23  Nathaniel Smith  <njs@pobox.com>

	* paths.cc (localized_path_str): New function.
	Fix some tests.

2005-08-23  Nathaniel Smith  <njs@pobox.com>

	* commands.cc: Convert to paths.hh.
	* mkstemp.cc (monotone_mkstemp): Likewise.

2005-08-23  Nathaniel Smith  <njs@pobox.com>

	* vocab_terms.hh, vocab.cc: Remove file_path, local_path.
	* database.{hh,cc}, monotone.cc: Convert to paths.hh.
	* file_io.{hh,cc}: Start to convert to paths.hh.

2005-08-23  Nathaniel Smith  <njs@pobox.com>

	* paths.{cc,hh} (fully_normalized_path): Implement.
	(external_path): Rename to system_path.
	Misc. other updates.

2005-08-21  Eric Anderson  <anderse-monotone@cello.hpl.hp.com>
	* file_io.cc, file_io.hh, lua.cc, std_hooks.lua: determine if a
	file is binary by looking at it incrementally, rather than reading
	it in entirely.  Prepare for making it possible to control what
	characters are considered "binary"

2005-08-20  Nathaniel Smith  <njs@codesourcery.com>

	* paths.cc (is_absolute): New function.
	(file_path::file_path(vector<path_component>))
	(file_path::split): Implement.

2005-08-20  Nathaniel Smith  <njs@pobox.com>

	* interner.hh (interner): Add a scary constructor that lets us
	insert an initial value and assert that we already knew that the
	value assigned to it would be.  (This lets us make it an inlined
	constant.)

2005-08-20  Nathaniel Smith  <njs@pobox.com>

	* paths.cc: Yet more tests.

2005-08-20  Nathaniel Smith  <njs@pobox.com>

	* paths.cc (save_initial_path): Implement.
	Add more tests.

2005-08-20  Nathaniel Smith  <njs@codesourcery.com>

	* paths.{cc,hh}: New files.
	* Makefile.am (MOST_SOURCES): Add them.
	* unit_tests.hh (add_paths_tests): Declare.
	* unit_tests.cc (init_unit_test_suite): Add them.
	* platform.hh (get_current_working_dir)
	(change_current_working_dir):  New functions.
	* {unix,win32}/fs.cc: New files.

2005-08-19  Nathaniel Smith  <njs@codesourcery.com>

	* monotone.texi (Tutorial): Tweak wording, use --db at more
	appropriate places.

2005-08-26  Richard Levitte  <richard@levitte.org>

	* database.cc (version): Revert the change done earlier, as it
	aborted if the schema isn't the current one, rendering this method
	useless.

2005-08-26  Matt Johnston  <matt@ucc.asn.au>

	* change_set.cc (check_depth, confirm_proper_tree):
	more efficient algorithm to check for no loops
	* constants.hh: new constant max_path_depth to limit
	recursion in check_depth.

2005-08-26  Benoît Dejean  <benoit@placenet.org>

	* po/fr.po: Updated French translation.

2005-08-26  Richard Levitte  <richard@levitte.org>

	* options.hh, monotone.cc: Add the '--execute' command-specific
	option.
	* monotone.cc (cpp_main): ... and process it.
	* app_state.hh (class app_state): Add the 'execute' boolean.
	* app_state.cc (app_state): Initialise it.
	* commands.cc (CMD(drop)): Add '--execute' capability.
	* commands.cc (CMD(rename)): Add '--execute' capability.  Pass
	'app' to build_rename.
	* work.hh, work.cc (build_deletions, build_rename): Do the actual
	work.  This required the addition of an app_state parameter to
	build_rename.

	* tests/t_drop_execute.at, tests/t_rename_execute.at: New tests.
	* testsuite.at: Add them.

2005-08-26  Benoît Dejean  <benoit@placenet.org>

	* mt_version.cc (print_full_version): Merged strings.
	* change_set.cc: No i18n for unittests. Wow, this saves
	21 strings (total 781).

2005-08-25  Benoît Dejean  <benoit@placenet.org>

	* commands.cc (safe_gettext): New function.
	(explain_usage): Used there to avoid _("").

2005-08-25  Benoît Dejean  <benoit@placenet.org>

	* sanity.{cc,hh} (sanity::do_format): Merged code from
	sanity::{log, warning, progress} in order to merge
	strings. Fixed exception rethrowing.

2005-08-25  Benoît Dejean  <benoit@placenet.org>

	* commands.cc (CMD(lca)): One more string for i18n.
	(CMD(trusted)): Merged all strings.

2005-08-25  Benoît Dejean  <benoit@placenet.org>

	* po/fr.po: Updated French translation.

2005-08-25  Benoît Dejean  <benoit@placenet.org>

	* database.cc (database::version): Marked string for i18n
	and simplifed.
	(database::info): Reworked to merge all strings for i18n.

2005-08-25  Benoît Dejean  <benoit@placenet.org>

	* database.{cc,hh} (database::open, database::check_filename):
	New functions to avoid error handling code and string duplicates.

2005-08-25  Matt Johnston  <matt@ucc.asn.au>

	* transform.cc ({int,ext}ernalize_rsa_keypair_id): don't
	convert the username portion of key ids to/from ACE.
	* tests/t_genkey.at: check that foo+bar@example.com works
	and foobar@exam+ple.com doesn't.

2005-08-24  Benoît Dejean  <benoit@placenet.org>

	* database.cc (assert_sqlite3_ok): Somehow merged error messages.

2005-08-24  Benoît Dejean  <benoit@placenet.org>

	* change_set.cc (move_files_to_tmp_bottom_up): Better strings.
	* keys.cc (generate_key_pair): Merged 2 strings.

2005-08-24  Nathaniel Smith  <njs@pobox.com>

	* database.cc (assert_sqlite3_ok): Remove accidentally-left-in
	format string argument.

2005-08-24  Nathaniel Smith  <njs@pobox.com>

	* revision.cc (check_sane_history): Add MM's for calculated
	changesets.

2005-08-24  Nathaniel Smith  <njs@pobox.com>

	* database.cc (assert_sqlite3_ok): Don't print the raw sqlite
	error code.  Do add some auxiliary information when sqlite errors
	are confusing.

2005-08-24  Nathaniel Smith  <njs@pobox.com>

	* Back out most changes since
	b580c6ac5bf8eea1f442b8bddc60283b047ade1e.  Handling charsets
	properly by working in utf8 and then converting sucks.  Problems
	include
	  - gettext hates you (wants to return stuff in local charset)
	  - strerror hates you (same reason, but you can't turn it off)
	  - can't report charset conversion errors
	We thus return to our "sorta-correct, by accident" status quo.
	Only change left in is signedness fix in
	5548868ab56d939c1fd8713aa2ac8caacd1184a1.

2005-08-23  Nathaniel Smith  <njs@pobox.com>

	* ui.cc (sanitize): Fix signedness bug in comparison.
	* unix/unix.{cc,hh}: New files.
	* Makefile.am (UNIX_PLATFORM_SOURCES): Add them.
	* unix/process.cc (is_executable, make_executable): Use new
	function last_error.

2005-08-23  Nathaniel Smith  <njs@pobox.com>

	* transforms.{cc,hh} (system_charset): Expose.
	* monotone.cc (cpp_main): Use it to fiddle with gettext's charset
	conversion and make --help output actually correct.

2005-08-23  Nathaniel Smith  <njs@pobox.com>

	* transforms.cc (outprep): Don't sanitize all output; removes too
	many valid characters (\r, \t, etc.).
	* ui.cc: Call outprep on ticker output.
	(inform): Do still sanitize ui.inform() output.

2005-08-23  Nathaniel Smith  <njs@pobox.com>

	* transforms.cc (outprep): New function.
	* ui.cc (inform): Use it.
	* monotone.cc (cpp_main): Use it.
	Everything that writes user-intended output directly (i.e., via
	cout) must call outprep() on that data before printing it.

2005-08-23  Nathaniel Smith  <njs@pobox.com>

	* monotone.cc (cpp_main): Trick popt into converting its generated
	help messages into the current locale's charset.

2005-08-23  Nathaniel Smith  <njs@pobox.com>

	* ui.cc (inform, sanitize): Convert all output from utf8 to
	current locale's charset.

2005-08-23  Nathaniel Smith  <njs@pobox.com>

	* monotone.cc (cpp_main): Use bind_textdomain_codeset to request
	that all gettext'ed strings be returned in UTF-8.

2005-08-23  Nathaniel Smith  <njs@pobox.com>

	* idna/nfkc.c (g_utf8_strlen): Expose.
	* transforms.{cc,hh} (length): New function.
	* ui.cc (write_ticks): Use length() instead of .size() to
	calculate string widths; should support multibyte characters
	better.  (Still some problems relating to truncating strings to
	avoid overflow -- calculate truncation by length, but perform
	truncation by bytes...)

2005-08-24  Benoît Dejean  <benoit@placenet.org>

	* po/fr.po: Updated French translation.

2005-08-24  Benoît Dejean  <benoit@placenet.org>

	* monotone.cc:
	* commands.cc: Two more i18n strings.

2005-08-23  Benoît Dejean  <benoit@placenet.org>

	* lua.cc: boost::format vs. F.

2005-08-23  Nathaniel Smith  <njs@pobox.com>

	* AUTHORS: Add Benoît Dejean <benoit@placenet.org>.  Create new
	section for translators.  Add Benoît there too.

2005-08-23  Nathaniel Smith  <njs@pobox.com>

	* commands.cc: N_("") -> "".

2005-08-23  Nathaniel Smith  <njs@pobox.com>

	* commands.cc: Make all CMD() calls use N_() instead of _().
	(commands): Insert _() everywhere usage strings are used.  This is
	icky.

2005-08-23  Nathaniel Smith  <njs@pobox.com>

	* keys.cc (get_passphrase): Put back trailing ": " removed in
	recent i18n changes.

2005-08-23  Benoît Dejean  <benoit@placenet.org>

	* change_set.cc (dump_change_set): boost::format instead of F.
	* commands.cc (get_log_message, notify_if_multiple_heads,
	complete, CMD(attr)): Marked some strings for i18n. Replaced a
	multiline string by prefix_lines_with(). Merged strings.
	* diff_patch.cc (merge_provider::try_to_merge_files): Merged
	strings.
	* i18n.h: N_() stands for gettext_noop(), not plural.
	* keys.cc (get_passphrase): Fixed string surgery.
	* netsync.cc: i18nized tickers' labels. Added xgettext comment
	as tickers do not play well with multibytes characters (like é).
	(session::analyze_attachment): Fixed string surgery.
	(session::process_hello_cmd): Merged many strings.
	(session::process_data_cmd): Removed some leading/trailing
	whitespaces.
	* sanity.cc: Marked error prefixes for i18n.
	* ui.cc (tick_write_count::write_ticks): Reworked and fixed
	surgery. Merged some strings.

2005-08-23  Benoît Dejean  <benoit@placenet.org>

	* commands.cc (CMD*): _("") -> "" as _("") returns the PO
	header.

2005-08-23  Benoît Dejean  <benoit@placenet.org>

	* transforms.cc (check_idna_encoding): No i18n for unittests.

2005-08-23  Benoît Dejean  <benoit@placenet.org>

	* change_set.cc (dump_change_set): boost::format instead of F.
	* commands.cc (get_log_message, notify_if_multiple_heads,
	complete, CMD(attr)): Marked some strings for i18n. Replaced a
	multiline string by prefix_lines_with(). Merged strings.
	* diff_patch.cc (merge_provider::try_to_merge_files): Merged
	strings.
	* i18n.h: N_() stands for gettext_noop(), not plural.
	* keys.cc (get_passphrase): Fixed string surgery.
	* netsync.cc: i18nized tickers' labels. Added xgettext comment
	as tickers do not play well with multibytes characters (like é).
	(session::analyze_attachment): Fixed string surgery.
	(session::process_hello_cmd): Merged many strings.
	(session::process_data_cmd): Removed some leading/trailing
	whitespaces.
	* sanity.cc: Marked error prefixes for i18n.
	* ui.cc (tick_write_count::write_ticks): Reworked and fixed
	surgery. Merged some strings.

2005-08-23  Benoît Dejean  <benoit@placenet.org>

	* netcmd.cc (test_netcmd_functions): Don't translate unittest
	strings.
	* rcs_import.cc (cvs_commit::cvs_commit):
	* database.cc (version_cache::put):
	* lua.cc (dump_stack): boost::format vs. F for strings that are
	not messages.

2005-08-23  Benoît Dejean  <benoit@placenet.org>

	* xdelta.cc: Don't translate unittest strings.

2005-08-23  Matthew Gregan  <kinetik@orcon.net.nz>

	* monotone.texi: Bring 'update' syntax up to date.

2005-08-23  Nathaniel Smith  <njs@pobox.com>

	* tests/t_diff_external.at: --diff-args without --external is an
	error.
	* commands.cc (diff): Likewise.

2005-08-22  Nathaniel Smith  <njs@pobox.com>

	* contrib/ciabot_monotone.py (send_change_for): Handle author
	names with spaces in.

2005-08-22  Matt Johnston  <matt@ucc.asn.au>

	* HACKING: change the vim modeline to something that seems to work
	better.

2005-08-23  Olivier Andrieu  <oliv__a@users.sourceforge.net>

	* contrib/monotone.el: When running monotone commands, re-use
	*monotone* buffers. Make the "status" command use the prefix
	argument. Make the "tree"-restricted commands work in dired
	buffers. Add the "--no-merges" option in the log command. Various
	other innocuous changes.

2005-08-22  Nathaniel Smith  <njs@pobox.com>

	* mt_version.cc (print_full_version): Typo.

2005-08-22  Nathaniel Smith  <njs@pobox.com>

	* mt_version.cc: Include sanity.hh.

2005-08-22  Nathaniel Smith  <njs@pobox.com>

	* netsync.cc (process_error_cmd, run_netsync_protocol): Remove
	some newlines to avoid translation noise.

2005-08-22  Nathaniel Smith  <njs@pobox.com>

	* po/LINGUAS, po/ja.po: Remove ja translation again, it seems to
	be corrupt.

2005-08-22  Nathaniel Smith  <njs@pobox.com>

	* commands.cc (update): Don't use F() to indent things.

2005-08-22  Nathaniel Smith  <njs@pobox.com>

	* commands.cc (dump_diffs): Don't use F() to create diff headers.
	(commands::process): Put '' in the log message to make Benoît
	Dejean happy ;-).

2005-08-22  Nathaniel Smith  <njs@pobox.com>

	* po/LINGUAS, po/ja.po: Add Japanese translation by Satoru SATOH.

2005-08-20  Benoît Dejean  <benoit@placenet.org>

	* po/monotone.pot: Remove from version control.
	* po/POTFILES.skip: New file.
	* po/fr.po: French translation (initial version).
	* po/LINGUAS: Add fr.

2005-08-22  Nathaniel Smith  <njs@pobox.com>

	* commands.cc (read): Use FP (thanks to Benoît Dejean for
	catch).
	* mt_version.cc (print_version, print_full_version): Mark more
	strings for i18n (also thanks to Benoît Dejean).

2005-08-22  Nathaniel Smith  <njs@pobox.com>

	* commands.cc (commands): Revert previous changes, xgettext is
	buggy.
	Mark every CMD() string argument with _().
	* i18n.h, Makefile.am: New file.
	* sanity.hh: Include it.
	* po/Makevars (XGETTEXT_OPTIONS): Learn about _() and N_() as
	markers.

2005-08-22  Nathaniel Smith  <njs@pobox.com>

	* commands.cc (commands): Oops, can't call gettext on a
	std::string...

2005-08-22  Nathaniel Smith  <njs@pobox.com>

	* monotone.cc (coptions, options): Use gettext_noop to mark usage
	strings for i18n.
	* commands.cc (commands): gettextify command descriptions
	* po/Makevars (XGETTEXT_OPTIONS): Include the 2nd, 3rd, and 4th
	arguments to CMD macro as translatedable strings.

2005-08-22  Nathaniel Smith  <njs@pobox.com>

	* database.cc: Replace a bunch of F()'s by boost::format's,
	because F is only for strings displayed to user.

2005-08-22  Nathaniel Smith  <njs@pobox.com>

	* po/Makevars (XGETTEXT_OPTIONS): Extract FP'ed strings.

2005-08-22  Nathaniel Smith  <njs@pobox.com>

	* sanity.hh (FP): New macro.  Usage:
	FP("frobbed %i bar", "frobbed %s bars", num_bars) % num_bars

2005-08-22  Richard Levitte  <richard@levitte.org>

	* contrib/monotone-import.pl: When temporarly touching files that
	have disappeared since last import, don't forget to create
	intermediary directories as well (and to remove them later on).
	Make sure all file arguments are quoted.  Finally, pick up the
	newly created revision by reading MT/revision instead of relying
	on backquotes working.
	Notofication and initial correction submitted by
	BigFish <bigfische@gmail.com>.

2005-08-20  Matthew Gregan  <kinetik@orcon.net.nz>

	* revision.hh: Delete doubled line of text in comment.

2005-08-20  Benoît Dejean  <benoit@placenet.org>

	* monotone.cc (cpp_main): setlocale(LC_ALL).
	* commands.cc (dropkey): Unify warning into a single string.

2005-08-20  Nathaniel Smith  <njs@codesourcery.com>

	* contrib/monoprof.sh (test_commit): Kernel tarball unpacks to
	linux-$KVER/, not $KVER/.

2005-08-19  Nathaniel Smith  <njs@codesourcery.com>

	* contrib/monoprof.sh (SETUP): Put netsync hooks in the default
	hook file.

2005-08-19  Nathaniel Smith  <njs@codesourcery.com>

	* contrib/monoprof.sh: Give a sensible error message if $DATADIR
	doesn't exist.

2005-08-20  Matt Johnston  <matt@ucc.asn.au>

	* database.cc (put_revision): uncomment check_sane_history call
	(was accidentally committed commented out)

2005-08-19  Nathaniel Smith  <njs@codesourcery.com>

	* monotone.texi (Tutorial): Tweak wording, use --db at more
	appropriate places.

2005-08-19  Matthew Gregan  <kinetik@orcon.net.nz>

	* tests/t_crlf.at: Adjust expected line count to accomodate diff
	output change.
	* commands.cc (CMD(diff)): Include base revision ID in diff output
	header when diffing against working copy.  Useful to identify what
	revision a patch was created against.
	* std_hooks.lua (ignore_file): Ignore Visual SourceSafe junk.

2005-08-18  Timothy Brownawell  <tbrownaw@gmail.com>

	* std_hooks.lua: accept_testresult_change now only cares about
	testresults listed in MT/wanted-testresults

2005-08-18  Matthew Gregan  <kinetik@orcon.net.nz>

	* INSTALL: Remove outdated references to configure options and
	Solaris build workarounds.
	* configure.ac: Lower gettext requirement from 0.12.1 to 0.11.5.

2005-08-17  Timothy Brownawell  <tbrownaw@gmail.com>

	* sanity.cc (gasp()): When catching an error from dumping a MM'd
	variable, do not discard output generated prior to the error. This
	way, at least the header line (function name, file, line no.) is
	printed.
	* change_set.cc: write_insane_change_set: new function to write a
	change set without sanity checking it, now used by dump().

2005-08-17  Patrick Mauritz  <oxygene@studentenbude.ath.cx>

	* unix/process.cc: missing include
	* m4/fexceptions.m4, configure.ac, Makefile.am: remove hardcoded
	-fexceptions in CFLAGS and add it only if compiler doesn't freak
	out.

2005-08-17  Nathaniel Smith  <njs@pobox.com>

	* work.cc (build_additions): Tweak wording.

2005-08-17  Nathaniel Smith  <njs@pobox.com>

	* netsync.cc: Add IANA port assignment to the todo list.

2005-08-17  Nathaniel Smith  <njs@pobox.com>

	* unix/process.cc (make_executable): Open the fd read-only, avoids
	problems with read-only files, and a writeable fd doesn't seem to
	be necessary to change permission bits.

2005-08-17  Nathaniel Smith  <njs@pobox.com>

	* unix/process.cc (is_executable, make_executable): When reporting
	an error in a syscall, include the actual error message.

2005-08-17  Nathaniel Smith  <njs@pobox.com>

	* lua.cc (dump_stack): New function.
	(Lua::fail): New method; use above.
	(get, get_fn, get_tab, get_str, get_num, get_bool, extract_str)
	(extract_int, extract_double, extract_bool, begin, next, pop): Use
	it, to give better logging.

2005-08-17  Nathaniel Smith  <njs@pobox.com>

	* Makefile.am (lib3rdparty_a_CFLAGS): Build 3rd party C code with
	-fexceptions.

2005-08-17  Matthew Gregan  <kinetik@orcon.net.nz>

	* win32/process.cc: Slightly smarter argv->cmdline munging.
	* std_hooks.lua: Merge hooks for TortoiseMerge (part of
	TortoiseSVN).

2005-08-17  Nathaniel Smith  <njs@pobox.com>

	* lua.cc (lua_hooks): Re-enable panic thrower, we no longer
	support Lua 4.

2005-08-16  Nathaniel Smith  <njs@pobox.com>

	* netsync.cc: Add more netsync todos.

2005-08-15  Nathaniel Smith  <njs@pobox.com>

	* tests/t_explicit_merge_with_anc.at: New test.
	* testsuite.at: Add it.

2005-08-15  Nathaniel Smith  <njs@pobox.com>

	* tests/t_log_brief.at: New test.
	* testsuite.at: Add it.

2005-08-15  Nathaniel Smith  <njs@pobox.com>

	* commands.cc (fcommit): Remove.  This command has never been
	documented, tested, or maintained; it also doesn't avoid the use
	of temporary files (which was supposed to be its purpose).  Has it
	ever actually been used...?

2005-08-15  Nathaniel Smith  <njs@pobox.com>

	* lua.cc (hook_init_attributes): Do more logging; use begin()
	instead of starting iteration by hand.

2005-08-15  Patrick Mauritz  <oxygene@studentenbude.ath.cx>

	* testsuite.at, tests/*.at: make testsuite less demanding:
	- QGREP() and QEGREP() provide a portable [e]grep -q
	- export FOO=bar -> FOO=bar; export FOO
	- tail -n $x -> TAIL($x) with appropriate macro

2005-08-15  Patrick Mauritz  <oxygene@studentenbude.ath.cx>

	* m4/typeof.m4: new test, looks if compiler knows the typeof()
	extension
	* configure.ac: use it
	* sanity.hh: use the test, and boost's abstraction over
	__PRETTY_FUNCTION__ and similar pseudo-macros

2005-08-15  Patrick Mauritz  <oxygene@studentenbude.ath.cx>

	* configure.ac (BOOST_FIX_VERSION): only apply that fix on gcc.

2005-08-14  Nathaniel Smith  <njs@pobox.com>

	* configure.ac (BOOST_VERSION_CHECK, BOOST_FIX_VERSION): Fix for
	cross-compilation.  (Thanks to John Bowler <jbowler@acm.org>.)

2005-08-14  Matthew Gregan  <kinetik@orcon.net.nz>

	* testsuite.at: Don't use agraph.
	* Makefile.am: Minor cleanups.

2005-08-13  Patrick Mauritz  <oxygene@studentenbude.ath.cx>

	* botan/gzip.cpp, botan/mutex.cpp: c functions via c* headers need
	std:: prefix

2005-08-13  Patrick Mauritz  <oxygene@studentenbude.ath.cx>

	* schema_migration.cc (lowercase): it's only used for processing sha1
	values whos size we know: make array size constant
	* transforms.cc (encode_hexenc, decode_hexenc): they have to work with
	all kinds of string sizes, so at least make them nicer by using
	boost::scoped_array

2005-08-13  Patrick Mauritz  <oxygene@studentenbude.ath.cx>

	* revision.cc: make copy constructor of revision_set behave like
	normal constructor in case it's copying a freshly created object

2005-08-13  Nathaniel Smith  <njs@pobox.com>

	* testsuite.at: Use SEGV to kill netsync servers, in hopes it will
	give better coverage information.

2005-08-13  Julio M. Merino Vidal  <jmmv@NetBSD.org>

	* configure.ac: Remove an obsolete check to see if SQLite was
	bundled or not, because the bundled version has been used
	exclusively for quite some time.

2005-08-13  Julio M. Merino Vidal  <jmmv@NetBSD.org>

	* database_check.cc: Remove trailing newline from error messages
	when embedding them inside other strings, so that the trailing
	closing parenthesis is printed correctly.

2005-08-13  Julio M. Merino Vidal  <jmmv@NetBSD.org>

	* configure.ac: Add '-mt' as another possible suffix to detect the
	Boost libraries.  It's very common when these libraries are built
	with the "native naming layout".

2005-08-13  Nathaniel Smith  <njs@pobox.com>

	* monotone.1, monotone.texi: Don't mention agraph.
	* tests/t_netsync_repeated.at: Don't use agraph.
	* tests/t_netsync_unrelated.at: Likewise.

2005-08-13  Nathaniel Smith  <njs@pobox.com>

	* commands.cc (agraph): Remove.

2005-08-13  Nathaniel Smith  <njs@pobox.com>

	* tests/t_commit_log_writeback.at: New test.
	* testsuite.at: Add it.

2005-08-12  Nathaniel Smith  <njs@pobox.com>

	* commands.cc (commit): When user uses --message or
	--message-file, don't require non-empty logs, and don't write out
	message to MT/log.  (This makes re-running a 'commit -m foo'
	command line until it works possible; otherwise the second try
	will get a 'MT/log non-empty and -m supplied' error.)

2005-08-11  Nathaniel Smith  <njs@pobox.com>

	* netsync.cc: Add a list of ideas for improvement that will break
	network compatibility and thus perhaps should go together.

2005-08-11  Nathaniel Smith  <njs@pobox.com>

	* tests/t_commit_message_file.at: Un-double file contents.

2005-08-11  Nathaniel Smith  <njs@pobox.com>

	* lua.cc (ok, extract_str, extract_int, extract_double)
	(extract_bool): Add more logging.

2005-08-11  Patrick Mauritz <oxygene@studentenbude.ath.cx>

	* INSTALL: remove section about crypto++ on solaris
	* config.rpath, mkinstalldirs, po/Makefile.in.in,
	  various files in m4, ABOUT-NLS:
	  remove as they're autogenerated
	* hash_map.hh, m4/gnucxxhashmap.m4, m4/stlporthashmap.m4:
	  new files, abstraction over hash_map differences in STL impls.
	* m4/externtemplate.m4: new file, check if compiler is happy
	  with "extern template"
	* configure.ac: hook up the new autoconf tests
	* Makefile.am: remove -Wall
	* botan/gzip.cpp, botan/mutex.cpp: add includes
	* constants.*: move values to .hh if used for array sizes
	* interner.hh, xdelta.cc: use hash_map.hh
	* merkle_tree.cc, unix/inodeprint.cc: make array size truly
	  constant
	* sanity.hh: work-around for missing typeof() and
	  __PRETTY_FUNCTIONS on non-gcc compilers
	* schema_migration.cc, transforms.cc: moved dynamically
	  initialized array to heap
	* transforms.hh, vocab.hh: use externtemplate autoconf test

2005-08-10  Matthew Gregan  <kinetik@orcon.net.nz>

	* monotone.spec: include zlib-devel and texinfo as build
	requirements, zlib as a runtime requirement.

2005-08-09  Eric Anderson  <anderse-monotone@cello.hpl.hp.com>

	* tests/perf-test.sh: A repeatable performance test harness
	* tests/parse-accounting.pl: A script that parses the accounting
	output into a nice tabular format

2005-08-09  Eric Anderson  <anderse-monotone@cello.hpl.hp.com>

	* Changes to significantly improve network pull performance
	* string_queue.hh: created to store pending data and allow for
	efficient removal from the front.  The string queue automatically
	reduces its buffer size if it is very empty.
	* hmac.{cc,hh}: Add in a version of chained_hmac::process that can
	operate on a string_queue for use during read.
	* netcmd.{cc,hh}: update netcmd::read to use a string_queue rather
	than a string, update all the regression tests also.  This required
	the somewhat ugly creation of a read_string function because the
	netcmd read and write functions are no longer using the same type.
	* netio.hh: introduce functions for operating on a string_queue. They
	are identical to the equivalent string functions except for the type
	of the argument.
	* netsync.cc: Use a string_queue rather than a string for storing the
	input and output buffers.

	* string_queue.cc: unit tests (Matt Johnston)

2005-08-09  Richard Li  <richardl@redhat.com>

	* std_hooks.lua (merge2, merge3): explain a little better why
	monotone can't find a merge command.

2005-08-09  Nathaniel Smith  <njs@pobox.com>

	* commands.cc (update): Fix helpful error message to suggest
	_current_ commandline syntax.

2005-08-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>

	* contrib/monotone.el: a couple of fixes spotted by the compiler
	* Changelog, contrib/colorize: utf8ize

2005-08-09  Nathaniel Smith  <njs@pobox.com>

	* NEWS: Put a time in.
	* po/monotone.pot: Regenerate.

2005-08-08  Nathaniel Smith  <njs@pobox.com>

	* configure.ac, monotone.spec, debian/changelog:
	* win32/monotone.iss: Bump version number.

2005-08-08  Nathaniel Smith  <njs@pobox.com>

	* UPGRADE: Fix title.
	* NEWS: Add --lca.

2005-08-08  Nathaniel Smith  <njs@pobox.com>

	* commands.cc (merge, propagate): Take --lca.
	* options.hh: Add OPT_LCA.
	* monotone.cc (coptions, cpp_main): Support it it.
	* app_state.{hh,cc} (app_state::usa_lca): New variable.
	* revision.cc (find_common_ancestor_for_merge): Use LCA if user
	passed --lca.
	* tests/t_merge_lca.at: New test.
	* testsuite.at: Add it.
	* monotone.texi (Tree): Document --lca.

2005-08-08  Nathaniel Smith  <njs@pobox.com>

	* NEWS: First-pass for 0.22 release.
	* UPGRADE: Likewise.

2005-08-08  Nathaniel Smith  <njs@pobox.com>

	* Makefile.am (BOTAN_SOURCES): Add botan headers.
	* po/monotone.pot: Regenerate.

2005-08-07  Nathaniel Smith  <njs@pobox.com>

	* netsync.cc (rebuild_merkle_trees, insert_with_parents): Make a
	ticker for added revisions, since traversing the tree to pull in
	ancestors causes a noticeable pause before the cert/key tickers
	start up.
	(insert_with_parents): Also simplify logic.

2005-08-07  Nathaniel Smith  <njs@pobox.com>

	* commands.cc (pull): Clarify what the "doing anonymous pull"
	message means and what you might do about it.

2005-08-07  Nathaniel Smith  <njs@pobox.com>

	* monotone.texi (Network Service, Hooks): Document
	get_netsync_read_permitted as getting a nil value on anonymous
	connects.
	* lua.{cc.hh} (hook_get_netsync_anonymous_read_permitted):
	Remove. Replace with 1-argument version of
	hook_get_netsync_write_permitted.
	* netsync.cc (process_anonymous_cmd): Update.
	* tests/t_netsync_permissions.at: Likewise.

2005-08-07  Matthew Gregan  <kinetik@orcon.net.nz>

	* botan/{data_snk,es_file}.cpp: Open fstreams in binary mode.
	These changes, plus the same change for data_src.cpp and
	es_ftw.cpp, have been sent upstream.

2005-08-05  Nathaniel Smith  <njs@pobox.com>

	* commands.cc (commit): Write out the log message to MT/log
	_after_ making sure it's non-empty.
	* tests/t_commit_cancelled.at: New test.
	* testsuite.at: Add it.

2005-08-04  Nathaniel Smith  <njs@pobox.com>

	* netsync.cc (rebuild_merkle_trees): Typo.

2005-08-04  Nathaniel Smith  <njs@pobox.com>

	* netsync.cc (rebuild_merkle_trees): Tweak message ("rebuilding
	merkle trees" does not mean anything to J. Random User...)

2005-08-04  Nathaniel Smith  <njs@pobox.com>

	* manifest.cc (build_restricted_manifest_map): In 'missing files'
	error message, explain how to recover.

2005-08-03  Nathaniel Smith  <njs@pobox.com>

	* testsuite.at (NETSYNC_ADDRESS): New macro.
	(NETSYNC_SERVE_N_START, NETSYNC_SERVE_START)
	(NETSYNC_CLIENT_N_RUN): Use it.

	* tests/t_netsync_checks_server_key.at: Make sure can unset the
	known-servers entry.

2005-08-03  Matthew A. Nicholson  <matt@matt-land.com>

	* std_hooks.lua (get_preferred_merge2_command)
	(get_preferred_merge3_command): Provide more information on how to
	use vim as merge tool.

2005-08-03  Graydon Hoare  <graydon@pobox.com>

	* unix/process.cc (make_executable): Fix race, set user/group/other.

2005-08-03  Matthew Gregan  <kinetik@orcon.net.nz>

	* botan/data_src.cpp (DataSource_Stream::DataSourceStream): Open
	fstream as binary file.

2005-08-03  Matthew Gregan  <kinetik@orcon.net.nz>

	* win32/inodeprint.cc: Botan changes.  Also, hash individual
	FileTime structure members rather than the entire structure.
	* keys.cc: Add explicit 'using' for Botan::byte.
	* botan/es_win32.{cpp,h}: Add missing files.
	* Makefile.am: Enable entropy collection via CryptoAPI and Win32
	API.

2005-08-02  Matt Johnston  <matt@ucc.asn.au>

	* botan/gzip.cpp: forgot to commit some semicolons

2005-08-02  Matt Johnston  <matt@ucc.asn.au>

	* botan/gzip.{cpp,h}: rearranged the code to be clearer.

2005-08-01  Nathaniel Smith  <njs@pobox.com>

	* netsync.cc (get_branches): Remove warning when there are no
	branches.

2005-07-29  Nathaniel Smith  <njs@pobox.com>

	* globish.cc (matcher::operator()): Log what's happening.
	(checked_globish_to_regex_test): Fix previously added test.

2005-07-29  Nathaniel Smith  <njs@pobox.com>

	* globish.cc (checked_globish_to_regex_test): Add another test for
	quoted characters.

2005-07-28  Nathaniel Smith  <njs@pobox.com>

	* update.cc (calculate_update_set): Only include current rev in
	update set if it is an acceptable candidate.
	* commands.cc (update): Clarify error message in this case.
	* tests/t_update_branch.at: Update accordingly.

2005-07-28  Matthew Gregan  <kinetik@orcon.net.nz>

	* monotone.spec: Require boost >= 1.32.

2005-07-27  Matthew Gregan  <kinetik@orcon.net.nz>

	* tests/t_merge_add_del.at: 'drop' does not take a branch (test
	now fails in expected place).
	* tests/t_merge_add_rename_add.at: New test.
	* testsuite.at: Add it.

2005-07-27  Nathaniel Smith  <njs@pobox.com>

	* tests/t_update_branch.at: New test.
	* testsuite.at: Add it.
	(REVERT_TO): Do not preserve MT/options file (can setup invalid
	branch).
	* app_state.cc (make_branch_sticky): Call write_options when
	already have a working copy.
	* commands.cc (update): Call make_branch_sticky at appropriate
	time.

2005-07-27  Nathaniel Smith  <njs@pobox.com>

	* commands.cc: ALIAS(mv, rename).  ALIAS(rm, drop).

2005-07-26  Nathaniel Smith  <njs@pobox.com>

	* change_set.cc (dump): Add state_renumbering dumper.
	(merge_disjoint_analyses): Add MM().

2005-07-26  Nathaniel Smith  <njs@pobox.com>

	* change_set.cc (dump): Add path_analysis dumper.
	(merge_change_sets): Add more MM()s.

2005-07-26  Nathaniel Smith  <njs@pobox.com>

	* change_set.cc (dump): Add path_state dumper.
	(sanity_check_path_state): Add MM().

2005-07-26  Richard Levitte  <richard@levitte.org>

	* revision.cc (check_sane_history): Convert tabs to the
	appropriate amount of spaces.

2005-07-26  Richard Levitte  <richard@levitte.org>

	* sanity.hh, revision.cc (check_sane_history),
	change_set.cc (concatenate_change_sets, merge_change_sets,
	invert_change_set): Because boost currently uses the symbol M, we
	have a clash.  Therefore, let's rename M to MM, for now.

2005-07-26  Richard Levitte  <richard@levitte.org>

	* commands.cc (CMD(privkey)): Change so both the public and
	private key are printed.

	* tests/t_dropkey_2.at, tests/t_lua_privkey.at: Adapt to the new
	private key format.

2005-07-24  Nathaniel Smith  <njs@pobox.com>

	* sanity.cc (MusingI, ~MusingI): No-op when already in the middle
	of dumping.

2005-07-25  Matthew Gregan  <kinetik@orcon.net.nz>

	* Makefile.am, configure.ac: Remove BUNDLED_{LUA,SQLITE} tests and
	clarify the comment for popt.  Using external versions of these
	tools didn't work anyway, so there's no point giving the
	impression that it might.

2005-07-24  Nathaniel Smith  <njs@pobox.com>

	* sanity.cc (gasp): Handle the possibility of multiple valid calls
	to gasp(), 'db check' can trigger multiple invariants without
	dying.

2005-07-24  Nathaniel Smith  <njs@pobox.com>

	* sanity.{hh,cc} (sanity::already_dumping, gasp): Don't let gasp
	be called recursively, in case a dump triggers an invariant.

2005-07-24  Nathaniel Smith  <njs@pobox.com>

	* sanity.cc (gasp): Make more robust against new errors triggered
	during error unwind.  (write_change_set in particular likes to
	blow up when handling in invalid change_set.)

2005-07-24  Nathaniel Smith  <njs@pobox.com>

	* change_set.cc (merge_change_sets, check_sane)
	(concatenate_change_sets, invert_change_set): Add M()s.

2005-07-24  Nathaniel Smith  <njs@pobox.com>

	* sanity.{hh,cc} (dump): Remove templated version, add std::string
	version.
	* vocab.{hh,cc} (dump): Add ATOMIC/DECORATE/ENCODING dumpers.
	* change_set.{hh,cc} (dump): Add change_set dumper.
	* manifest.{hh,cc} (dump): Add manifest_map dumper.
	* revision.cc (check_sane_history): Add some M()s.

2005-07-24  Nathaniel Smith  <njs@pobox.com>

	* sanity.hh (class Musing, gasp, dump): Actually, take a
	std::string instead of a std::ostream; fits our idioms better.

2005-07-24  Nathaniel Smith  <njs@pobox.com>

	* sanity.cc (log, progress, warning): Append '\n' to strings when
	necessary.
	(gasp): Save string properly.
	(M): Apply black magic.  Now works correctly.
	(dump): Write newline.

2005-07-24  Nathaniel Smith  <njs@pobox.com>

	* sanity.hh (dump): Add a default 'dump' implementation for all
	<<able objects.

2005-07-24  Nathaniel Smith  <njs@pobox.com>

	* constants.{cc,hh} (default_terminal_width): New constant.
	* ui.cc (guess_terminal_width): Use it.

2005-07-24  Nathaniel Smith  <njs@pobox.com>

	* diff_patch.cc (unidiff_append_test): Fix typo.

2005-07-24  Nathaniel Smith  <njs@pobox.com>

	* tests/t_annotate_no_rev.at: New test.
	* testsuite.at: Add it.

2005-07-24  Nathaniel Smith  <njs@pobox.com>

	* sanity.{hh,cc} (sanity, dump_buffer, invariant_failure)
	(index_failure,	MusingI, Musing, M): Implement macro M(), for
	'musing', which marks data that monotone was musing over when an
	invariant tripped.
	* Makefile.am (MOST_SOURCES): Fix spacing.

2005-07-23  Nathaniel Smith  <njs@pobox.com>

	* ui.{hh,cc} (guess_terminal_width): New function.
	(tick_write_dot::chars_on_line): Make unsigned to quiet gcc warning.
	(tick_write_dot::write_ticks): Use guess_terminal_width.
	* commands.cc (dump_diffs): Take full responsibility for printing
	=== lines, and use guess_terminal_width.
	* diff_patch.cc (make_diff): Don't print === lines.
	(unidiff_append_test): Adjust accordingly.

2005-07-23  Matthew Gregan  <kinetik@orcon.net.nz>

	* commands.cc (CMD(annotate)): Check for a valid revision before
	trying to fetch it from the database.
	* lua/lundump.[ch], lua/ldump.c: Rename VERSION and VERSION0 to
	LUA_DUMP_VERSION and LUA_DUMP_VERSION0 to avoid clashes with
	VERSION from config.h.

2005-07-22  Nathaniel Smith  <njs@pobox.com>

	* monotone.texi (Committing Work): Remove discussion of manifests.

2005-07-20  Nathaniel Smith  <njs@pobox.com>

	* netsync.cc (rebuild_merkle_trees): Make 'including branch'
	message L() instead of P(); it's nice information, but too much to
	be useful with large databases.

2005-07-22  Matt Johnston  <matt@ucc.asn.au>

	* database_check.cc: check that revisions and manifests
	are normalised to the same for that they would be written as.
	* tests/t_database_check_normalized.at: a test for it.
	* testsuite.at: add it.

2005-07-21  Richard Levitte  <richard@levitte.org>

	* contrib/monotone-import.pl: Now uses the given tag.

2005-07-20  Marcel van der Boom  <marcel@hsdev.com>

	* database.{cc,hh} (get_branches): New method.
	* commands.cc (ls_branches): Use it.
	* netsync.cc (get_branches): Likewise.
	* tests/t_ls_branches.at: New test.
	* testsuite.at: Add it.

2005-07-20  Nathaniel Smith  <njs@pobox.com>

	* commands.cc (db): Rename kill_branch_locally to
	kill_branch_certs_locally.
	* tests/t_db_kill_branch_locally.at: Rename to...
	* tests/t_db_kill_branch_certs_locally.at: ...this.  Update.
	* testsuite.at: Update.
	* monotone.texi (Database): Update.

2005-07-19  Nathaniel Smith  <njs@pobox.com>

	* schema_migration.cc (migrator::migrate): Add a check for schemas
	that are just... wrong.
	* tests/t_migrate_broken_schema.at: New test.

2005-07-19  Nathaniel Smith  <njs@pobox.com>

	* netcmd.cc (read): Make the bad HMAC error message clearer.

2005-07-19  Matthew Gregan  <kinetik@orcon.net.nz>

	* tests/t_diff_external.at: Canonicalise output for Win32.

2005-07-18  Nathaniel Smith  <njs@pobox.com>

	* keys.cc (get_passphrase): Do still error out if they keep typing
	empty passphrases.

2005-07-18  Richard Levitte  <richard@levitte.org>

	* database.cc: Move the inclusion of stdarg.h...
	* database.hh: ... here.

2005-07-18  Matt Johnston  <matt@ucc.asn.au>

	* keys.cc (get_passphrase): don't bomb out if they type an empty passphrase.

2005-07-18  Patrick Mauritz  <oxygene@studentenbude.ath.cx>

	* work.cc, manifest.cc: Remove 'using namespace boost'.

2005-07-18  Nathaniel Smith  <njs@pobox.com>

	* netsync.cc (received_items): New instance variable.
	(session::session): Initialize it.
	(note_item_arrived): Maintain it.
	(item_request_outstanding): Rename it to...
	(item_already_received): ...this, and have it check both
	outstanding and fulfilled requests.
	(queue_send_data_cmd, queue_send_delta_cmd): Call it via new
	name.

	Hopefully this will eliminate cases where "revs in" is larger than
	"revs written".

2005-07-17  Nathaniel Smith  <njs@pobox.com>

	* constants.cc (legal_key_name_bytes): Allow + and _ to appear in
	key names.

2005-07-17  Nathaniel Smith  <njs@pobox.com>

	* ui.{cc,hh} (tick_write_dot::write_ticks): Start a new line when
	too many dots have been written.
	* netsync.cc (process_refine_cmd): Add comment noting a possible
	optimization regarding subtree refinement.

2005-07-17  Nathaniel Smith  <njs@pobox.com>

	* configure.ac, win32/monotone.iss, monotone.spec:
	* debian/changelog: Bump version numbers to 0.21.
	* NEWS: Commit to a timestamp.

2005-07-17  Nathaniel Smith  <njs@pobox.com>

	* NEWS: Add diff changes, more tweaking.
	* UPGRADE: Update for 0.21.
	* AUTHORS: Add Vladimir Vukicevic.

2005-07-18  Matt Johnston  <matt@ucc.asn.au>

	* netsync.cc: merge fixup
	* botan/pipe_rw.cpp (read_all_as_string): make it smarter and faster

2005-07-18  Matt Johnston  <matt@ucc.asn.au>

	* botan/sha160.{cpp,h}: new faster sha160 implementation from Jack Lloyd
	and Kaushik Veeraraghavan.

2005-07-17  Nathaniel Smith  <njs@pobox.com>

	* tests/t_diff_external.at: New test.
	* testsuite.at: Add it.

2005-07-17  Nathaniel Smith  <njs@pobox.com>

	* monotone.texi (Restrictions): diff -r -r does accept
	restrictions now.
	(CVS Phrasebook): Clarify diff section.
	(Informative): Document diff [--unified|--context|--external],
	--diff-args.

2005-07-17  Nathaniel Smith  <njs@pobox.com>

	* app_state.{cc,hh}: Record whether --diff-args was passed, not
	just a string value.
	* lua.{cc,hh} (hook_external_diff): Take a diff_args_provided
	variable.
	* commands.cc (do_external_diff): Pass it.

2005-07-17  Nathaniel Smith  <njs@pobox.com>

	* std_hooks.lua (external_diff_default_args): New variable.
	(external_diff): Use it as a default, and use user-provided
	diff_args otherwise.
	* monotone.texi (Hooks): Document this.

2005-07-16  Vladimir Vukicevic  <vladimirv@gmail.com>

	* lua.{cc,hh} (hook_external_diff): New hook.
	* std_hooks.lua (external_diff): Add default definition.
	* monotone.texi (Hooks): Document external_diff hook.
	* app_state.{cc,hh}, options.hh, monotone.cc: Add --context,
	--external, --unified, --diff-args options.
	* commands.cc (do_external_diff): New function.
	(dump_diffs): Put a == line between each file's diffs.
	Pass file_ids of pre- and post-states to make_diff.
	(diff): Take new options.
	(cdiff): Remove.
	* diff_patch.{cc,hh} (make_diff): Print file ids in diff file
	headers.
	(unidiff_append_test): Update.
	(enum diff_type): Move to...
	* vocab.hh: ...here.
	* tests/t_restrictions.at, tests/t_crlf.at: Update.

2005-07-16  Nathaniel Smith  <njs@pobox.com>

	* manifest.cc (build_restricted_manifest_map): Remove doubled
	comment.

2005-07-16  Nathaniel Smith  <njs@pobox.com>

	* NEWS: Mention need for 'db migrate'.

2005-07-17  Matthew Gregan  <kinetik@orcon.net.nz>

	* lua/*: Import Lua 5.0.2 from upstream.
	* lua/*: Fix up CVS $Id$ tags, which appear to have been trashed
	since monotone existed in CVS.

2005-07-16  Nathaniel Smith  <njs@pobox.com>

	* NEWS: Update for 0.21.

2005-07-16  Nathaniel Smith  <njs@pobox.com>

	* database.cc (assert_sqlite3_ok): Remove dead function.

2005-07-16  Nathaniel Smith  <njs@pobox.com>

	* app_state.cc (require_working_copy): Oops, make it compile.

2005-07-16  Nathaniel Smith  <njs@pobox.com>

	* app_state.{cc,hh} (require_working_copy): Take an optional
	argument to give more details about why a working copy was
	required.
	* commands.cc (log): Give said details.

2005-07-16  Nathaniel Smith  <njs@pobox.com>

	* monotone.texi (CVS Phrasebook): Include 'log'.

2005-07-16  Nathaniel Smith  <njs@pobox.com>

	* monotone.texi (Selectors): Document use of globs.
	* tests/t_selector_globbing.at: New test.
	* testsuite.at: Add it.

2005-07-16  Jordan Breeding  <jordan.breeding@mac.com>

	* database.cc (selector_to_certname): Make 't:' selector match
	exactly by default as well.

2005-06-25  Brian Downing <bdowning@lavos.net>

	* database.cc (selector_to_certname, complete): Makes 'b:'
	selector be interpreted as a glob instead of as a partial string
	match.

2005-07-16  Nathaniel Smith  <njs@pobox.com>

	* netsync.cc: Revert accidentally committed changes.

2005-07-16  Nathaniel Smith  <njs@pobox.com>

	* ChangeLog: Fix formatting.

2005-07-15  Matt Johnston  <matt@ucc.asn.au>

	* netsync.cc (rebuild_merkle_trees): bad_branch_certs is a set of cert
	hashes, not of revision idents.

2005-07-14  Nathaniel Smith  <njs@pobox.com>

	* database.cc (get_revision_cert_index): "reserve" and "resize"
	are different.

2005-07-14  Nathaniel Smith  <njs@pobox.com>

	* netsync.cc (process_delta_cmd): Remove meaningless comment.

2005-07-14  Nathaniel Smith  <njs@pobox.com>

	* database.hh: Pre-declare sqlite3_stmt, instead of including
	sqlite3.h.

2005-07-14  Derek Scherger  <derek@echologic.com>

	* commands.cc (lca,lcad,try_one_merge): call describe_revision for
	logging common ancestors
	(propagate): log final merged line after propagate completes
	to indicate that it actually worked and to be consistent with merge

2005-07-13  Derek Scherger  <derek@echologic.com>

	* ChangeLog: merge fixup

2005-07-13  Derek Scherger  <derek@echologic.com>

	* database.cc (debug): delete stale comment
	(delete_branch_named):
	(delete_tag_named):
	(clear): replace vprintf stuff with query parameters

2005-07-13  Nathaniel Smith  <njs@pobox.com>

	* contrib/ciabot_monotone.py (main): Optimistically run 'db
	migrate' before using database.

2005-07-13  Nathaniel Smith  <njs@pobox.com>

	* schema_migration.cc (migrate_monotone_schema)
	(migrator::migrate): Move the "nothing happened" check, and don't
	vacuum unless a migration occurred.

2005-07-13  Nathaniel Smith  <njs@pobox.com>

	* tests/t_restricted_diff_unchanged.at: New test.
	* testsuite.at: Add it.

2005-07-13  Graydon Hoare  <graydon@pobox.com>

	* rcs_import.cc (cvs_branch::cvs_branch): Initialize bools to false.

2005-07-13  Nathaniel Smith  <njs@pobox.com>

	* monotone.texi (Database): Document kill_tag_locally.

2005-07-13  Nathaniel Smith  <njs@pobox.com>

	* tests/t_kill_tag_locally.at, tests/t_ambiguous_tags.at: New
	tests.
	* testsuite.at: Add them.

2005-07-11  Graydon Hoare  <graydon@pobox.com>

	* AUTHORS: Add Jordan.
	* commands.cc (ls_tags): Do not uniquify tags.
	* constants.{cc,hh} (cvs_window): Change to time_t, tighten to 5 minutes.
	* rcs_import.cc (window): Remove.
	(note_type): Remove dead code.
	(is_sbr): Add test for synthetic branch roots.
	(cvs_commit::is_synthetic_branch_root): New test.
	(process_branch): Skip synthetic branch roots, push new branch
	before picking branch to mark, rather than after.
	(cvs_history::index_branchpoint_symbols): Handle vendor branches.
	(cvs_history::push_branch): Do not duplicate root on private branches.
	(import_branch): Fix up cluster inference.
	(cluster_consumer::consume_cluster): New invariant.
	* tests/t_cvsimport_drepper2.at: Modify to reflect fixes.

2005-07-11  Jordan Breeding  <jordan.breeding@mac.com>

	* commands.cc (db): New subcommand "kill_tag_locally"
	* database.{cc,hh} (delete_tag_named): New function.

2005-07-12  Nathaniel Smith  <njs@pobox.com>

	* schema_migration.cc (migrator::migrate): When there is nothing
	to be done, do nothing.

2005-07-12  Nathaniel Smith  <njs@pobox.com>

	* netsync.cc (rebuild_merkle_trees): Reduce memory usage a bit,
	and don't insert branch certs that the other side will just end up
	throwing away (reduces network traffic).

2005-07-12  Nathaniel Smith  <njs@pobox.com>

	* testsuite.at (NETSYNC_SERVE_START, NETSYNC_SERVE_N_START):
	Really, really really fix up quoting.  Really.
	I hope.

2005-07-12  Nathaniel Smith  <njs@pobox.com>

	* contrib/ciabot_monotone.py (config.project_for_branch): Clarify
	comment text for non-Python programmers.

2005-07-12  Nathaniel Smith  <njs@pobox.com>

	* testsuite.at (NETSYNC_SERVE_START, NETSYNC_SERVE_N_START): Fixup
	quoting.

2005-07-11  Nathaniel Smith  <njs@pobox.com>

	* crypto_tests.cc: New SHA1 correctness tests from Kaushik Veeraraghavan.
	* unit_tests.cc (init_unit_test_suite):
	* unit_tests.hh (add_crypto_tests):
	* Makefile.am (unit_tests_SOURCES): Call them.
	* AUTHORS: Add Kaushik Veeraraghavan.

2005-07-11  Nathaniel Smith  <njs@pobox.com>

	* tests/t_netsync_exclude_default.at: New test.
	* testsuite.at: Add it.
	(NETSYNC_SERVE_N_START, NETSYNC_SERVE_START): Use '*' as pattern
	when none is passed.

2005-07-11  Nathaniel Smith  <njs@pobox.com>

	* monotone.texi (Network): Tweak documentation for netsync
	commands.

2005-07-11  Nathaniel Smith  <njs@pobox.com>

	* app_state.{hh,cc} (exclude_patterns, add_exclude):
	* options.hh (OPT_EXCLUDE):
	* monotone.cc (coptions, cpp_main): New option --exclude.
	* commands.cc (pull, push, sync, serve): Accept it.
	(process_netsync_args): Implement it.
	* tests/t_netsync_exclude.at: New test.
	* testsuite.at: Add it.

2005-07-11  Timothy Brownawell  <tbrownaw@gmail.com>

	* options.hh, app_state.{hh,cc}, monotone.cc: New command specific
	option, "--exclude=x", puts arg into a vector app.excludes .
	Used by the netsync commands.
	* commands.cc (netsync commands): accept said option
		(process_netsync_args): Handle excludes.
	* monotone.texi: document it

2005-07-11  Timothy Brownawell  <tbrownaw@gmail.com>

	* interner.hh: make slightly faster

2005-07-11  Matt Johnston  <matt@ucc.asn.au>

	* hmac.cc: <string> not <string.h>

2005-07-11  Matt Johnston  <matt@ucc.asn.au>

	* keys.cc (encrypt_rsa): fix typo
	* hmac.{cc,hh}: store key as SymmetricKey, pass correctly to
	MAC_Filter

2005-07-10  Nathaniel Smith  <njs@pobox.com>

	* ChangeLog, configure.ac: Re-remove mysteriously revived
	jibberish.

2005-07-10  Nathaniel Smith  <njs@pobox.com>

	* tests/t_netsync_read_permissions.at: New test.
	* testsuite.at: Run it.
	* netsync.cc (set_session_key, dispatch_payload)
	(respond_to_auth_cmd): Refactor to key HMAC earlier, so error
	packets will get the right HMAC.

2005-07-10  Richard Levitte  <richard@levitte.org>

	* Makefile.am (monotone_CPPFLAGS, unit_tests_CPPFLAGS): Re-remove
	previously removed stuff.

	* ChangeLog, configure.ac: Revert accidentally-recommitted changes.

2005-07-10  Richard Levitte  <richard@levitte.org>

	* monotone.texi (Network), monotone.1: Mention the default port
	number.

2005-07-10  Matthew Gregan  <kinetik@orcon.net.nz>

	* configure.ac: Check for boost >= 1.32.

2005-07-09  Nathaniel Smith  <njs@pobox.com>

	* schema.sql (revision_ancestry__child, revision_certs__id,
	revision_certs__name_value): New indexes.
	* database.cc (dump, dump_table_cb, dump_index_cb): Include
	indexes in dumps.
	(database::database):
	* schema_migration.cc (migrate_monotone_schema)
	(migrate_client_to_add_indexes):
	* tests/t_migrate_schema.at: Corresponding migration gunk.

2005-07-09  Jordan Breeding  <jordan.breeding@mac.com>

	* Makefile.am (monotone_CPPFLAGS, unit_tests_CPPFLAGS):
	* configure.ac (BOOST_FIX_VERSION): Restrict boost compile kluges
	to boost 1.32.

2005-07-09  Nathaniel Smith  <njs@pobox.com>

	* schema_migration.cc (calculate_schema_id): Include indexes in
	the schema id.

2005-07-09  Nathaniel Smith  <njs@pobox.com>

	* ChangeLog, configure.ac: Revert accidentally-committed changes.

2005-07-09  Nathaniel Smith  <njs@pobox.com>

	* monotone.texi (Generating Keys): Make it a little clearer that
	we aren't necessarily recommending people store their passphrase
	in plaintext.

2005-07-08  Matt Johnston  <matt@ucc.asn.au>

	* propagate mainline to botan branch

	* constants.{cc,hh}: add sha1_digest_length as botan
	doesn't provide a convenient definition.
	* hmac.{cc,hh}: convert to use botan
	* keys.cc (encrypt_rsa, decrypt_rsa): use botan
	* transforms.{cc,hh}: use botan

2005-07-08  Matt Johnston  <matt@ucc.asn.au>

	* tests/t_normalized_filenames.at: expect exit code of 1 not 3 for
	"cat manifest" with a directory in MT/work
	* file_io.cc, netcmd.cc, transforms.cc, vocab.hh: revert changes which
	used swap() for strings and atomic types since strings are
	copy-on-write.

2005-07-08  Matt Johnston  <matt@ucc.asn.au>

	* file_io.cc (ident_existing_file): new function to calculate
	the ident of a file failing gracefully if it doesn't exist
	or is a directory.
	* file_io.hh (classify_manifest_paths,
	build_restricted_manifest_map): use ident_existing_file
	* ui.cc: cast to avoid compiler warnings

2005-07-07  Nathaniel Smith  <njs@pobox.com>

	* contrib/ciabot_monotone.py (Monotone.log): Fix to work with
	0.20.

2005-07-07  Nathaniel Smith  <njs@pobox.com>

	* Makefile.am (monotone_CPPFLAGS, unit_tests_CPPFLAGS): Add
	-DBOOST_REGEX_V4_CHAR_REGEX_TRAITS_HPP to work around g++
	4.0/boost 1.32.0 lossage.

2005-07-07  Vaclav Haisman  <V.Haisman@sh.cvut.cz>

	* Makefile.am: Compile fix for FreeBSD.

2005-07-07  Nathaniel Smith  <njs@pobox.com>

	* netsync.cc (process_hello_cmd, process_anonymous_cmd)
	(process_auth_cmd): Change permission checking -- always build
	merkle tree (even when a pure sink), send permission denied and
	abort whenever client tries to read/write a branch they don't have
	access to.

2005-07-07  Nathaniel Smith  <njs@pobox.com>

	* ChangeLog: fixup formatting.

2005-07-06  Matt Johnston  <matt@ucc.asn.au>

	* database.cc (assert_sqlite3_ok): database corruption and similar
	problems are errors, not invariants.

2005-07-06  Nathaniel Smith  <njs@pobox.com>

	* commands.cc (push, pull, sync): Fix --help description.

2005-07-06  Nathaniel Smith  <njs@pobox.com>

	* options.hh (OPT_SET_DEFAULT):
	* app_state.{hh,cc} (app_state::set_default):
	* monotone.cc (coptions, cpp_main): New option.
	* commands.cc (pull, push, sync): Accept it.
	(process_netsync_args): Use it.
	* tests/t_set_default.at, testsuite.at: New test.

2005-07-07  Matthew Gregan  <kinetik@orcon.net.nz>

	* win32/monotone.iss: Bump version number.

2005-07-05  Nathaniel Smith  <njs@pobox.com>

	* debian/rules (config.status): Use bundled sqlite.
	* debian/control (Build-Depends): Remove popt and sqlite.

2005-07-05  Nathaniel Smith  <njs@pobox.com>

	* NEWS: Add timestamp.  Barring unforeseen issues, this is 0.20.

2005-07-05  Nathaniel Smith  <njs@pobox.com>

	* Makefile.am (EXTRA_DIST): Include some missed contrib/ stuff.

2005-07-05  Nathaniel Smith  <njs@pobox.com>

	* po/monotone.pot: Regenerate for release.

2005-07-05  Nathaniel Smith  <njs@pobox.com>

	* configure.ac, debian/changelog, monotone.spec: Bump version
	number.
	* UPGRADE: Update for 0.20 release.

2005-07-05  Nathaniel Smith  <njs@pobox.com>

	* ChangeLog, NEWS, AUTHORS: Fixup Eric Anderson's email address.

2005-07-05  Nathaniel Smith  <njs@pobox.com>

	* monotone.texi (Database): Note that db kill_rev_locally also
	will trigger "unreferenced manifest" warnings from db check.

2005-07-05  Nathaniel Smith  <njs@pobox.com>

	* NEWS: Oops, 'automate select' was in 0.19 after all.

2005-07-05  Nathaniel Smith  <njs@pobox.com>

	* contrib/ciabot_monotone.py: Fix multiple collection support.

2005-07-05  Richard Levitte  <richard@levitte.org>

	* monotone.texi (Hooks): Add space after periods where there's
	a lack of space.

	* NEWS: Correct the blurb about
	get_netsync_{read,anonymous_read,write}_permitted

2005-07-05  Nathaniel Smith  <njs@codesourcery.com>

	* NEWS: Add more explicit note on how to upgrade.

2005-07-05  Nathaniel Smith  <njs@codesourcery.com>

	* NEWS: First cut at 0.20 release notes.

2005-07-03  Matthew Gregan  <kinetik@orcon.net.nz>

	* sqlite/*, Makefile.am: Import SQLite 3.2.2 from upstream.
	* sqlite/main.c: Compile fix.
	* sqlite/{callback.c,prepare.c}: Add new files.

2005-07-03  Matthew Gregan  <kinetik@orcon.net.nz>

	* sqlite/{sqlite3.h,tokenize.c} (sqlite3_complete_last): New
	function to find the last valid SQL statement in a string; based
	on sqlite3_complete.  This change should be offered upstream, but
	probably not before sqlite3_complete_last16 is implemented.
	* database.cc (database::load): Load and execute dump in chunks,
	fixes bug 13570.

2005-07-01  Eric Anderson  <anderse-monotone@cello.hpl.hp.com>

	* file_io.cc: Pre-allocate space for the file read so that the
	string doesn't have to be incrementally expanded during the read.

2005-07-01  Matthew Gregan  <kinetik@orcon.net.nz>

	* tests/t_cvsimport_drepper2.at: Canonicalise monotone output so
	that the test passes on Win32.

2005-06-30  Eric Kidd  <eric.kidd@dartmouth.edu>

	* contrib/monotone-import.pl: Changed $branch to
	$user_branch.  This script may need more work, but at least Perl
	compiles it now.

2005-06-30  Patrick Mauritz  <oxygene@studentenbude.ath.cx>

	* automate.cc, basic_io.hh, cert.cc, change_set.cc,
	cryptopp/config.h, cryptopp/integer.cpp, main.cc, merkle_tree.cc,
	merkle_tree.hh, monotone.cc, netcmd.cc, netsync.cc,
	netxx/osutil.h, packet.cc: Namespace and include file cleanup.

2005-06-29  Graydon Hoare  <graydon@pobox.com>

	* tests/t_cvsimport_drepper2.at: New test.
	* testsuite.at: Call it.

2005-06-23  Graydon Hoare  <graydon@pobox.com>

	* rcs_import.cc (import_cvs_repo): Put branch imports inside
	transaction blocks, add a couple tickers.

2005-06-22  Graydon Hoare  <graydon@pobox.com>

	* rcs_file.cc: Track file:line numbers, accept files which violate
	some lies in rcs file format.
	* rcs_import.cc (cvs_tree_walker):
	Warn rather than crash on parse errors.
	(cvs_history)
	(cvs_commit)
	(cvs_cluster)
	(prepared_revision)
	(import_branch)
	(import_cvs_repo): Support non-branch tags.

2005-06-21  Graydon Hoare  <graydon@pobox.com>

	* rcs_import.{cc,hh} (import_rcs_file): Rename to test_parse_rcs_file.
	* commands.cc (rcs_import): rename call.

2005-06-19  Graydon Hoare  <graydon@pobox.com>

	* rcs_import.cc: Rewrite change set inference logic.

2005-06-28  Roland Illig  <roland.illig@gmx.de>

	* app_state.cc: #include <unistd.h>, needed on NetBSD.

2005-06-28  Nathaniel Smith  <njs@codesourcery.com>

	* std_hooks.lua (ignore_file): Ignore vim swap files and emacs
	temp files.

2005-06-27  Nathaniel Smith  <njs@codesourcery.com>

	* INSTALL: Bump required version of Boost to 1.32.

2005-06-26  Matthew Gregan  <kinetik@orcon.net.nz>

	* app_state.cc (app_state::app_state()): Initialise no_merges to
	false so that 'log' will show merges by default (the recently
	added --no-merges option provides a means to disable the merge
	entries).

2005-06-26  Matthew Gregan  <kinetik@orcon.net>

	* tests/t_automate_stdio.at, tests/t_cvsimport_drepper.at,
	tests/t_selector_later_earlier.at: Further canonicalisation of
	monotone output to resolve test failures on Win32.

2005-06-25  Brian Campbell  <brian.p.campbell@dartmouth.edu>

	* commands.cc (CMD(db)): Added db kill_branch_locally command.
	* database.cc, database.hh (delete_branch_named): New function to
	delete all branch certs with a given branch name.
	* monotone.texi (Database): Added documentation for db
	kill_branch_locally.
	* tests/t_db_kill_branch_locally.at: New test for db
	kill_branch_locally.
	* testsuite.at: Add the test.
	* AUTHORS: Add myself.
	* ChangeLog: Change my email address on an old contribution to
	match my pubkey.

2005-06-24  Nathaniel Smith  <njs@codesourcery.com>

	* tests/t_db_kill_rev_locally.at: Clean up style.

2005-06-24  Nathaniel Smith  <njs@codesourcery.com>

	* unix/process.cc (process_spawn): Format log output correctly.

2005-06-24  Nathaniel Smith  <njs@codesourcery.com>

	* unix/process.cc (existsonpath): Reindent.  Add logging, and use
	'command -v' instead of 'which' (as per Matt Johnston's discovery
	that it is more portable).
	(process_spawn): Handle exec failure more properly.
	* tests/t_existsonpath.at: New test.
	* testsuite.at: Add it.

2005-06-25  Matthew Gregan  <kinetik@orcon.net.nz>

	* monotone.cc: Log correct locale set for LC_MESSAGES.

2005-06-24  Nathaniel Smith  <njs@codesourcery.com>

	* unix/process.cc: Remove tabs.

2005-06-24  Nathaniel Smith  <njs@codesourcery.com>

	* std_hooks.lua (get_preferred_merge2_command)
	(get_preferred_merge3_command): Move meld to the bottom of the
	default merge tool search order.  Also, use xemacs if it appears
	in $EDITOR, otherwise use emacs.
	* revision.cc (check_sane_history): Remove stale comment.

2005-07-05  Nathaniel Smith  <njs@codesourcery.com>

	* globish.cc (combine_and_check_globish): Don't add unnecessary
	{}'s.
	* tests/t_netsync_globs.at, testsuite.at: New test.

2005-07-04  Nathaniel Smith  <njs@codesourcery.com>

	* netcmd.cc (do_netcmd_roundtrip, test_netcmd_mac): Update for new
	chained_hmac object.
	* constants.hh (netsync_key_initializer): Update comment.
	* hmac.hh (hmac_length): Expose length of MACs.
	* hmac.cc: I() that it matches what CryptoPP wants to give.
	* netcmd.cc: I() that it matches the length hard-coded into the
	netsync protocol.
	* vocab.cc (verify(netsync_hmac_value)): Fix error message.

2005-07-04  Nathaniel Smith  <njs@codesourcery.com>

	* tests/t_netsync_defaults.at: Update for new var names.  All
	tests now pass.

2005-07-04  Nathaniel Smith  <njs@codesourcery.com>

	* lua.cc (hook_get_netsync_write_permitted): Fix typo.

2005-07-04  Nathaniel Smith  <njs@codesourcery.com>

	* globish.cc (globish_matcher_test): Add check for {foo} (no
	commas).

2005-07-04  Nathaniel Smith  <njs@codesourcery.com>

	* globish.cc (checked_globish_to_regex): Make the special case for
	the empty pattern, actually work.  Unit tests now pass.

2005-07-04  Nathaniel Smith  <njs@codesourcery.com>

	* netcmd.cc (test_netcmd_functions): Update for new anonymous/auth
	packet formats.

2005-07-04  Nathaniel Smith  <njs@codesourcery.com>

	* monotone.texi, monotone.1: Update for new glob stuff.
	* commands.cc (process_netsync_args, push, pull, sync, serve):
	'serve' always requires arguments, rather than falling back on db
	defaults.

2005-07-04  Nathaniel Smith  <njs@codesourcery.com>

	* commands.cc (process_netsync_args, push, pull, sync, serve):
	Adapt for patterns instead of regexen; slight refactoring too.

2005-07-03  Nathaniel Smith  <njs@codesourcery.com>

	* netsync.cc: Finally self-consistent.

2005-07-03  Nathaniel Smith  <njs@codesourcery.com>

	* netsync.hh (run_netsync_protocol): Fix prototype.

2005-07-03  Nathaniel Smith  <njs@codesourcery.com>

	* globish.hh: Document the empty pattern as never matching.
	* globish.cc (checked_globish_to_regex): Implement it.
	(globish_matcher_test): Check it.

2005-07-03  Nathaniel Smith  <njs@codesourcery.com>

	* monotone.texi (Network Service, Hooks):
	* testsuite.at:
	* tests/t_netsync_permissions.at:
	* tests/t_netsync_single.at: Update to match new
	get_netsync_write_permitted definition.

2005-07-03  Nathaniel Smith  <njs@codesourcery.com>

	* lua.{cc,hh} (hook_get_netsync_write_permitted): Don't take a
	branch argument; write permission is now all or none.  (It really
	was before anyway...)
	* netsync.cc: Update accordingly.

2005-07-03  Nathaniel Smith  <njs@codesourcery.com>

	* netsync.cc: More updating for pattern stuff; getting there...

2005-06-28  Nathaniel Smith  <njs@codesourcery.com>

	* netsync.cc: Update low-level functions to use include_pattern
	and exclude_pattern.

2005-06-28  Nathaniel Smith  <njs@codesourcery.com>

	* netcmd.{cc,hh} (read_anonymous_cmd, write_anonymous_cmd)
	(read_auth_cmd, write_auth_cmd): Take include_pattern and
	exclude_pattern arguments.

2005-06-28  Nathaniel Smith  <njs@codesourcery.com>

	* globish.{cc,hh}: New files.
	* Makefile.am (MOST_SOURCES): Add them.
	* transforms.{cc,hh}: Remove glob-related stuff.
	* unit_tests.{cc,hh}: Call globish unit tests.

2005-06-27  Nathaniel Smith  <njs@codesourcery.com>

	* transforms.cc (glob_to_regex, globs_to_regex, regexes_to_regex):
	Choose "regex" as standard spelling.  Clean up code, add code for
	handling sets, start improving tests (don't currently pass).
	* transforms.hh (glob_to_regex, globs_to_regex, regexes_to_regex):
	Prototype.

2005-06-28  Matt Johnston  <matt@ucc.asn.au>

	* constants.cc: increase db_version_cache_sz to 7 MB
	* netsync.cc: use a deque<string> rather than a single
	string buffer for outbuf.
	* netsync.cc (arm): only queue data when there is
	available space
	* AUTHORS: added Eric Anderson

2005-06-26  Matt Johnston  <matt@ucc.asn.au>

	* transforms.hh: remove extraneous #ifdef
	* hmac.cc, hmac.hh: actually add them

2005-06-26  Matt Johnston  <matt@ucc.asn.au>

	* netcmd.cc (netcmd::read, netcmd::write): change to using a HMACs
	chained by including the previous HMAC in the input data, rather
	than altering the key each time.
	* netcmd.cc ({read,write}_{data,delta}_cmd): use encode_gzip/decode_gzip
	  rather than raw xform.
	* hmac.{cc,hh}: new chained_hmac abstraction
	* Makefile.in: add them
	* netsync.cc: each session keeps a chained_hmac for read/write
	* transforms.hh: add a string variant for encode_gzip

2005-06-25  Nathaniel Smith  <njs@codesourcery.com>

	* netsync.cc: Tweak comment.

2005-06-25  Nathaniel Smith  <njs@codesourcery.com>

	* AUTHORS: Add Ethan Blanton <elb@elitists.net>.

2005-06-22  Nathaniel Smith  <njs@codesourcery.com>

	* netcmd.hh (netcmd::read, netcmd::write): Don't have defaults for
	key/hmac arguments.
	* netcmd.cc (do_netcmd_roundtrip): New function.
	(test_netcmd_functions): Use it.  Also, make work with hmac
	changes.
	(test_netcmd_mac): New test.
	(add_netcmd_tests): Call it.

2005-06-22  Nathaniel Smith  <njs@codesourcery.com>

	* netcmd.cc (read): Remove unused variable.
	* netsync.cc (call_server, process)
	(arm_sessions_and_calculate_probe, handle_read_available): Give
	better error message on bad_decode exceptions.

2005-06-22  Nathaniel Smith  <njs@codesourcery.com>

	* netcmd.cc, netsync.cc: Revert backwards compatibility code; 0.19
	and 0.20 can't be usefully compatible, and the code as it existed
	would cause real version mismatch error reporting to not work
	right.  (Old client with new server would give a generic "server
	disconnected" error message instead of something useful.)

2005-06-21  Nathaniel Smith  <njs@codesourcery.com>

	* netsync.cc (rebuild_merkle_trees): Fix FIXME comments to match
	reality.
	* tests/t_netsync_diffbranch.at: No longer a bug, remove
	priority.

2005-06-20  Nathaniel Smith  <njs@codesourcery.com>

	* monotone.texi (Hook Reference): Oops, missed a @ref.

2005-06-20  Nathaniel Smith  <njs@codesourcery.com>

	* monotone.texi (Default monotonerc): Rename section to...
	(Default hooks): ...this, to emphasize is still read even when a
	monotonerc exists.

2005-06-19  Richard Levitte  <richard@levitte.org>

	* Makefile.am: There's no reason for monotone.pdf or .dvi to
	depend on monotone.info, since they are built from the .texi
	files.  Also, make the monotone.html and html targets depend
	on version.texi and std_hooks.lua as well.

2005-06-18  Matt Johnston  <matt@ucc.asn.au>

	* INSTALL: fix typo, should be -Iboost_1_31_0 not -Iboost_1_31_2

2005-06-18  Riccardo Ghetta  <birrachiara@tin.it>
	* monotone.texi: include std_hooks.lua as an appendix and remove long
	lua excerpts from hook reference.
	* Makefile.am : make monotone.pdf/eps depend on monotone.info

2005-06-24  Matt Johnston  <matt@ucc.asn.au>

	* transforms.{cc,hh}: combine gzip and base64 in one
	pipe for pack()/unpack() to save memory
	* vocab.hh: add swap() to encodings/atomics
	* file_io.cc: use swap() to avoid copying

2005-06-21  Nathaniel Smith  <njs@codesourcery.com>

	* commands.cc (do_diff): Use calculate_arbitrary_change_set,
	instead of reimplementing it.

2005-06-21  Nathaniel Smith  <njs@codesourcery.com>

	* revision.cc (find_least_common_ancestor): Handle left == right
	case.
	* tests/t_diff_currev.at: Un-XFAIL.

2005-06-21  Nathaniel Smith  <njs@codesourcery.com>

	* netsync.cc (rebuild_merkle_trees): Fix FIXME comments to match
	reality.
	* tests/t_netsync_diffbranch.at: No longer a bug, remove
	priority.

2005-06-20  Nathaniel Smith  <njs@codesourcery.com>

	* monotone.texi (Hook Reference): Oops, missed a @ref.

2005-06-20  Nathaniel Smith  <njs@codesourcery.com>

	* monotone.texi (Default monotonerc): Rename section to...
	(Default hooks): ...this, to emphasize is still read even when a
	monotonerc exists.

2005-06-19  Richard Levitte  <richard@levitte.org>

	* Makefile.am: There's no reason for monotone.pdf or .dvi to
	depend on monotone.info, since they are built from the .texi
	files.  Also, make the monotone.html and html targets depend
	on version.texi and std_hooks.lua as well.

2005-06-18  Matt Johnston  <matt@ucc.asn.au>

	* INSTALL: fix typo, should be -Iboost_1_31_0 not -Iboost_1_31_2

2005-06-18  Riccardo Ghetta  <birrachiara@tin.it>
	* monotone.texi: include std_hooks.lua as an appendix and remove long
	lua excerpts from hook reference.
	* Makefile.am : make monotone.pdf/eps depend on monotone.info

2005-06-17  Matt Johnston  <matt@ucc.asn.au>

	* database.cc (database::execute()): truncate long query log messages
	before copying, saving memory.
	Patch from Eric Anderson <anderse-monotone@cello.hpl.hp.com>

2005-06-17  Riccardo Ghetta  <birrachiara@tin.it>
	Adds include()/includedir() to lua hooks and extend --rcfile
	* lua.cc: handle --rcfile with directories, implement
	include() and includedir()
	* testsuite.at, t_lua_includedir.at, t_rcfile_dir.at:
	test new functionality
	* monotone.texi: document all functions available to hook
	writers, including the new include() and includedir()

2005-06-16  Nathaniel Smith  <njs@codesourcery.com>

	* diff_patch.cc (merge_extents): Typo caught by anonymous reader.

2005-06-16  Nathaniel Smith  <njs@codesourcery.com>

	* commands.cc (cat): Account for being in a subdir in 'cat file
	REV PATH'.
	* tests/t_cat_file_by_name.at: Test.

2005-06-17  Richard Levitte  <richard@levitte.org>

	* app_state.cc (app_state::app_state()): Avoid a gcc warning by
	having the class members initialised in the same order they are
	defined in the class.

2005-06-16  Nathaniel Smith  <njs@pobox.com>

	* std_hooks.lua (ignore_file): Add Cons/SCons cache files to
	default ignore list.

2005-06-16  Matt Johnston  <matt@ucc.asn.au>

	* ui.cc: increase the divisor as required so that we don't get spurious
	screen updates when we're using the kilobyte/megabyte tickers

2005-06-15  Matt Johnston  <matt@ucc.asn.au>

	* monotone.texi: clarify some netsync parts of the tutorial

2005-06-15  Richard Levitte  <richard@levitte.org>

	* netsync.cc (struct session): Add a pattern regex cache.
	(analyze_ancestry_graph): Use the regex cache instead of the
	pattern string itself.  This is especially important when the
	pattern is used as an old-style collection.
	(process_hello_cmd): Recreate the pattern regex cache with the
	conversion of the pattern to a regex when it's used as an
	old-style collection.
	(process_auth_cmd): When the pattern changes, change the regex
	cache as well.

2005-06-14  Richard Levitte  <richard@levitte.org>

	* std_hooks.lua (get_preferred_merge2_command,
	get_preferred_merge3_command): EDITOR may be undefined.  In that
	case, os.getenv() returns nil, on which string.lower() chokes.
	It's much better to check for that and default to an empty
	string.

2005-06-11  Derek Scherger  <derek@echologic.com>

	* commands.cc (complete_command): log command expansion messages
	with L instead of P to reduce chatter
	(status): add --brief option and corresponding output
	(identify): add trailing space to comment gcc complains about
	* monotone.cc: fix comment typo and add additional details for
	command specific options
	* monotone.texi (Automation): list inventory status code
	combinations and descriptions
	* tests/t_status.at: new test of status command and --brief option
	* testsuite.at: add it

2005-06-11  Matt Johnston  <matt@ucc.asn.au>

	* commands.cc: revert should ignore the ignore hooks, otherwise bad
	things happen (revert a single ignored file, resultant empty ignore list
	reverts the whole working copy).
	* app_state.cc, app_state.hh: give set_restriction a flag to disregard
	file-ignore hooks.
	* tests/t_revert_restrict.at, testsuite.at: a test

2005-06-09  Riccardo Ghetta  <birrachiara@tin.it>

	* std_hooks.lua: make binary_file return nil on unreadable/empty files

2005-06-10  Joel Reed  <joelwreed@comcast.com>

	* commands.cc (CMD(cdiff)): Add OPT_DEPTH to command options.
	* t_restrictions.at: Add to testcase.

2005-06-09  Joel Reed  <joelwreed@comcast.com>

	* commands.cc (CMD(diff)): Add OPT_DEPTH back in, as it is used.
	* t_restrictions.at: Add to testcase to increase likelihood of
	keeping it around :)

2005-06-10  Richard Levitte  <richard@levitte.org>

	* commands.cc (CMD(diff)): Remove OPT_DEPTH, as it was never
	used.

2005-06-09  Richard Levitte  <richard@levitte.org>

	* monotone.texi (Merging): I assume that "apposite" was supposed
	to be "appropriate".

2005-06-09  Riccardo Ghetta  <birrachiara@tin.it>

	* diff_patch.cc/hh: honor the new manual_merge attribute
	* file_io.cc/hh: move here the guess_binary function
	* lua.cc: let guess_binary available to lua
	* std_hooks.lua: handle manual_merge as an add-time attribute and
	initialize by default make it true if the file appears to be binary.
	Make read_contents_of_file able to read "binary" files.
	* tests/t_merge_manual.at: tests new behaviour, superceding the
	old XFAIL t_merge_binary.at test.
	* monotone.texi: document changes, adding a small section on merging.

2005-06-07  Nathaniel Smith  <njs@codesourcery.com>

	* ChangeLog: Fixup.

2005-06-07  Nathaniel Smith  <njs@codesourcery.com>

	* monotone.texi (Storage and workflow): Attempt to thwart some
	common misconceptions.

2005-06-07  Nathaniel Smith  <njs@codesourcery.com>

	* netsync.cc (rebuild_merkle_trees): Add a comment describing how
	this code should work (and why it currently doesn't quite).

2005-06-05  Nathaniel Smith  <njs@codesourcery.com>

	* tests/t_bad_packets.at: Expect certs on a non-existent rev to
	fail.  Run db check instead.
	* commands.cc (complete): Let callers specify they're okay with
	non-existent revisions.
	(CMD(trusted)): So specify.

2005-06-05  Nathaniel Smith  <njs@codesourcery.com>

	* tests/t_tags.at: 'tag' on a non-existent revid should fail.
	* commands.cc (complete): Fail on non-existent revids.

2005-05-29  Nathaniel Smith  <njs@codesourcery.com>

	* tests/t_epoch.at: Typo.
	* tests/t_automate_certs.at, tests/t_selector_later_earlier.at:
	Throw in some calls to CANONICALISE, maybe this will help on
	Win32...

2005-06-04  Timothy Brownawell  <tbrownaw@gmail.com>

	* netsync.cc, netcmd.cc: Style cleanups (mostly whitespace).

2005-06-04  Timothy Brownawell  <tbrownaw@gmail.com>

	* netsync.cc (process_hello_cmd): Warn about collection/regex
	usage when talking to an old server.

2005-06-04  Derek Scherger  <derek@echologic.com>

	* commands.cc (update): update MT/work based on the changes
	between the chosen revision and the new merge revision
	* tests/t_update_with_pending_drop.at:
	* tests/t_update_with_pending_add.at:
	* tests/t_update_with_pending_rename.at: un-XFAIL and clean up now
	that things work

2005-06-04  Timothy Brownawell  <tbrownaw@gmail.com>

	* netcmd.{cc,hh}, netsync.cc: Move {read,write}_*_cmd_payload
	to netcmd::{read,write}_*_cmd .
	* netcmd.cc, netsync.cc: Compatibility infrastructure.
	* netsync.cc: Interoperate with v4 servers.

2005-06-03  Timothy Brownawell  <tbrownaw@gmail.com>

	* automate.cc (print_some_output): Fix compiler warning.

2005-06-04  Derek Scherger  <derek@echologic.com>

	* app_state.cc (app_state): initialize diffs to false; it seemed
	to be defaulting to true for me

2005-06-04  Derek Scherger  <derek@echologic.com>

	* tests/t_update_with_pending_drop.at:
	* tests/t_update_with_pending_add.at:
	* tests/t_update_with_pending_rename.at:
	* tests/t_restricted_commit_with_inodeprints.at: new bug reports
	* testsuite.at: call them

2005-06-04  Graydon Hoare  <graydon@pobox.com>

	* rcs_import.cc
	(note_state_at_branch_beginning): Move time back when
	there are known commits on a branch.

2005-06-03  Joel Reed  <joelwreed@comcast.com>

	* commands.cc, monotone.texi: provide --verbose option for
	monotone complete revision which adds date and author
	completion output
	* contrib/monotone.zsh_completion: use verbose output when
	completing revisions

2005-06-02  Graydon Hoare  <graydon@pobox.com>

	* rcs_import.cc
	(cvs_key::is_synthetic_branch_founding_commit): New field.
	(cvs_key::operator==): Handle synthetic case specially.
	(cvs_key::operator<): Likewise.
	(note_state_at_branch_beginning): Likewise.
	* tests/t_cvsimport_drepper.at: Converted bug testcase.
	* testsuite.at: Call it.

	* monotone.cc, commands.cc, options.hh
	(OPT_NO_MERGES, OPT_DIFFS): New options.
	* app_state.cc (app_state::no_merges, app_state::diffs): Likewise.
	* commands.cc (log): Honor no_merges, diffs.
	* contrib/color_logs.{sh,conf}: Helpers for reviewing work in a
	nice colorized, easy-to-read fashion.
	* contrib/colorize: A colorization script found on the net.

	* HACKING, ROADMAP: Expand a bit.
	* commands.cc (changes_summary::print): Change macro to helper fn.
	* contrib/monotone.el (monotone-cmd): Handle nil exit code.

2005-06-02  Joel Reed  <joelwreed@comcast.com>

	* commands.cc, database.cc, database.hh, vocab.hh, vocab_terms.hh:
	add complete key subcommand and provide --brief option of zsh/bash
	completion. See http://lists.gnu.org/archive/html/monotone-devel/2005-05/msg00461.html
	* tests/t_rebuild.at: add tests for complete key subcommand
	* monotone.texi: document new subcommand
	* contrib/monotone.zsh_completion: update for new complete key
	command, improve _monotone_existing_entries using new --depth=0
	option,	add revision completion for cert command, and a	bugfix
	for cat command

2005-06-01  Matt Johnston  <matt@ucc.asn.au>

	* tests/t_i18n_changelog.at: capitalise UTF-8 CHARSET to keep
	solaris happy.

2005-06-01  Timothy Brownawell  <tbrownaw@gmail.com>

	* netsync.cc (analyze_ancestry_graph): Try to fix segfault.
	Always accept tags.

2005-06-01  Timothy Brownawell  <tbrownaw@gmail.com>

	* netsync.cc (process_auth_cmd, analyze_ancestry_graph): Move
	write-permission checking to where it belongs, *after* we know
	exactly what we're checking permissions about. Drop things we
	don't want.

2005-06-01  Matt Johnston  <matt@ucc.asn.au>

	* tests/t_cvsimport_deleted_invar.at: don't use -C with tar
	* tests/t_i18n_file.at: capitalise CHARSET=UTF-8, seems more standard.
	* tests/t_merge_normalization_edge_case.at: use known-good output
	rather than using diff3 --merge

2005-05-31  Timothy Brownawell  <tbrownaw@gmail.com>

	* tests/t_epoch_server.at: fix typo
	* netsync.cc (session::process_auth_cmd): If no branches are allowed
	for writing, also check for write permissions to branch "" (needed
	for serving empty dbs). For sync, don't refuse connection if there
	are no readable branches (only do this for pull).

2005-05-31  Timothy Brownawell  <tbrownaw@gmail.com>

	* monotone.texi: Update documentation for get_netsync_*_permitted
	hooks to reflect that they now get individual branch names.

2005-05-31  Timothy Brownawell  <tbrownaw@gmail.com>

	* netsync.cc: session::rebuild_merkle_trees now takes a set of
	branches to include as an argument. On the server, calculate
	this set at the same time the get_netsync_*_permitted hooks are
	called; call said hooks on each branch individually.

2005-05-31  Timothy Brownawell  <tbrownaw@gmail.com>

	Remove old collection support in favor of using regexes exclusively.
	* netsync.cc (convert_pattern): Remove function.
	* (14 files): collections are unexist; do not mention (potential
	for confusion)
	* constants.cc: Increase netsync protocol version.
	* monotone.texi: Update documentation.
	* tests/t_epoch_unidirectional.at: Fix to sync subbranches.
	* commands.cc (CMD update): Fix usage check.
	* tests/t_select_cert.at: Fix to use --revision.

2005-05-30  Timothy Brownawell  <tbrownaw@gmail.com>

	* netsync.cc: Call note_netsync_*_received hooks in the order they're
	written to the db (for revisions, gives topological order).

2005-05-30  Timothy Brownawell  <tbrownaw@gmail.com>

	* lua.{cc,hh}: Replace note_netsync_commit with
	note_netsync_{revision,cert,pubkey}_received
	* packet.{cc,hh}: Callbacks for cert or key written to the database.
	* netsync.cc: Use said callbacks, call note_netsync_*_received hooks.
	* monotone.texi: Update documentation.

2005-05-30  Timothy Brownawell  <tbrownaw@gmail.com>

	* packet.{cc,hh}, netsync.cc: on_revision_written callback now takes
	the revision_id as an argument.
	* lua.{cc,hh}: New Lua hook, note_netsync_commit.
	* netsync.cc: At end of netsync session, call new hook for each
	revision received.
	monotone.texi: Document new hook.

2005-05-30  Richard Levitte  <richard@levitte.org>

	* commands.cc (CMD(checkout), CMD(cdiff), CMD(diff), CMD(log)):
	Remove '[--revision=REVISION]' from command argument synopsis,
	and add more text to the help to explain what happens when
	--revision options are used.
	(CMD(update)): Instead of the optional revision argument, use
	the --revision option.  Add information on what happens when the
	--revision option is used, and when it's not.

	* tests/t_add_stomp_file.at, tests/t_add_vs_commit.at,
	tests/t_annotate.at, tests/t_lf_crlf.at,
	tests/t_update_nonexistent.at, tests/t_update_off_branch.at,
	tests/t_update_to_revision.at: Update to use --revision with
	'monotone update'.

2005-05-30  Matt Johnston  <matt@ucc.asn.au>

	* netsync.cc: cosmetic linebreak tidying for "double-check the
	fingerprint" message.
	* main.cc: make it clearer that "unknown type" refers to an exception
	* monotone.cc: catch early informative_failures (due to charset
	problems etc)

2005-05-30  Matt Johnston  <matt@ucc.asn.au>

	* tests/t_fmerge.at: scrap all the diff3/ed, just compare it with
	known-good output.

2005-05-30  Timothy Brownawell  <tbrownaw@gmail.com>

	* revision.cc (toposort): Better algorithm.

2005-05-30  Matt Johnston  <matt@ucc.asn.au>

	* tests/t_fmerge.at: make sure we write the file with the ed script.

2005-05-30  Matt Johnston  <matt@ucc.asn.au>

	* testsuite.at: use "command -v" rather than "which", since
	Solaris doesn't give useful exit codes for "which".
	* tests/t_fmerge.at: don't use --merge with diff3, pipe to ed instead
	so we don't rely on gnu diff3.

2005-05-29  Timothy Brownawell  <tbrownaw@gmail.com>

	* contrib/monoprof.sh: Add support for using valgrind for
	heap profiling.

2005-05-28  Joel Reed  <joelwreed@comcast.com>

	* app_state.cc, app_state.hh, commands.cc, monotone.cc, options.h:
	add new --depth command, and rename log's --depth to --last
	* monotone.texi: update documentation
	* tests/t_log_depth.at, tests/t_log_depth_single.at: update
	log tests to use --last instead of --depth
	* tests/t_options.at, tests/t_restrictions.at: test usage of
	--depth for commands using restrictions
	* contrib/ciabot_monotone.py, contrib/monotone-notify.pl,
	contrib/monotone.el, contrib/monotone.zsh_completion,
	contrib/mtbrowse.sh: change all occurences of "depth" to "last"

2005-05-28  Timothy Brownawell  <tbrownaw@gmail.com>

	* netcmd.cc (read_netcmd): Reserve space in the buffer if needed,
		swap buffers instead of copying (memory savings for sync
		large files)
	* netsync.cc (session::arm): Don't clear the buffer (now done
		by read_netcmd).

2005-05-27  Timothy Brownawell  <tbrownaw@gmail.com>

	* netsync.cc: Allow REGEXes as well as collections.
		Fix out-of-branch ancestor handling.
	* tests/t_netsync_diffbranch.at: Remove bug report and XFAIL (fixed).
	* commands.cc: Update description fields for netsync commands.
	* monotone.texi: Update documentation.

2005-05-25  Timothy Brownawell  <tbrownaw@gmail.com>

	* tests/t_automate_stdio.at: Make it self-contained.

2005-05-25  Timothy Brownawell  <tbrownaw@gmail.com>

	* contrib/get_stdio.pl (new file): Perl script to parse the output from
	"mtn automate stdio". Used by...
	* tests/t_automate_stdio.at (new file): Test for "mtn automate stdio".
	* testsuite.at: Add it.

2005-05-25  Timothy Brownawell  <tbrownaw@gmail.com>

	* automate.cc ("automate stdio"): Fix block size limiting.
		Honor "output.flush()" in commands.

2005-05-24  Timothy Brownawell  <tbrownaw@gmail.com>

	* automate.cc: Fix buffering for "automate stdio"

2005-05-24  Timothy Brownawell  <tbrownaw@gmail.com>

	* automate.cc: Put back lost "automate certs".

2005-05-24  Matt Johnston  <matt@ucc.asn.au>

	* commands.cc (try_one_merge, CMD(merge), CMD(explicit_merge),
	CMD(propagate): allow --author flag.

2005-05-24  Timothy Brownawell  <tbrownaw@gmail.com>

	* automate.cc: Fix comment for automate stdio to match the code.
	* monotone.texi: Document ignored locations in automate stdio
	input as reserved.

2005-05-24  Riccardo Ghetta  <birrachiara@tin.it>

	* tests/t_merge_binary.at: new XFAIL test to cover monotone
	inclination to algorithmically merge binary files.

2005-05-24  Richard Levitte  <richard@levitte.org>

	* commands.cc (try_one_merge): Change 'rid' to 'merged_id'.

2005-05-23  Timothy Brownawell  <tbrownaw@gmail.com>

	Fix "automate stdio" input/output format according to ML discussion
	* automate.cc: changed: automate_stdio
		added: print_some_output, class my_stringbuf
	* constants.{cc,hh}: add constant for automate stdio block size
	* monotone.texi: update documentation

2005-05-23  Nathaniel Smith  <njs@codesourcery.com>

	* win32/terminal.cc (have_smart_terminal): Call _isatty on stderr,
	not stdout.

2005-05-23  Richard Levitte  <richard@levitte.org>

	* commands.cc (try_one_merge): Use the value of --date and
	--author if there are any.
	(CMD(merge), CMD(propagate), CMD(explicit_merge)): Change to
	accept --date and --author.

2005-05-23  Riccardo Ghetta  <birrachiara@tin.it>

	* selectors.cc/.hh, database.cc: add two new selectors:
	"earlier or equal than" and "later than".
	* lua.cc/.hh, std-hooks.lua: create a new "expand_date" hook
	* monotone.texi: document the changes
	* testsuite.at, tests/t_selector_later_earlier.at: add specific tests
	for the new selectors

2005-05-21  Richard Levitte  <richard@levitte.org>

	* Makefile.am: Make monotone.pdf and monotone.dvi depend on
	version.texi.

2005-05-21  Richard Levitte  <richard@levitte.org>

	* monotone.texi: Add a note about the --brief option with
	'monotone log', and restructure the synopsis since it was getting
	a bit silly with all possible variants.

2005-05-21  Richard Levitte  <richard@levitte.org>

	* commands.cc (log_certs): Add two arguments; a separator string
	to be used in front of the second to last cert for multi-valued
	cert types, a bool to say if each cert should be ended with a
	newline.  Overload with shortcuts.
	(CMD(log)): Use the --brief option and implement it using the
	shortcut variants of log_certs.
	* monotone.cc, options.hh: Add the --brief option (OPT_BRIEF
	internally).
	* sanity.cc, sanity.hh (struct sanity): Add the member variable
	and function to hold and set the brief flag.

2005-05-21  Matt Johnston  <matt@ucc.asn.au>

	* tests/t_short_opts.at: remove the saved MT/log message
	from the failed commit.
	* Makefile.am: MAKEINFOFALGS to MAKEINFOFLAGS

2005-05-21  Matt Johnston  <matt@ucc.asn.au>

	* commands.cc (commit): write the log message to MT/log
	during the commit, so it will be available later if the commit
	fails.
	* work.{cc,hh} (write_user_log): new function

2005-05-20  Nathaniel Smith  <njs@codesourcery.com>

	* contrib/mtbrowse.sh: New file.
	* contrib/README: Document it.  Also, document some missed files,
	and re-order listing.
	* Makefile.am (EXTRA_DIST): Add several missing contrib/ files.

2005-05-21  Grahame Bowland  <grahame@angrygoats.net>

	* automate.cc: (automate_certs) change "status" field
	to "signature". Check whether each cert is trusted, and
	output in the "trusted" field.
	* testsuite.at: add t_automate_certs.at
	* tests/t_automate_certs.at: Test that the output of
	"automate certs" is consistent, and that we exit with
	error when rev is incomplete or missing.
	* monotone.texi: update output documentation for
	"automate certs"

2005-05-20  Emile Snyder  <emile@alumni.reed.edu>

	* annotate.{hh,cc}: Rework to handle lineage dependent line
	mappings and lines which split from a single line in a parent
	revision into multiple lines in some descendent.  Fixes bug where
	some lines remained unannotated.  Fixes wrong assignment of lines
	bug.
	* tests/t_annotate.at: Check no-changes since addition of file
	case.
	* tests/t_annotate_lineage_dependent.at
	* tests/t_annotate_split_lines.at:  New tests.
	* testsuite.at: Add them.

2005-05-20  Nathaniel Smith  <njs@codesourcery.com>

	* monotone.texi (Network): Clarify that ports can be specified on
	the command line to serve/pull/push/sync.

2005-05-21  Matt Johnston  <matt@ucc.asn.au>

	* packet.cc (db_packet_writer::~impl, prerequisite.cleanup):
	add code to remove up circular dependencies between prerequisite
	and delayed_packet shared_ptrs upon destruction, so that unsatisified
	dependency warnings are printed.

2005-05-19  Matt Johnston  <matt@ucc.asn.au>

	* change_set.cc (merge_disjoint_analyses): handle the case where
	a file is dropped on both sides but re-added on one.
	* tests/t_drop_vs_dropadd.at: a test for it
	* testsuite.at

2005-05-19  Derek Scherger  <derek@echologic.com>

	* commands.cc (checkout): rearrange to use --revision option
	* monotone.1:
	* monotone.texi: document checkout --revision option
	* tests/t_attr.at:
	* tests/t_attributes.at:
	* tests/t_checkout_id_sets_branch.at:
	* tests/t_checkout_noop_on_fail.at:
	* tests/t_checkout_options.at:
	* tests/t_cwork.at:
	* tests/t_delete_dir.at:
	* tests/t_delete_dir_patch.at:
	* tests/t_empty_path.at:
	* tests/t_i18n_file_data.at:
	* tests/t_inodeprints_hook.at:
	* tests/t_inodeprints_update.at:
	* tests/t_largish_file.at:
	* tests/t_lf_crlf.at:
	* tests/t_monotone_up.at:
	* tests/t_netsync_defaults.at:
	* tests/t_netsync_set_defaults.at:
	* tests/t_persistent_server_revision.at:
	* tests/t_rename_added_in_rename.at:
	* tests/t_rename_dir_cross_level.at:
	* tests/t_rename_dir_patch.at:
	* tests/t_single_char_filenames.at:
	* tests/t_subdir_add.at:
	* tests/t_subdir_attr.at:
	* tests/t_subdir_drop.at:
	* tests/t_subdir_rename.at:
	* tests/t_subdir_revert.at:
	* tests/t_tags.at:
	* tests/t_update_off_branch.at:
	* tests/t_versions.at:
	* testsuite.at: add --revision option to checkout

2005-05-18  Richard Levitte  <richard@levitte.org>

	* ui.cc: Move the copyright and license section to the top of the
	file, and add an emacs mode specifier.
	* ui.cc (write_ticks): Change the counter ticker so the trailer
	comes at the end of the counter line instead of the title line.
	This is especially important for code that changes the trailer
	a little now and then.

2005-05-17  Grahame Bowland  <grahame@angrygoats.net>

	* commands.cc: add "automate certs ID" to the help string
	for the automate command
	* automate.cc: implement "automate certs". Add to the list
	of commands available through "automate stdio".
	* monotone.texi: document "automate certs"

2005-05-17  Nathaniel Smith  <njs@codesourcery.com>

	* monotone.texi (Network): Document 'serve' as taking more than
	one collection argument.

2005-05-15  Graydon Hoare  <graydon@pobox.com>

	* rcs_import.cc (note_state_at_branch_beginning): collect
	branch beginning states into a single synthetic commit.

2005-05-15  Graydon Hoare  <graydon@pobox.com>

	* rcs_import.cc: rewrite most of the branch logic to
	address issues raised in bugs 13032 and 13063.
	* tests/t_cvsimport_deleted_invar.at: un-XFAIL.

2005-05-16  Matt Johnston  <matt@ucc.asn.au>

	* commands.cc (commit): change scope of the transaction guard so that
	the transaction will fail before MT/revision is written (which could
	leave a non-committed revision/bad working dir).

2005-05-16  Grahame Bowland  <grahame@angrygoats.net>

	* monotone.texi: update "monotone log" documentation
	* commands.cc: fix "monotone log" when run with no --revision args

2005-05-15  Derek Scherger  <derek@echologic.com>

	* tests/t_update_with_blocked_rename.at: new test
	* testsuite.at: call it

2005-05-15  Derek Scherger  <derek@echologic.com>

	* netsync.cc (process_anonymous_cmd, process_auth_cmd): log
	details of permissions allowed/denied
	* tests/t_netsync_permissions.at: new test
	* testsuite.at: call it

2005-05-15  Richard Levitte  <richard@levitte.org>

	* contrib/monotone-notify.pl (revision_is_in_branch): Another
	place where --revision was missing.

2005-05-14  Timothy Brownawell  <tbrownaw@gmail.com>

	* contrib/monoprof.sh: Clean up variable definitions some.
		- Add option --datadir, should now be usable without editing
		variables to match system paths
		- Add option --setup, generates most of the needed files

2005-05-13  Timothy Brownawell  <tbrownaw@gmail.com>

	Add "monotone automate stdio", to let the automation interface
	take commands on standard input.
	* automate.cc: (automate_stdio) New function.
		(automate_command) Add it.
	* commands.cc: Add to description for "automate".
	* monotone.texi: Add to documentation.

2005-05-13  Joel Reed  <joelwreed@comcast.com>

	* tests/t_unidiff3.at: opps. forgot to add this file which
	should have been included as fix for bug 13072.

2005-05-13  Joel Reed  <joelwreed@comcast.com>

	* diff_patch.cc, transforms.cc, testsuite.at: Patch from
	drepper@redhat.com, who writes: "The attached patch should fix bug
	13072.  I have no idea why the code in transform.cc insists on
	adding an empty line in case the file is empty. Removing the code
	didn't cause any regressions in the test suite and the
	diff_patch.cc change corrects the output format.  A new test case
	is included as well."

2005-05-13  Joel Reed  <joelwreed@comcast.com>

	* automate.cc: add automate attributes command
	* commands.cc: add attributes subcommand helptext
	* contrib/monotone.zsh_completion: use automate attributes
	for completion of monotone attr and cleanup ignore files code
	* tests/t_automate_attributes.at: add testcase
	* testsuite.at: include new testcaes

2005-05-13  Jon Bright  <jon@siliconcircus.com>
	* testsuite.at (UNGZ): Change the way the ungzipping works on
	Win32, in the hope that test 206 will no longer be given invalid
	files.

2005-05-12  Derek Scherger  <derek@echologic.com>

	* automate.cc: bump version number to 1.0
	(struct inventory_item): add pre/post states
	(inventory_paths): remove obsolete function
	(inventory_pre_state, inventory_post_state, inventory_file_state,
	inventory_renames): add fancy new functions
	(automate_inventory): rework for new output format
	* manifest.{cc,hh} (classify_paths): rename to ...
	(classify_manifest_paths): ... this and work solely from manifest
	* monotone.texi: (Automation): update inventory docs
	* tests/t_automate_inventory.at: update for new format and add
	some more tests

2005-05-13  Matthew Gregan  <kinetik@orcon.net.nz>

	* HACKING: New file.  First pass at a brief document to help
	newcomers hack on monotone.

2005-05-12  Riccardo Ghetta <birrachiara@tin.it>

	* options.hh (OPT_MSGFILE): New option.
	* monotone.cc (message-file): New option.
	(cpp_main): Handle it.
	* app_state.{cc,hh} (set_message_file): New function.
	* commands.cc (commit): Accept and handle new option.
	* monotone.1, monotone.texi: Document it.
	* tests/t_commit_message_file.at: New test.
	* testsuite.at: Add it.

2005-05-12  Timothy Brownawell  <tbrownaw@gmail.com>

	* (20 files): Do not indent with both tabs and spaces in the same file.

2005-05-13  Ulrich Drepper  <drepper@redhat.com>

	* rcs_import.cc (process_one_hunk): Improve handling of corrupt
	RCS files.

2005-05-13  Matthew Gregan  <kinetik@orcon.net.nz>

	* testsuite.at: Fix typo error in Win32 kill logic that was
	causing the testsuites to hang on Win32 machines that don't have
	pskill installed.

2005-05-12  Matthew Gregan  <kinetik@orcon.net.nz>

	* file_io.cc (write_data_impl): Use portable boost::filesystem
	calls in place of unlink(2)/remove(2).

2005-05-12  Grahame Bowland  <grahame@angrygoats.net>

	* commands.cc: Modify the "log" command to accept multiple
	revisions on command line, and display the log for all
	of those revisions.

2005-05-11  Nathaniel Smith  <njs@codesourcery.com>

	* std_hooks.lua (ignore_file): Organize a bit more, add
	patterns for autotools cache files, and darcs, codeville, git
	metadata directories.

2005-05-11  Timothy Brownawell  <tbrownaw@gmail.com>

	* revision.cc (expand_dominators): Fix bitmap size-matching.
		(find_common_ancestor_for_merge): Do not wait for ancestors
		to be expanded to the beginning of time before expanding
		dominators. Requires above fix for correct behavior.
	* ChangeLog: Fix date on previous entry.

2005-05-11  Timothy Brownawell  <tbrownaw@gmail.com>

	* contrib/monoprof.sh: Add profiling test for "netsync large file".
		Add options to only run specific profile tests.

2005-05-11  Stanislav Karchebny <stanislav.karchebny@skype.net>

	* contrib/monotone-notify.pl: 'monotone log' takes a revision
	through the --revision= option.

2005-05-11  Richard Levitte  <richard@levitte.org>

	* contrib/monotone-notify.pl: Change all occurences of $symbol' to
	${symbol}' to avoid a confusing Perl warning.

2005-05-11  Joel Reed  <joelwreed@comcast.com>

	* contrib/monotone.zsh_completion: add zsh completion contrib.

2005-05-11  Matt Johnston  <matt@ucc.asn.au>

	* tests/t_add_intermediate_MT_path.at: remove the drop dir part
	* tests/t_delete_dir.at: add a note about re-enabling the above test
	* tests/t_cvsimport3.at: ignore stderr

2005-05-11  Matt Johnston  <matt@ucc.asn.au>

	* rcs_import.cc (find_branchpoint): if a branch is derived from two
	differing parent branches, take the one closest to the trunk.
	* tests/t_cvsimport3.at: add a test for cvs_importing where branches
	come off a vendor import.
	* testsuite.at: add it

2005-05-11  Nathaniel Smith  <njs@codesourcery.com>

	* work.cc (build_deletions): Disable delete_dir.

2005-05-11  Matthew Gregan  <kinetik@orcon.net.nz>

	* constants.cc (constants::bufsz): Increase buffer size.  Reduces
	the runtime to tests/t_netsync_largish_file.at by four to seven
	times on my test machines.

2005-05-10  Timothy Brownawell  <tbrownaw@gmail.com>

	* revision.cc: Make expand_{ancestors,dominators} twice as fast.
	Loop over revisions in the other direction so that changes at the
	frontier propogate fully in 1 pass, instead of one level at a time.

2005-05-10  Timothy Brownawell  <tbrownaw@gmail.com>

	* packet.{cc,hh}: Give packet_consumer and children a callback to call
	after writing out a revision.
	* netsync.cc: Use this callback to add a "revisions written" ticker,
	to provide user feedback while sanity checking.

2005-05-10  Timothy Brownawell  <tbrownaw@gmail.com>

	* ui.cc: Make tick_write_count take less horizontal space

2005-05-09  Nathaniel Smith  <njs@codesourcery.com>

	* AUTHORS: Give Riccardo his real name.
	* ChangeLog: Likewise.

2005-05-09  Riccardo Ghetta <birrachiara@tin.it>

	* std_hooks.lua: Support kdiff3.

2005-05-09  Matthew Gregan  <kinetik@orcon.net.nz>

	* lua.cc (loadstring, run_string): New parameter to identify the
	source of the Lua string being loaded.
	(add_{std,test}_hooks, load_rcfile): Pass an identity through.

2005-05-09  Matthew Gregan  <kinetik@orcon.net.nz>

	* monotone.cc: Absolutify and tilde expand pid file.

2005-05-09  Matthew Gregan  <kinetik@orcon.net.nz>

	* testsuite.at: Revert bogus changes committed in revision 9d478.

2005-05-09  Matt Johnston  <matt@ucc.asn.au>

	* commands.cc (pid_file): use fs::path .empty() rather than ==, since
	boost 1.31 doesn't seem to have the latter.

2005-05-08  Matthew Gregan  <kinetik@orcon.net.nz>

	* lua.cc (report_error, load{file,string}): New member functions.
	Error handling in call moved into report_error.
	(call): Call report_error.
	(run_{file,string}): Call load{file,string} member functions to
	load Lua code into the VM.  Allows us to report syntax errors when
	loading rc files.
	* testsuite.at: test_hooks.lua was calling nonexistent (obsolete)
	strfind function and failing silently.  The improved error
	reporting from Lua caught this and cause testsuite failures.

2005-05-08  Matthew Gregan  <kinetik@orcon.net.nz>

	* monotone.1: Document --pid-file option.  Also make some minor
	spelling and punctuation fixes.

2005-05-08  Timothy Brownawell  <tbrownaw@gmail.com>
	* app_state.cc: {read,write}_options now print a warning instead of
	failing on unreadable/unwritable MT/options .
	* tests/t_unreadable_MT.at: add matching test
	* testsuite.at: add test
	* tests/README: Mention that new tests must be added to testsuite.at
	* work.cc: (get_revision_id) Friendlier error message for
	unreadable MT/revision .

2005-05-08  Matthew Gregan  <kinetik@orcon.net.nz>

	* monotone.texi: Right words, wrong order.
	* testsuite.at: Drop pid mapping trickery, it doesn't work
	consistently.  We now try and use SysInternal's pskill to kill the
	process.  If pskill is not available, we fall back to the old
	'kill all monotone processes' method. These changes affect
	Win32/MingW only.

2005-05-07  Matthew Gregan  <kinetik@orcon.net.nz>

	* commands.cc (pid_file): Remove leftover debugging output.
	* configure.ac: Correct typos in TYPE_PID_T test.
	* testsuite.at: Use some trickery on MingW/Cygwin to map the
	Windows pid to the Cygwin pid.
	* win32/process.cc (process_wait): Correct return type.
	(process_spawn): Replace dropped cast on return.

2005-05-07  Matt Johnston <matt@ucc.asn.au>

	* change_set.cc: fix the code which skips deltas on deleted files,
	  it was looking at the merged filename not the ancestor
	  filename.
	* tests/t_drop_vs_patch_rename.at: a test for the above fix
	* testsuite.at: add it

2005-05-06 Timothy Brownawell <tbrownaw@gmail.com>

	* contrib/monoprof.sh: Add lcad test.
		Add options to pull/rebuild before profiling.

2005-05-06  Nathaniel Smith  <njs@codesourcery.com>

	* INSTALL: s/g++ 3.2 or 3.3/g++ 3.2 or later/.

2005-05-06  Nathaniel Smith  <njs@codesourcery.com>

	* monotone.1:
	* monotone.texi (Commands, Importing from CVS, RCS): Clarify
	cvs_import documentation on cvsroot vs. module issues.

2005-05-05  Richard Levitte  <richard@levitte.org>

	* AUTHORS: Add rghetta.

2005-05-05  Matthew Gregan  <kinetik@orcon.net.nz>

	* monotone.texi: Document --pid-file option for serve command.
	* app_state.{cc,hh} (set_pidfile, pidfile): New function, new
	member.
	* commands.cc (pid_file): New class.
	(CMD(serve)): Use pid_file.
	* monotone.cc (coptions, cppmain): Add command-specific option
	--pid-file.
	* options.hh (OPT_PIDFILE): New option.
	* {unix,win32}/process.cc (get_process_id): New function.
	(process_{spawn,wait,kill}): Use pid_t.
	* platform.hh (process_{spawn,wait,kill}): Use pid_t.
	(get_process_id): New function
	* configure.ac: Test for pid_t.
	* lua.cc (monotone_{spawn,wait,kill}_for_lua): Use pid_t.
	* testsuite.at: Update netsync kill functions to use pid file.
	* tests/t_netsync_sigpipe.at: Update to use pid file.
	* tests/t_netsync_single.at: Update to use pid file.

2005-05-04  Nathaniel Smith  <njs@codesourcery.com>

	* tests/t_monotone_up.at: New test.
	* testsuite.at: Add it.

2005-05-05  Matthew Gregan  <kinetik@orcon.net.nz>

	* work.cc: Use attr_file_name rather than hardcoded strings.

2005-05-04  Brian Campbell  <brian.p.campbell@dartmouth.edu>

	* contrib/monotone.el (monotone-vc-register): Fix arguments to
	monotone-cmd-buf, to make work.

2005-05-03  Nathaniel Smith  <njs@codesourcery.com>

	* file_io.cc (read_data_for_command_line): Check that file exists,
	if reading a file.

2005-05-04  Matthew Gregan  <kinetik@orcon.net.nz>

	* configure.ac: Add TYPE_SOCKLEN_T function from the Autoconf
	archive.
	* cryptopp/cryptlib.h (NameValuePairs): Change GetVoidValue from a
	pure virtual to an implemented (but never called) member function
	to work around build problem with GCC 4 on OS X 10.4
	* netxx/osutil.h: Include config.h, use new HAVE_SOCKLEN_T define
	to determine socklen_t type.

2005-05-03  Nathaniel Smith  <njs@codesourcery.com>

	* lua.cc (load_rcfile): Make a version that takes utf8 strings,
	and understands -.
	* app_state.cc (load_rcfiles): Use it.
	* file_io.{cc,hh} (absolutify_for_command_line): New function.
	* monotone.cc (cpp_main): Use it.
	* tests/t_rcfile_stdin.at: New test.
	* testsuite.at: Include it.

2005-05-03  Nathaniel Smith  <njs@codesourcery.com>

	* netsync.cc (load_epoch): Remove unused function.

2005-05-03  Matthew Gregan  <kinetik@orcon.net.nz>

	* tests/t_cvsimport_manifest_cycle.at: Add missing symbols.
	* tests/t_cvsimport_deleted_invar.at: Add new test.
	* testsuite.at: New test.

2005-05-03  Nathaniel Smith  <njs@codesourcery.com>

	* netsync.cc (run_netsync_protocol): Don't use the word
	"exception" in error messages.

2005-05-03  Nathaniel Smith  <njs@codesourcery.com>

	* UPGRADE: Fix version number.

2005-05-03  Nathaniel Smith  <njs@codesourcery.com>

	* debian/compat: New file.

2005-05-03  Nathaniel Smith  <njs@codesourcery.com>

	* UPGRADE: Mention upgrading from 0.18.
	* debian/copyright: Re-sync with AUTHORS.
	* win32/monotone.iss, monotone.spec, debian/changelog: Bump
	version numbers to 0.19.
	* NEWS: Finish updating for 0.19.

2005-05-03  Jon Bright  <jon@siliconcircus.com>
	* win32/monotone.iss: Bump version to 0.19

2005-05-03  Jon Bright  <jon@siliconcircus.com>
	* tests/t_automate_select.at: Use arithmetic comparison for
	checking output of wc, since wc pads its results with initial
	spaces on MinGW.

2005-05-03  Nathaniel Smith  <njs@codesourcery.com>

	* tests/t_cvsimport2.at: Pass correct module directory.

2005-05-02  Nathaniel Smith  <njs@codesourcery.com>

	* configure.ac: Bump version to 0.19.
	* NEWS: Tweaks.
	* Makefile.am (MOST_SOURCES): Add options.hh.
	(%.eps): Fix ps2eps calling convention.
	* po/monotone.pot: Regenerate.
	* testsuite.at (CHECK_SAME_CANONICALISED_STDOUT): New macro.

2005-05-02  Nathaniel Smith  <njs@codesourcery.com>

	* NEWS: More updates.
	* rcs_import.cc (store_manifest_edge): Fix some edge cases.
	* tests/t_cvsimport_manifest_cycle.at: Make work.  Un-XFAIL.

2005-05-01  Matt Johnston  <matt@ucc.asn.au>

	* diff_patch.cc (normalize_extents): broaden the condition when
	changes can be normalised.
	* tests/t_merge_6.at: now passes.

2005-05-01  Emile Snyder  <emile@alumni.reed.edu>

	* annotate.cc: Fix bug that njs pointed out when a merge has one
	side with no changes.  Be smarter about how we get parent
	file_id's to do file diffs; give another big speedup.
	* tests/t_annotate_copy_all.at: New test for the bug that is fixed.
	* testsuite.at: Add the new test.

2005-05-02  Richard Levitte  <richard@levitte.org>

	* tests/t_override_author_date.at: Adapt to the new way to give
	revision IDs to 'monotone log'.

2005-05-01  Richard Levitte  <richard@levitte.org>

	* monotone.texi: Document the change in 'monotone log'.

2005-05-01  Riccardo Ghetta <birrachiara@tin.it>

	* commands.cc (CMD(log)): Use --revision.

2005-05-02  Matt Johnston  <matt@ucc.asn.au>

	* netsync.cc (process_auth_cmd): make it clearer what the "unknown
	key hash" refers to.

2005-05-01  Richard Levitte  <richard@levitte.org>

	* commands.hh: Expose complete_commands().
	* commands.cc (explain_usage, command_options, process): Don't
	call complete_command().  Except the caller to have done that
	already.
	* monotone.cc (cpp_main): Start with completing the command after
	processing the options.  Use the result everywhere the command is
	required.  This avoids giving the user duplicate (or in some case,
	triplicate) messages about command expansion.

2005-04-30  Derek Scherger  <derek@echologic.com>

	* app_state.{cc,hh}: remove --all-files option
	* automate.cc: move inventory command and associated stuff here from ...
	* commands.cc: ... here, where it has been removed
	* monotone.1: relocate inventory command, remove --all-files option
	* monotone.cc: remove --all-files option
	* monotone.texi: relocate inventory documentation to automation
	section, remove --all-files option
	* tests/t_automate_inventory.at: renamed and updated for move to automate
	* testsuite.at: adjust for rename

2005-04-30  Derek Scherger  <derek@echologic.com>

	* Makefile.am (MOST_SOURCES): add restrictions.{cc,hh}
	* commands.cc (extract_rearranged_paths):
	(extract_delta_paths):
	(extract_changed_paths):
	(add_intermediate_paths):
	(restrict_path_set):
	(restrict_rename_set):
	(restrict_path_rearrangement):
	(restrict_delta_map):
	(calculate_restricted_rearrangement):
	(calculate_restricted_revision):
	(calculate_current_revision):
	(calculate_restricted_change_set): move to restrictions.{cc,hh}
	(maybe_update_inodeprints):
	(cat):
	(dodiff):
	(update): rename calculate_current_revision to
	calculate_unrestricted_revision
	* database_check.hh: update header guard #define
	* restrictions.{cc,hh}: add new files

2005-04-30  Nathaniel Smith  <njs@codesourcery.com>

	* commands.cc: Add a placeholder OPT_NONE for commands that don't
	take any command-specific options; use it everywhere.  Now the
	last argument to CMD never starts with %, and the last argument is
	always required to be present.

2005-04-30  Richard Levitte  <richard@levitte.org>

	* contrib/monotone-nav.el (mnav-rev-make): Move it so it's defined
	after the definition of the macro mnav-rev-id.  Otherwise, the
	byte compiler complains there is no setf method for mnav-rev-id.

2005-04-30  Nathaniel Smith  <njs@codesourcery.com>

	* monotone.texi (Database): Minor correction.

2005-04-30  Nathaniel Smith  <njs@codesourcery.com>

	* vocab.cc (trivially_safe_file_path): New function.
	(verify): Use it.
	(test_file_path_verification, test_file_path_normalization): Add a
	few more checks.

	* transforms.{cc,hh} (localized_as_string): New function.
	* {win32,unix}/inodeprint.cc (inodeprint_file): Use it, to avoid
	mkpath().

	* commands.cc (add_intermediate_paths): Hand-code intermediate
	path generator, taking advantage of normalization of file_path's,
	to avoid mkpath().

2005-04-29  Joel Rosdahl  <joel@rosdahl.net>

	* monotone.texi: Minor corrections.

2005-04-29  Nathaniel Smith  <njs@codesourcery.com>

	* commands.cc (ls_tags): Sort output.
	* tests/t_tags.at: Test that output is sorted.

2005-04-29  Derek Scherger  <derek@echologic.com>

	* commands.cc (struct file_itemizer): move to ...
	* work.hh (file_itemizer} ... here
	* work.cc (file_itemizer::visit_file} ... and here

2005-04-29  Emile Snyder  <emile@alumni.reed.edu>

	* annotate.cc (do_annotate_node): Stop doing expensive
	calculate_arbitrary_change_set when we already know we have parent
	and child revisions.  Cuts annotate run time in half.

2005-04-29  Nathaniel Smith  <njs@codesourcery.com>

	* commands.cc (update_inodeprints): Rename to...
	(refresh_inodeprints): ...this, so 'monotone up' continues to mean
	update.

	* monotone.texi (Inodeprints): Mention refresh_inodeprints in the
	Inodeprints section.

	* testsuite.at:
	* tests/t_update_inodeprints.at:
	* tests/t_refresh_inodeprints.at:
	* monotone.texi (Working Copy, Commands):
	* monotone.1: Update accordingly.

2005-04-29  Nathaniel Smith  <njs@codesourcery.com>

	* change_set.cc (dump_change_set): Don't truncate output.
	(invert_change_test): New unit test.
	(invert_change_set): Make it pass.  This fixes (some?)
	isect.empty() invariant failures.

	* NEWS: Start updating for 0.19.

	* revision.cc (check_sane_history): Make comment more
	informative.

2005-04-29  Grahame Bowland  <grahame@angrygoats.net>

	* netxx/types.h: Add new NetworkException type network
	issue not caused by calling program
	* netsync.cc: Catch Netxx::NetworkException and display
	as informative_error.
	* netxx/address.cxx: NetworkException for unparsable URIs.
	* netxx/datagram.cxx: NetworkException for connection failure.
	* netxx/resolve_getaddrinfo.cxx, resolve_gethostbyname.cxx:
	NetworkException when DNS resolution fails.
	* netxx/serverbase.cxx: NetworkException if unable to bind
	to server port.
	* netxx/streambase.cxx: NetworkException if unable to
	connect.

2005-04-28  Nathaniel Smith  <njs@codesourcery.com>

	* tests/t_netsync_error.at: New test.
	* testsuite.at: Add it.

2005-04-28  Nathaniel Smith  <njs@codesourcery.com>

	* tests/t_rename_attr.at: Fix a bit; also test that rename refuses
	to move a file to a name that already has attrs.
	* work.cc (build_rename): Cleanup a bit; refuse to move a file to
	a name that already has attrs.

	* monotone.texi (Working Copy): Document explicitly that "drop"
	and "rename" do not modify the filesystem directly, and do affect
	attributes.

2005-04-28  Derek Scherger  <derek@echologic.com>

	* commands.cc (get_work_path):
	(get_revision_path):
	(get_revision_id):
	(put_revision_id):
	(get_path_rearrangement):
	(remove_path_rearrangement):
	(put_path_rearrangement):
	(update_any_attrs):
	(get_base_revision):
	(get_base_manifest): move to work.{cc,hh}
	(update): indicate optional revision with [ and ]
	(explicit_merge): indicate optional ancestor with [ and ]

	* manifest.{cc,hh} (extract_path_set): move here from work.{cc,hh}
	* revision.{cc,hh} (revision_file_name): move to work.{cc,hh}

	* work.{cc,hh} (extract_path_set): move to manifest.{cc,hh}
	(get_work_path):
	(get_path_rearrangement):
	(remove_path_rearrangement):
	(put_path_rearrangement):
	(get_revision_path):
	(get_revision_id):
	(put_revision_id):
	(get_base_revision):
	(get_base_manifest):
	(update_any_attrs): move here from commands.cc

2005-04-28  Derek Scherger  <derek@echologic.com>

	* ChangeLog:
	* Makefile.am
	* tests/t_automate_select.at: merge fixups

2005-04-28  Emile Snyder <emile@alumni.reed.edu>

	* annotate.cc: Fix broken build after propagate from .annotate
	branch to mainline.  The lcs stuff was changed to use
	quick_allocator, so our use of it had to change as well.

2005-04-28  Emile Snyder  <emile@alumni.reed.edu>

	* commands.cc: New command "annotate"
	* annotate.{cc,hh}: New files implement it.
	* Makefile.am: Build it.
	* monotone.texi: Document it.
	* tests/t_annotate.at:
	* tests/t_annotate_add_collision.at:
	* tests/t_annotate_branch_collision.at:
	* testsuite.at: Test it.

2005-04-28  Matt Johnston  <matt@ucc.asn.au>

	* tests/t_merge_6.at: narrow the testcase down considerably.

2005-04-28  Matt Johnston  <matt@ucc.asn.au>

	* tests/t_merge_6.at, testsuite.at: add a new test for the case where
	duplicate lines appear in a file during a merge. This testcase can
	be correctly handled by merge(1).

2005-04-28  Matt Johnston  <matt@ucc.asn.au>

	* tests/t_i18n_file.at, transforms.cc: OS X expects all paths to be
	utf-8, don't try to use other encodings in the test.

2005-04-28  Richard Levitte  <richard@levitte.org>

	* tests/t_automate_select.at: silly ignores not needed any more.

2005-04-28  Richard Levitte  <richard@levitte.org>

	* commands.cc (complete): Don't talk of there really was no
	expansion.

2005-04-28  Richard Levitte  <richard@levitte.org>

	* commands.cc, commands.hh: Selector functions and type are moved
	to...
	* selectors.cc, selectors.hh: ... these files.
	* database.cc, database.hh: Adapt to this change.
	* automate.cc (automate_select): New function, implements
	'automate select'.
	(automate_command): Use it.
	* monotone.texi (Automation): Document it.

	* tests/t_automate_select.at: New test.
	* testsuite.at: Use it.

	* Makefile.am (MOST_SOURCES): reorganise.  Add selectors.{cc,hh}.

2005-04-27  Derek Scherger  <derek@echologic.com>

	* commands.cc (ls_unknown): remove unneeded braces
	(struct inventory_item): new struct for tracking inventories
	(print_inventory): removed old output functions
	(inventory_paths): new functions for paths, data and renames
	(inventory): rework to display two column status codes
	* monotone.texi (Informative): update for new status codes
	* tests/t_inventory.at: update for two column status codes

2005-04-27  Richard Levitte  <richard@levitte.org>

	* quick_alloc.hh: Define QA_SUPPORTED when quick allocation is
	supported.
	* sanity.hh: Only defined the QA(T) variants of checked_index()
	when QA_SUPPORTED is defined.

2005-04-27  Joel Reed  <joelwreed@comcast.com>

	* work.cc: on rename move attributes as well.
	* tests/t_rename_attr.at: No longer a bug.

2005-04-27  Nathaniel Smith  <njs@codesourcery.com>

	* monotone.texi (Working Copy, Commands): Document update_inodeprints.
	* monotone.1: Likewise.

	* tests/t_update_inodeprints.at: New test.
	* testsuite.at: Add it.

2005-04-27  Richard Levitte  <richard@levitte.org>

	* database.cc (selector_to_certname): Add a case for
	commands::sel_cert.

2005-04-27  Richard Levitte  <richard@levitte.org>

	* sanity.hh: Add a couple of variants of checked_index() to
	accomodate for indexes over vector<T, QA(T)>.

	* commands.hh: Add new selector to find arbitrary cert name and
	value pairs.  The syntax is 'c:{name}={value}'.
	* commands.cc (decode_selector): Recognise it.
	* database.cc (complete): Parse it.
	* std_hooks.lua (expand_selector): Add an expansion for it.
	* monotone.texi (Selectors): Document it.

	* tests/t_select_cert.at: Add test.
	* testsuite.at: Use it.

2005-04-27  Matt Johnston  <matt@ucc.asn.au>

	* vocab.cc (verify(file_path)): don't find() twice.
	* change_set.cc (extend_state): remove commented out line

2005-04-27  Matthew Gregan  <kinetik@orcon.net.nz>

	* tests/t_cvsimport_manifest_cycle.at: New test.
	* testsuite.at: Add test.
	* AUTHORS: Add self.

2005-04-27  Nathaniel Smith  <njs@codesourcery.com>

	* AUTHORS: Add Timothy Brownawell.

2005-04-27  Timothy Brownawell  <tbrownaw@gmail.com>

	* ui.{cc,hh}: Delegate tick line blanking to tick_writers.

2005-04-27  Matt Johnston  <matt@ucc.asn.au>

	* change_set.cc (extend_state): don't mix find() and insert() on
	the path_state, to avoid hitting the smap's worst-case.

2005-04-27  Matt Johnston  <matt@ucc.asn.au>

	* change_set.cc (confirm_proper_tree): move things out of the loops
	for better performance.

2005-04-26  Nathaniel Smith  <njs@codesourcery.com>

	* work.cc: Don't include boost/regex.hpp.

2005-04-26  Nathaniel Smith  <njs@codesourcery.com>

	* manifest.cc, inodeprint.cc: Don't include boost/regex.hpp.

2005-04-26  Nathaniel Smith  <njs@codesourcery.com>

	* sqlite/vdbeaux.c (MAX_6BYTE): Apply patch from
	http://www.sqlite.org/cvstrac/chngview?cn=2445.  It shouldn't
	affect monotone's usage, but just in case.

2005-04-26  Nathaniel Smith  <njs@codesourcery.com>

	* rcs_import.cc (struct cvs_key, process_branch): Fix
	indentation.
	(build_change_set): Handle the case where a file is "added dead".

	* tests/t_cvsimport2.at: Un-XFAIL, improve description.

2005-04-26  Richard Levitte  <richard@levitte.org>

	* monotone.cc (cpp_main): Count the number of command specific
	options exist.  If there is any, add a title for them.

2005-04-26  Matt Johnston  <matt@ucc.asn.au>

	* change_set.cc (analyze_rearrangement): get rid of damaged_in_first
	since it is not used.

2005-04-26  Matt Johnston  <matt@ucc.asn.au>

	* monotone.texi: fix mashed up merge of docs for kill_rev_locally
	and db check.

2005-04-26  Richard Levitte  <richard@levitte.org>

	* monotone.cc, commands.cc: Make some more options global.

2005-04-25  Nathaniel Smith  <njs@codesourcery.com>

	* tests/t_i18n_file_data.at: New test.
	* testsuite.at: Add it.

2005-04-25  Nathaniel Smith  <njs@codesourcery.com>

	* automate.cc (automate_parents, automate_children)
	(automate_graph): New automate commands.
	(automate_command): Add them.
	* commands.cc (automate): Synopsisfy them.
	* monotone.texi (Automation): Document them.
	* tests/t_automate_graph.at, test/t_parents_children.at: Test
	them.
	* testsuite.at: Add the tests.

	* tests/t_automate_ancestors.at: Remove obsolete comment.

2005-04-24  Derek Scherger  <derek@echologic.com>

	* tests/t_rename_file_to_dir.at:
	* tests/t_replace_file_with_dir.at:
	* tests/t_replace_dir_with_file.at: new bug reports
	* testsuite.at: include new tests

2005-04-24  Derek Scherger  <derek@echologic.com>

	* app_state.{cc,hh} (app_state): add all_files flag to the constructor
	(set_all_files): new method for setting flag

	* basic_io.{cc,hh} (escape): expose public method to quote and
	escape file_paths
	(push_str_pair): use it internally

	* commands.cc (calculate_restricted_rearrangement): new function
	factored out of calculate_restricted_revision
	(calculate_restricted_revision): use new function
	(struct unknown_itemizer): rename to ...
	(struct file_itemizer): ... this; use a path_set rather than a
	manifest map; build path sets of unknown and ignored files, rather
	than simply printing them
	(ls_unknown): adjust to compensate for itemizer changes
	(print_inventory): new functions for printing inventory lines from
	path sets and rename maps
	(inventory): new command for printing inventory of working copy
	files

	* manifest.cc (inodeprint_unchanged): new function factored out
	from build_restricted_manifest_map
	(classify_paths): new function to split paths from an old manifest
	into unchanged, changed or missing sets for inventory
	(build_restricted_manifest_map): adjust to use
	inodeprint_unchanged
	* manifest.hh (classify_paths): new public function

	* monotone.1: document new inventory command and associated
	--all-files option

	* monotone.cc: add new --all-files option which will be specific
	to the inventory command asap

	* monotone.texi (Informative): document new inventory command
	(Commands): add manpage entry for inventory
	(OPTIONS): add entries for --xargs, -@ and --all-files

	* tests/t_status_missing.at: remove bug priority flag
	* tests/t_inventory.at: new test
	* testsuite.at: include new test

2005-04-24  Nathaniel Smith  <njs@codesourcery.com>

	* monotone.texi (Database): Document 'db kill_rev_locally'.

2005-04-24  Nathaniel Smith  <njs@codesourcery.com>

	* ChangeLog: Fixup after merge.

2005-04-24  Nathaniel Smith  <njs@codesourcery.com>

	* manifest.cc (build_restricted_manifest_map): Careful to only
	stat things once on the inodeprints fast-path.
	(read_manifest_map): Hand-code a parser, instead of using
	boost::regex.
	* inodeprint.cc (read_inodeprint_map): Likewise.

2005-04-23  Derek Scherger  <derek@echologic.com>

	* (calculate_restricted_revision): remove redundant variables,
	avoiding path_rearrangement assignments and associated sanity
	checks
	(calculate_current_revision): rename empty to empty_args for
	clarity

2005-04-23  Derek Scherger  <derek@echologic.com>

	* commands.cc (calculate_base_revision): rename to ...
	(get_base_revision): ... this, since it's not calculating anything
	(calculate_base_manifest): rename to ...
	(get_base_manifest): ... this, and call get_base_revision
	(calculate_restricted_revision): call get_base_revision and remove
	missing files stuff
	(add):
	(drop):
	(rename):
	(attr): call get_base_manifest
	(ls_missing):
	(revert): call get_base_revision
	* manifest.{cc,hh} (build_restricted_manifest_map): don't return
	missing files and don't produce invalid manifests; do report on
	all missing files before failing

2005-04-23  Derek Scherger  <derek@echologic.com>

	* app_state.cc:
	* database.cc:
	* file_io.{cc, hh}: fix bad merge

2005-04-23  Nathaniel Smith  <njs@codesourcery.com>

	* database.cc (put_key): Check for existence of keys with
	conflicting key ids, give more informative message than former SQL
	constraint error.

2005-04-23  Nathaniel Smith  <njs@codesourcery.com>

	* transforms.cc (filesystem_is_ascii_extension_impl): Add EUC to
	the list of ascii-extending encodings.

	* tests/t_multiple_heads_msg.at: Make more robust, add tests for
	branching.

2005-04-23  Nathaniel Smith  <njs@codesourcery.com>

	* app_state.cc (restriction_includes): Remove some L()'s that were
	taking 5-6% of time in large tree diff.

2005-04-23  Nathaniel Smith  <njs@codesourcery.com>

	* file_io.{cc,hh} (localized): Move from here...
	* transforms.{cc,hh} (localized): ...to here.  Add lots of gunk to
	avoid calling iconv whenever possible.

2005-04-23  Richard Levitte  <richard@levitte.org>

	* monotone.cc, options.hh: Move the option numbers to options.hh,
	so they can be easily retrieved by other modules.
	* monotone.cc: split the options table in global options and
	command specific options.  The former are always understood, while
	the latter are only understood by the commands that declare it
	(see below).
	(my_poptStuffArgFile): There's no need to keep a copy of the
	stuffed argv.  This was really never a problem.
	(coption_string): New function to find the option string from an
	option number.
	(cpp_main): Keep track of which command-specific options were
	given, and check that the given command really uses them.  Make
	sure that when the help is written, only the appropriate command-
	specific options are shown.  We do this by hacking the command-
	specific options table.
	Throw away sub_argvs, as it's not needed any more (and realy never
	was).

	* commands.cc: Include options.hh to get the option numbers.
	(commands_ops): New structure to hold the option
	numbers used by a command.
	(commands): Use it.
	(command_options): Function to get the set of command-specific
	options for a specific command.
	(CMD): Changed to take a new parameter describing which command-
	specific options this command takes.  Note that for commands that
	do not take command-specific options, this new parameter must
	still be given, just left empty.
	Update all commands with this new parameter.
	* commands.hh: Declare command_options.

	* tests/t_automate_heads.at: 'automate heads' never used the value
	of --branch.
	* tests/t_sticky_branch.at: and neither did 'log'...
	* tests/t_update_missing.at: nor did 'add'...

2005-04-23  Matthew Gregan  <kinetik@orcon.net.nz>

	* tests/t_diff_currev.at: Use CHECK_SAME_STDOUT.

2005-04-23  Matthew Gregan  <kinetik@orcon.net.nz>

	* tests/t_diff_currev.at: New test.
	* testsuite.at: Add new test.

2005-04-22  Christof Petig <christof@petig-baender.de>

	* sqlite/*: update to sqlite 3.2.1

2005-04-22  Nathaniel Smith  <njs@codesourcery.com>

	* manifest.cc (build_restricted_manifest_map): Fixup after merge
	-- use file_exists instead of fs::exists.

2005-04-22  Derek Scherger  <derek@echologic.com>

	* manifest.{cc,hh} (build_restricted_manifest_map): keep and
	return a set of missing files rather than failing on first missing
	file
	* commands.cc (calculate_restricted_revision): handle set of
	missing files
	* revision.hh: update comment on the format of a revision
	* tests/t_status_missing.at: un-XFAIL and add a few tests

2005-04-22  Nathaniel Smith  <njs@codesourcery.com>

	* vocab.cc (verify(file_path), verify(local_path)): Normalize
	paths on the way in.
	* tests/t_normalized_filenames.at: Fix to match behavior
	eventually declared "correct".

2005-04-22  Nathaniel Smith  <njs@codesourcery.com>

	* vocab.{cc,hh}: Make verify functions public, make ATOMIC(foo)'s
	verify function a friend of foo, add ATOMIC_NOVERIFY macro, add
	long comment explaining all this.
	* vocab_terms.hh: Add _NOVERIFY to some types.

2005-04-22  Nathaniel Smith  <njs@codesourcery.com>

	* file_io.{cc,hh} (localized): Take file_path/local_path instead
	of string; expose in public interface.  Adjust rest of file to
	match.
	(walk_tree): Don't convert the (OS-supplied) current directory
	from UTF-8 to current locale.

	* transforms.{cc,hh} (charset_convert): Be more informative on
	error.
	(calculate_ident): Localize the filename, even on the fast-path.
	Also assert file exists and is not a directory, since Crypto++
	will happily hash directories.  (They are like empty files,
	apparently.)

	* manifest.cc (build_restricted_manifest_map): Use file_exists
	instead of fs::exists, to handle localized paths.
	* {win32,unix}/inodeprint.cc (inodeprint_file): Use localized
	filenames to stat.

	* tests/t_i18n_file.at: Rewrite to work right.

	* tests/t_normalized_filenames.at: New test.
	* testsuite.at: Add it.
	* vocab.cc (test_file_path_verification): MT/path is not a valid
	file_path either.
	(test_file_path_normalization): New unit-test.

2005-04-22  Joel Reed  <joelwreed@comcast.net>

	* work.cc (build_deletions) : on drop FILE also drop attributes.
	* tests/t_drop_attr.at : test for success now, fixed bug.

2005-04-22  Jon Bright <jon@siliconcircus.com>
	* monotone.texi: Changed all quoting of example command lines to
	use " instead of ', since this works everywhere, but ' doesn't
	work on Win32

2005-04-21  Jeremy Cowgar  <jeremy@cowgar.com>

	* tests/t_multiple_heads_msg.at: Now checks to ensure 'multiple head'
	  message does not occur on first commit (which creates a new head
	  but not multiple heads).
	* commands.cc (CMD(commit)): renamed head_size to better described
	  old_head_size, now checks that old_head_size is larger than 0 as
	  well otherwise, on commit of a brand new project, a new head was
	  detected and a divergence message was displayed.

2005-04-21  Richard Levitte  <richard@levitte.org>

	* commands.cc (ALIAS): refactor so you don't have to repeat all
	the strings given to the original command.
	(ALIAS(ci)): added as a short form for CMD(commit).

	* Makefile.am (%.eps): create .eps files directly from .ps files,
	using ps2eps.

2005-04-21 Sebastian Spaeth <Sebastian@SSpaeth.de>

	* monotone.texi: add command reference docs about kill_rev_locally

2005-04-21  Nathaniel Smith  <njs@codesourcery.com>

	* change_set.cc (apply_path_rearrangement_can_fastpath)
	(apply_path_rearrangement_fastpath)
	(apply_path_rearrangement_slowpath, apply_path_rearrangement):
	Refactor into pieces, so all versions of apply_path_rearrangement
	can take a fast-path when possible.

2005-04-21  Jeremy Cowgar  <jeremy@cowgar.com>

	* commands.cc: Renamed maybe_show_multiple_heads to
	  notify_if_multiple_heads, renamed headSize to head_size for
	  coding standards/consistency.
	* tests/t_multiple_heads_msg.at: Added to monotone this time.

2005-04-20  Jeremy Cowgar  <jeremy@cowgar.com>

	* commands.cc: Added maybe_show_multiple_heads, update now notifies
	  user of multiple heads if they exist, commit now notifies user
	  if their commit created a divergence.
	* tests/t_multiple_heads_msg.at: Added
	* testsuite.at: Added above test

2005-04-20  Nathaniel Smith  <njs@codesourcery.com>

	* Makefile.am (EXTRA_DIST): Put $(wildcard) around "debian/*", so
	it will actually work.

2005-04-20  Nathaniel Smith  <njs@codesourcery.com>

	* Makefile.am (EXTRA_DIST): Include tests, even when not building
	packages out in the source directory.

2005-04-20  Matthew Gregan  <kinetik@orcon.net.nz>

	* commands.cc (kill_rev_locally): Move up with rest of non-CMD()
	functions.  Mark static.  Minor whitespace cleanup.
	* commands.hh (kill_rev_locally): Declaration not needed now.

2005-04-20 Sebastian Spaeth <Sebastian@SSpaeth.de>
	* automate.cc: fix typo, add sanity check to avoid empty r_id's
	bein passed in. The automate version was bumped to 0.2 due to
	popular request of a single person.
	* t_automate_ancestors.at: adapt test; it passes now

2005-04-20 Sebastian Spaeth <Sebastian@SSpaeth.de>
	* testuite.at:
	* t_automate_ancestors.at: new test; automate ancestors. This is still
	_failing_ as a) it outputs empty newlines when no ancestor exists and
	b) does not output all ancestors if multiple ids are supplied as input

2005-04-20 Sebastian Spaeth <Sebastian@SSpaeth.de>

	* commands.cc:
	* automate.cc: new command: automate ancestors
	* monotone.texi: adapt documentation

2005-04-20  Nathaniel Smith  <njs@codesourcery.com>

	* tests/t_log_depth_single.at:
	* tests/t_add_stomp_file.at:
	* tests/t_log_depth.at: Shorten blurbs.

2005-04-20  Nathaniel Smith  <njs@codesourcery.com>

	* std_hooks.lua (ignore_file): Ignore compiled python files.

2005-04-20  Jon Bright  <jon@siliconcircus.com>
	* tests/t_sticky_branch.at: Really fix this test

2005-04-20  Jon Bright  <jon@siliconcircus.com>
	* tests/t_sticky_branch.at: Canonicalise stdout before comparison
	* tests/t_setup_checkout_modify_new_dir.at: Ditto
	* tests/t_netsync_largish_file.at: Check the file out rather
	than catting it, so that canonicalisation is unneeded.
	Canonicalisation is bad here, because the file is random
	binary data, not text with line-ending conventions

2005-04-20  Richard Levitte  <richard@levitte.org>

	* contrib/monotone.el: define-after-key's KEY argument has to be a
	vector with only one element.  The code I used is taken directly
	from the Emacs Lisp Reference Manual, section "Modifying Menus".

2005-04-20  Nathaniel Smith  <njs@codesourcery.com>

	* commands.cc (mdelta, mdata, fdelta, fdata, rdata): Check for
	existence of command line arguments.

	* lua.{cc,hh} (hook_use_inodeprints): New hook.
	* std_hooks.lua (use_inodeprints): Default definition.
	* monotone.texi (Inodeprints): New section.
	(Reserved Files): Document MT/inodeprints.
	(Hook Reference): Document use_inodeprints.
	* work.{cc,hh} (enable_inodeprints): New function.
	* app_state.cc (create_working_copy): Maybe call
	enable_inodeprints.

	* tests/t_inodeprints_hook.at: New test.
	* tests/t_bad_packets.at: New test.
	* testsuite.at: Add them.

2005-04-20  Nathaniel Smith  <njs@codesourcery.com>

	* AUTHORS: Actually add Joel Reed (oops).

2005-04-20  Nathaniel Smith  <njs@codesourcery.com>

	Most of this patch from Joel Reed, with only small tweaks myself.

	* AUTHORS: Add Joel Reed.

	* platform.hh (is_executable): New function.
	* {unix,win32}/process.cc: Define it.

	* lua.cc (monotone_is_executable_for_lua): New function.
	(lua_hooks): Register it.
	(Lua::push_nil): New method.
	(lua_hooks::hook_init_attributes): New hook.
	* lua.hh: Declare it.
	* monotone.texi (Hook Reference): Document it.

	* work.cc (addition_builder): Call new hook, collect attributes
	for added files.
	(build_additions): Set attributes on new files.

	* tests/t_attr_init.at: New test.
	* tests/t_add_executable.at: New test.
	* testsuite.at: Add them.

2005-04-19  Nathaniel Smith  <njs@codesourcery.com>

	* file_io.cc (read_localized_data, write_localized_data): Remove
	logging of complete file contents.
	* tests/t_lf_crlf.at: Remove --debugs, clean up, test more.

2005-04-19 Emile Snyder <emile@alumni.reed.edu>

	* file_io.cc: Fix bugs with read/write_localized_data when using
	CRLF line ending conversion.
	* transforms.cc: Fix line_end_convert to add correct end of line
	string if the split_into_lines() call causes us to lose one from
	the end.
	* tests/t_lf_crlf.at: Clean up and no longer XFAIL.

2005-04-19  Sebastian Spaeth  <Sebastian@SSpaeth.de>

	* monotone.texi: modified documentation to match changes due to
	previous checking.
	* AUTHORS: Adding myself

2005-04-19  Sebastian Spaeth  <Sebastian@SSpaeth.de>

	* automate.cc: make BRANCH optional in "automate heads BRANCH"
	we use the default branch as given in MT/options if not specified
	* commands.cc: BRANCH -> [BRANCH] in cmd description

2005-04-19  Richard Levitte  <richard@levitte.org>

	* contrib/monotone-import.pl (my_exit): As in monotone-notify.pl,
	my_exit doesn't close any network connections.

	* testsuite.at (REVERT_TO): Make it possible to revert to a
	specific branch.  This is useful to resolve ambiguities.
	* tests/t_merge_add_del.at: Use it.

2005-04-19  Matthew Gregan  <kinetik@orcon.net.nz>

	* sanity.hh: Mark {naughty,error,invariant,index}_failure methods
	as NORETURN.
	* commands.cc (string_to_datetime): Drop earlier attempt at
	warning fix, it did not work with Boost 1.31.0.  Warning fixed by
	change to sanity.hh.

2005-04-19  Matthew Gregan  <kinetik@orcon.net.nz>

	* lua.cc (default_rcfilename): Use ~/.monotone/monotonerc.  This
	change is to prepare for the upcoming support for storing user
	keys outside of the database (in ~/.monotone/keys/).
	* app_state.cc (load_rcfiles): Refer to new rc file location in
	comments.
	* monotone.cc (options): Refer to new rc file location.
	* monotone.texi: Refer to new rc file location.  Also change bare
	references to the rc file from '.monotonerc' to 'monotonerc'.

2005-04-19  Matthew Gregan  <kinetik@orcon.net.nz>

	* commands.cc (log): 'depth' option did not handle the single file
	case correctly. Also a couple of minor cleanups.
	* tests/t_log_depth_single.at: New test.
	* testsuite.at: Add test.

2005-04-18  Matthew Gregan  <kinetik@orcon.net.nz>

	* commands.cc (string_to_datetime): Fix warning.

2005-04-18  Richard Levitte  <richard@levitte.org>

	* Makefile.am (EXTRA_DIST): Add contrib/monotone-import.pl.

	* contrib/monotone-import.pl: New script to mimic "cvs import".
	* contrib/README: describe it.

	* commands.cc (CMD(attr)): Make it possible to drop file
	attributes.

	* contrib/monotone-notify.pl (my_exit): The comment was incorrect,
	there are no network connections to close gracefully.
	Implement --ignore-merges, which is on by default, and changes the
	behavior to not produce diffs on merges and propagates where the
	ancestors hve already been shown.

	* tests/t_attr_drop.at: New test to check that 'attr drop'
	correctly drops the given entry.
	* tests/t_drop_attr.at: New test, similar to t_rename_attr.at.
	* testsuite.at: Add them.

2005-04-18  Nathaniel Smith  <njs@codesourcery.com>

	* monotone.texi (Dealing with a Fork): Clarify (hopefully) what we
	mean when we say that "update" is a dangerous command.

2005-04-17  Matt Johnston  <matt@ucc.asn.au>

	* change_set.cc (confirm_proper_tree): remove incorrect code
	setting confirmed nodes.

2005-04-17  Matt Johnston  <matt@ucc.asn.au>

	* change_set.cc (confirm_proper_tree): use a std::set rather than
	dynamic_bitset for the ancestor list, improving performance for
	common tree structures.
	* basic_io.cc: reserve() a string

2005-04-17  Matt Johnston  <matt@ucc.asn.au>

	* packet.cc: fix up unit test compilation.
	* transforms.cc: fix up unit test compilation.

2005-04-17  Matt Johnston  <matt@ucc.asn.au>

	* vocab_terms.hh: remove commented out lines.

2005-04-17  Matt Johnston  <matt@ucc.asn.au>

	* Move base64<gzip> code as close to the database as possible,
	to avoid unnecessary inflating and deflating.

2005-04-17  Nathaniel Smith  <njs@codesourcery.com>

	* monotone.texi (Branching and Merging): A few small edits.

2005-04-17  Nathaniel Smith  <njs@codesourcery.com>

	* change_set.cc (path_item, sanity_check_path_item): Mark things
	inline.

2005-04-17  Henrik Holmboe <henrik@holmboe.se>

	* contrib/monotone-notify.pl: Add signal handlers.  Correct some
	typos.
	(my_exit): New function that does a cleanup and exit.

2005-04-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>

	* transforms.cc: fix glob_to_regexp assertions

2005-04-17  Sebastian Spaeth <Sebastian@sspaeth.de>

	* tests/t_db_kill_rev_locally.at: new test;
	make sure that db kill_rev_locally works as intended

2005-04-17  Sebastian Spaeth <Sebastian@sspaeth.de>

	* commands.cc,database.cc: add 'db kill_rev_locally <id>' command
	still missing: documentation and autotests. Otherwise seems ok.

2005-04-17  Richard Levitte  <richard@levitte.org>

	* transforms.cc: Remove tabs and make sure emacs doesn't add
	them.

2005-04-17  Nathaniel Smith  <njs@codesourcery.com>

	* sanity.{hh,cc} (E, error_failure): New sort of invariant.
	* netsync.cc (process_hello_cmd): Make initial pull message
	more clear and friendly.
	Also, if the key has changed, that is an error, not naughtiness.
	* database_check.cc (check_db): Database problems are also errors,
	not naughtiness.  Revamp output in case of errors, to better
	distinguish non-serious errors and serious errors.
	* tests/t_database_check.at: Update accordingly.
	* tests/t_database_check_minor.at: New test.
	* testsuite.at: Add it.

2005-04-17  Richard Levitte  <richard@levitte.org>

	* transforms.cc (glob_to_regexp): New function that takes a glob
	expression and transforms it into a regexp.  This will be useful
	for globbing branch expressions when collections are exchanged to
	branch globs and regexps.
	(glob_to_regexp_test): A unit test for glob_to_regexp().

2005-04-17  Matt Johnston  <matt@ucc.asn.au>

	* commands.cc: warn that dropkey won't truly erase the privkey
	from the database
	* monotone.texi: same

2005-04-17  Matt Johnston  <matt@ucc.asn.au>

	* database.cc: mention that it could be the filesystem that
	is full in the SQLITE_FULL error message

2005-04-17  Matthew Gregan  <kinetik@orcon.net.nz>

	* monotone.cc: Fix warnings: add missing initializers.
	* netsync.cc: Fix warnings: inline static vs static inline.

2005-04-16  Emile Snyder  <emile@alumni.reed.edu>

	* tests/t_add_stomp_file.at: New test for failing case.
	If you have a file foo in your working dir (not monotone
	controlled) and someone else adds a file foo and commits,
	update should at least warn you before stomping your
	non-recoverable foo file.
	* testsuite.at: Add it.

2005-04-16  Derek Scherger  <derek@echologic.com>

	* work.cc (known_preimage_path): rename to...
	(known_path): this, since it's image agnostic
	(build_deletions): update for renamed function
	(build_rename): ensure rename source exists in current revision
	and rename target does not exist in current revision

	* tests/t_no_rename_overwrite.at: un-XFAIL

2005-04-16  Nathaniel Smith  <njs@codesourcery.com>

	* app_state.{cc,hh} (set_author, set_date): New methods.
	* cert.cc (cert_revision_date): Rename to...
	(cert_revision_date_time): ...an overloaded version of this.
	(cert_revision_author_default): Check app.date.
	* cert.hh: Expose cert_revision_date_time.
	* commands.cc (commit): Handle --date.
	* main.cc: Parse --date and --author options.
	* monotone.1: Document --date, --author.
	* monotone.texi (Working Copy, OPTIONS): Likewise.

	* tests/t_override_author_date.at: New test.
	* testsuite.at: Add it.

	This commit heavily based on a patch by Markus Schiltknecht
	<markus@bluegap.ch>.

2005-04-16  Nathaniel Smith  <njs@codesourcery.com>

	* ChangeLog: Fixup after merge.

2005-04-16  Nathaniel Smith  <njs@codesourcery.com>

	* tests/t_update_nonexistent.at: New test.
	* testsuite.at: Add it.

	* commands.cc (update): Verify that user's requested revision
	exists.

2005-04-16  Nathaniel Smith  <njs@codesourcery.com>

	* ChangeLog: Fixup after merge.

2005-04-16  Emile Snyder <emile@alumni.reed.edu>

	* tests/t_add_vs_commit.at: New test for failing case.  If you
	add a file in you working dir, someone else adds the same file
	and commits, then you do an update it messes up your working
	directory.
	* testsuite.at: Add it.

2005-04-16  Nathaniel Smith  <njs@codesourcery.com>

	* commands.cc (checkout): Move check for existence of revision
	earlier.

	* tests/t_netsync_defaults.at, tests/t_netsync_single.at:
	Don't hard-code netsync port.

2005-04-16  Nathaniel Smith  <njs@codesourcery.com>

	* testsuite.at: Use a random server port.

	* .mt-attrs, contrib/README: Update for Notify.pl ->
	monotone-notify.pl rename.

	* monotone.1: Warn people off rcs_import.
	* monotone.texi (Commands): Likewise.

2005-04-16  Nathaniel Smith  <njs@codesourcery.com>

	* AUTHORS: Add Emile Snyder <emile@alumni.reed.edu>.

2005-04-16  Nathaniel Smith  <njs@codesourcery.com>

	* tests/t_lf_crlf.at: New test from Emile Snyder
	<emile@alumni.reed.edu>, with tweaks.
	* testsuite.at: Add it.

2005-04-16  Nathaniel Smith  <njs@codesourcery.com>

	* ChangeLog: Small fixups.

2005-04-16  Sebastian Spaeth <Sebastian@sspaeth.de>

	* tests/t_cvsimport2.at: new test; CVS Attic files fail test
	reported by: hjlipp@web.de 15.04.2005 02:45

2005-04-16  Sebastian Spaeth <Sebastian@sspaeth.de>

	* tests/t_rcs_import.at: new test; problematic CVS import as
	reported in the list. However it works just fine here, so it
	really tests for a successful pass

2005-04-16  Sebastian Spaeth <Sebastian@sspaeth.de>

	* tests/README: new file, on how to create/run tests

2005-04-16  Nathaniel Smith  <njs@codesourcery.com>

	* tests/t_rename_dir_add_dir_with_old_name.at: XFAIL.

2005-04-16  Nathaniel Smith  <njs@codesourcery.com>

	* tests/t_diff_binary.at: Un-XFAIL.

2005-04-16  Nathaniel Smith  <njs@codesourcery.com>

	* monotone.texi (Network Service): Rewrite to include former
	Exchanging Keys section.
	(Branching and Merging): New tutorial section, inspired by a patch
	from Martin Kihlgren <zond@troja.ath.cx>.
	(CVS Phrasebook): Add "Importing a New Project".

	* AUTHORS: Add Martin Dvorak.

2005-04-16  Matt Johnston  <matt@ucc.asn.au>

	* change_set.cc (compose_rearrangement): remove logging statements
	that were using noticable CPU time.

2005-04-15 Martin Dvorak <jezek2@advel.cz>

	* tests/t_rename_dir_add_dir_with_old_name.at: New test.
	* testsuite.at: Add it.

2005-04-15  Olivier Andrieu  <oliv__a@users.sourceforge.net>

	* diff_patch.cc(guess_binary): do not use '\x00' as first
	character of a C string ...

2005-04-15  Sebastian Spaeth  <Sebastian@SSpaeth.de>

	* ui.cc: print byte progress to one decimal place
	  in k or M.
	* netsync.cc: update dot ticker every 1024 bytes.

2005-04-15  Matt Johnston  <matt@ucc.asn.au>

	* change_set.cc (confirm_proper_tree): use bitsets rather than maps
	for tracking set membership.
	* smap.hh: return reverse iterators properly, iterate over the vector
	rather than self in ensure_sort()

2005-04-14  Derek Scherger  <derek@echologic.com>

	* database_check.cc (check_db): fail with N(...) when problems are
	detected to exit with a non-zero status

2005-04-14  Derek Scherger  <derek@echologic.com>

	* monotone.texi (Informative): update description of 'diff' with
	two revision arguments

2005-04-14  Matthew Gregan  <kinetik@orcon.net.nz>

	* win32/process.cc: Fix build on MingW 3.2.0-rc[123] by adding
	<sstream> include.

2005-04-14  Jon Bright  <jon@siliconcircus.com>
	* win32/process.cc (process_spawn): Add some extra debug info
	* std_hooks.lua (execute): If pid is -1, don't try and wait on
	the process

2005-04-14  Matt Johnston  <matt@ucc.asn.au>

	* change_set.cc (confirm_unique_entries_in_directories): use a
	  std::vector rather than std::map for better performance (only sort
	  once).
	* smap.hh: an invariant

2005-04-14  Nathaniel Smith  <njs@codesourcery.com>

	* tests/t_vcheck.at: Update notes.

2005-04-14  Jeremy Cowgar  <jeremy@cowgar.com>

	* monotone.texi (Making Changes): Fixed duplicate paragraph
	* NEWS: Corrected spelling error in my name.

2005-04-14  Olivier Andrieu  <oliv__a@users.sourceforge.net>

	* Makefile.am: silence cmp

2005-04-14  Matthew Gregan  <kinetik@orcon.net.nz>

	* win32/terminal.cc (have_smart_terminal): Implement for Win32.

2005-04-13  Nathaniel Smith  <njs@codesourcery.com>

	* monotone.texi (Informative): 'diff' with two revision arguments
	can now be filtered by file.

	* constants.cc (netcmd_payload_limit): Bump to 256 megs.

2005-04-13  Matthew Gregan  <kinetik@orcon.net.nz>

	* tests/t_netsync_largish_file.at: Add test for netsyncing largish
	(32MB) files.  This test is failing at present.
	* testsuite.at: Add new test.

2005-04-13  Nathaniel Smith  <njs@codesourcery.com>

	* tests/t_setup_checkout_modify_new_dir.at:
	* tests/t_update_off_branch.at: New tests.
	* testsuite.at: Add them.

	* commands.cc (checkout): Tweak branch checking logic.
	(update): Make user explicitly switch branches.

2005-04-13  Nathaniel Smith  <njs@codesourcery.com>

	* rcs_import.cc (import_cvs_repo): Check that user isn't trying to
	import a whole CVS repo.
	* tests/t_cvsimport.at: Test new check.

2005-04-13  Richard Levitte  <richard@levitte.org>

	* contrib/Notify.pl: Rename ...
	* contrib/monotone-notify.pl: ... to this.
	* Makefile.am (EXTRA_DIST): Take note of the change.
	* debian/docs: Distribute the contributions as well.
	* debian/compat, debian/files, debian/monotone.1: Remove, since
	they are self-generated by debhelper.  They were obviously added
	by mistake.

2005-04-13  Nathaniel Smith  <njs@codesourcery.com>

	* cert.cc (guess_branch): Call app.set_branch.
	* app_state.cc (create_working_copy): Call make_branch_sticky
	here...
	* commands.cc (checkout): ...instead of here.
	(approve, disapprove, fcommit, commit): Don't call app.set_branch
	on guess_branch's output.
	(checkout): Call guess_branch.

	* tests/t_sticky_branch.at:
	* tests/t_checkout_id_sets_branch.at: New tests.
	* testsuite.at: Add them.

2005-04-13  Matthew Gregan  <kinetik@orcon.net.nz>
	* cryptopp/integer.h: Fix detection of GCC version for SSE2
	builds.

2005-04-12  Florian Weimer  <fw@deneb.enyo.de>

	* app_state.cc (app_state::allow_working_copy): Only update
	branch_name from the options file if it has not yet been set.  Log
	the branch name.
	(app_state::set_branch): No longer update the options map.
	(app_state::make_branch_sticky): New function which copies the
	stored branch name to the options map.  Only commands which call
	this function change the branch default stored in the working
	copy.

	* commands.cc (CMD(checkout)): Mark branch argument as sticky.
	(CMD(commit)): Likewise.
	(CMD(update)): Likewise.

	* monotone.texi (Working Copy): Mention that the "commit" and
	"update" commands update the stored default branch ("checkout"
	does, too, but this one should be obvious).

2005-04-12  Jon Bright <jon@siliconcircus.com>
	* rcs_import.cc (find_key_and_state): Fix stupid bug in storing the
	list of files a cvs_key contains.  CVS delta invariant failure now
	really fixed.  The rearrangement failure still exists, though.

2005-04-12  Jon Bright <jon@siliconcircus.com>
	* tests/t_cvsimport_samelog.at: Add test for the deltas.find
	cvs import problem as sent to the ML by Emile Snyder.
	* testsuite.at: Call it
	* rcs_import.cc (cvs_key): Add an ID for debug output purposes,
	sprinkle a little more debug output about what's being compared to
	what
	* rcs_import.cc (cvs_key): Maintain a map of file paths and CVS
	versions appearing in this CVS key.
	(cvs_key::similar_enough): A key is only similar enough if it doesn't
	include a different version of the same file path.
	(cvs_history::find_key_and_state): Add files to cvs_keys as
	appropriate

2005-04-12  Matthew Gregan <kinetik@orcon.net.nz>

	* win32/terminal.cc (terminal_width): Use
	GetConsoleScreenBufferInfo to request width information for
	terminals.

2005-04-12  Nathaniel Smith  <njs@codesourcery.com>

	* ChangeLog: Fixup after merge.

2005-04-12  Nathaniel Smith  <njs@codesourcery.com>

	* platform.hh (terminal_width): New function.
	* {unix,win32}/have_smart_terminal.cc: Rename to...
	* {unix,win32}/terminal.cc: ...these.  Implement terminal_width.
	* ui.cc (write_ticks): Call it.
	* Makefile.am: Update for renames.

2005-04-11  Matt Johnston <matt@ucc.asn.au>

	* ui.{cc,hh}, netsync.cc: netsync progress ticker in kilobytes to
	avoid wrapping.

2005-04-11  Jon Bright <jon@siliconcircus.com>
	* Makefile.am (EXTRA_DIST): Add debian/*

2005-04-11  Jon Bright <jon@siliconcircus.com>
	* Makefile.am (EXTRA_DIST): Add win32/monotone.iss, PNG_FIGURES
	(PNG_FIGURES): Add, constructing in same way as EPS_FIGURES
	(monotone.html): Use .perlbak workaround so that this works on Win32

2005-04-11  Matthew Gregan <kinetik@orcon.net.nz>

	* unix/inodeprint.cc, configure.ac: Use nanosecond time resolution for
	inodeprints on BSDs and other platforms if available.

2005-04-10  Nathaniel Smith  <njs@codesourcery.com>

	* Makefile.am (BUILT_SOURCES_CLEAN): Add package_revision.txt.

	This is the 0.18 release.

2005-04-10  Derek Scherger  <derek@echologic.com>

	* monotone.texi (Informative): fix typo in ls known docs

2005-04-10  Nathaniel Smith  <njs@codesourcery.com>

	* Makefile.am: Use pdftops instead of acroread.
	(EXTRA_DIST): Include new contrib/ files, and fix wildcards.
	* NEWS: Update for 0.18.
	* configure.ac: Bump version number.
	* debian/changelog: Mention new release.
	* debian/copyright: Update from AUTHORS.
	* monotone.spec: Mention new release.
	* po/monotone.pot: Regenerate.

2005-04-10  Florian Weimer  <fw@deneb.enyo.de>

	* monotone.texi (Commands): Use "working copy" instead of "working
	directory", to match the rest of the manual.

2005-04-10  Florian Weimer  <fw@deneb.enyo.de>

	* commands.cc (ls_known): New function which prints all known
	files in the working copy.
	(CMD(list)): Invoke ls_known for "list known".  Update help
	message.
	(ALIAS(ls)): Update help message.

	* monotone.texi: Document "list known".
	* tests/t_ls_known.at: New file.
	* testsuite.at: Include it.

2005-04-10  Richard Levitte  <richard@levitte.org>

	* contrib/Notify.pl: Count the number of messages sent, and
	display the count at the end.
	Version bumped to 1.0.

2005-04-10  Matt Johnston  <matt@ucc.asn.au>

	* unix/inodeprint.cc, configure.ac: don't use the nsec time
	on non-Linux-style systems (quick compile fix for OS X and probably
	others, can be made generic later).

2005-04-10  Olivier Andrieu  <oliv__a@users.sourceforge.net>

	* contrib/monotone.el: Some elisp code for running monotone from
	inside Emacs. Supports diff, status, add, drop, revert and commit.

2005-04-09  Richard Levitte  <richard@levitte.org>

	* contrib/Notify.pl: Allow globbing branches.  Make the revision
	records branch specific.  Show what records you would have updated
	even with --noupdate.  Add --before and --since, so users can
	select datetime ranges to create logs for.  Remove --to and add
	--difflogs-to and --nodifflogs-to to send logs with diffs to one
	address and logs without diffs to another (both can be given at
	once).  More and better documentation.

2005-04-08  Nathaniel Smith  <njs@codesourcery.com>

	* change_set.cc (basic_change_set): Remove problematic
	rename_dir/add combination, until directory semantics are
	fixed.

2005-04-08  Nathaniel Smith  <njs@codesourcery.com>

	* commands.cc (revert): Call maybe_update_inodeprints.
	* app_state.cc (set_restriction): Clear any old restrictions
	first.

2005-04-08  Jon Bright <jon@siliconcircus.com>
	* testsuite.at (NOT_ON_WIN32): Add a function to prevent tests from
	running on Win32 (for cases where the functionality being tested
	makes no sense on Win32.  Not for cases where the functionality
	just isn't there yet on Win32.)
	* tests/t_final_space.at: Use NOT_ON_WIN32.  The filenames "a b"
	and "a b " refer to the same file on Win32, obviating this test

2005-04-08  Jon Bright <jon@siliconcircus.com>
	* win32/inodeprint.cc (inodeprint_file): Still close the file if
	getting its time failed.
	* tests/t_netsync_sigpipe.at: Don't bother doing a kill -PIPE on
	Win32.  There is no real SIGPIPE on Win32 and sockets don't get this
	signal if their pipe goes away.  MinGW's kill seems to translate
	-PIPE to some signal that *does* kill monotone, so it seems like the
	easiest solution is just not to send the signal in the first place
	here.
	* tests/t_automate_ancestry_difference.at: Remove old
	CHECK_SAME_STDOUT call which I'd left by accident.
	* tests/t_automate_leaves.at: Canonicalise monotone output before
	passing to CHECK_SAME_STDOUT
	* tests/t_log_depth.at: Check line count with arithmetic comparison
	rather than autotest's string comparison

2005-04-08  Nathaniel Smith  <njs@codesourcery.com>

	* inodeprint.cc (operator<<): Typo.

	* inodeprint.{hh,cc} (build_inodeprint_map,
	build_restricted_inodeprint_map): Remove unused functions.

2005-04-08  Nathaniel Smith  <njs@codesourcery.com>

	* work.cc: Remove doxygen comments.  Comments are good; comments
	that are longer than the function they document, and give less
	information, are not so good...

2005-04-08  Nathaniel Smith  <njs@codesourcery.com>

	* ChangeLog: Fixup after merge.

2005-04-08  Nathaniel Smith  <njs@codesourcery.com>

	* commands.cc (calculate_current_revision): Defer to
	calculate_restricted_revision instead of special casing.
	(put_revision_id): constify argument.
	(maybe_update_inodeprints): New function.
	(commit, update, checkout): Call it.

	* manifest.{cc,hh} (build_manifest_map): Remove, since only caller
	was removed.
	(build_restricted_manifest_map): Go faster if the user is using
	inode signatures.

	* tests/t_inodeprints.at:
	* tests/t_inodeprints_update.at: Typoes.

	* work.cc (read_inodeprints): Typo.

2005-04-08  Nathaniel Smith  <njs@codesourcery.com>

	* tests/t_inodeprints.at:
	* tests/t_inodeprints_update.at: New tests.
	* testsuite.at: Add them.

	* UPGRADE: Document 0.17 -> 0.18 upgrade path.

2005-04-08  Jon Bright <jon@siliconcircus.com>
	* tests/t_cat_file_by_name.at: CHECK_SAME_STDOUT can only be used
	to check two 'cat' processes or two monotone processes on Win32,
	not to check monotone and 'cat'.  Change to go through an
	intermediate stdout
	* tests/t_automate_erase_ancestors.at: Ditto
	* tests/t_automate_toposort.at: Ditto
	* tests/t_automate_ancestry_difference.at: Ditto
	* tests/t_vars.at: Call CANONICALISE for stdout output.
	* tests/t_netsync_absorbs.at: Ditto.
	* tests/t_empty_env.at: For Win32, copy libiconv-2.dll to the
	current dir before the test, otherwise Win32 will search the
	(empty) path for it and not find it.
	* tests/t_automate_descendents.at: Ditto
	* win32/inodeprint.cc: Implement inodeprint_file for Win32, based
	on mode, device, size, create time and write time.


2005-04-08  Jon Bright <jon@siliconcircus.com>
	* win32/inodeprint.cc: Change the function name to match the one
	on Unix.

2005-04-08  Nathaniel Smith  <njs@codesourcery.com>

	* {win32,unix}/fingerprint.cc: Rename to...
	* {win32,unix}/inodeprint.cc: ...this.  Change function name and
	calling conventions.
	* platform.hh (inodeprint_file): Likewise.
	* inodeprint.{cc,hh}: New files.
	* Makefile.am (MOST_SOURCES, UNIX_PLATFORM_SOURCES,
	WIN32_PLATFORM_SOURCES): Fixup accordingly.
	* vocab_terms.hh (inodeprint): New ATOMIC.
	* work.hh: Prototype inodeprint working copy functions.
	* work.cc: Implement them.

	* manifest.{hh,cc} (manifest_file_name): Remove unused variable.

2005-04-08  Jeremy Cowgar  <jeremy@cowgar.com>

	* doxygen.cfg: added
	* Makefile.am: added apidocs target (builds doxygen docs)

2005-04-07  Nathaniel Smith  <njs@codesourcery.com>

	* manifest.{hh,cc}: Remove some commented out unused functions.

	* win32/have_smart_terminal.cc: Include platform.hh.
	* unix/fingerprint.cc: New file, with new function.
	* win32/fingerprint.cc: New file, with stub function.
	* Makefile.am (UNIX_PLATFORM_SOURCES, WIN32_PLATFORM_SOURCES): Add
	them.

2005-04-07  Nathaniel Smith  <njs@codesourcery.com>

	* manifest.hh, manifest.cc: Remove tabs.

2005-04-07  Nathaniel Smith  <njs@codesourcery.com>

	* tests/t_final_space.at: New test.
	* testsuite.at: Add it.

2005-04-07  Nathaniel Smith  <njs@codesourcery.com>

	* monotone.texi (Dealing with a Fork): 'merge' has slightly
	different output.

	* NEWS: Summarize changes of last 2.5 weeks.

2005-04-07  Nathaniel Smith  <njs@codesourcery.com>

	* database.{cc,hh} (space_usage): New method.
	* database.cc (info): Use it.

2005-04-07  Nathaniel Smith  <njs@codesourcery.com>

	* vocab.cc (verify): Cache known-good strings, to speed up
	repeated processing of related changesets.

	* change_set.cc (basic_change_set_test): Revert last change; the
	old version _was_ valid.

2005-04-07  Nathaniel Smith  <njs@codesourcery.com>

	* smap.hh (insert): Fix stupid bug in assertion condition.

2005-04-07  Nathaniel Smith  <njs@codesourcery.com>

	* change_set.cc (basic_change_set_test): Test a _valid_
	change_set.
	(directory_node): Make a std::map, instead of an smap.  Add a
	comment explaining the bug that makes this temporarily necessary.

	* smap.hh (smap): Don't check for duplicates at insert time,
	unless we've decided not to mark things damaged; don't return
	iterators from insert.  Do check for duplicates at sort time, and
	always sort, instead of sometimes doing linear search.  This makes
	insert O(1), while still preserving the invariant that keys must
	be unique.

	* commands.cc (commit): Explain why we're aborting, in the case
	that we detect that a file has changed under us in the middle of a
	commit.

2005-04-07  Richard Levitte  <richard@levitte.org>

	* cryptopp/config.h: typo...

2005-04-06  Nathaniel Smith  <njs@codesourcery.com>

	* work.cc (build_deletions): Issue warning when generating
	delete_dir's; they're totally broken, but I don't want to disable
	them, because then our tests won't see when they're fixed...

2005-04-05  Nathaniel Smith  <njs@codesourcery.com>

	* tests/t_db_execute.at (db execute): New test.
	* testsuite.at: Add it.
	* database.cc (debug): Don't printf-interpret %-signs in input.

2005-04-05  Matt Johnston  <matt@ucc.asn.au>

	* database.cc: remove dulicated block introduced
	in rev 9ab3031f390769f1c455ec7764cc9c083f328a1b
	(merge of 76f4291b9fa56a04feb2186074a731848cced81c and
	c7917be7646df52363f39d2fc2f7d1198c9a8c27). Seems to be another
	instance of the case tested in t_merge_5.at

2005-04-05  Matt Johnston  <matt@ucc.asn.au>

	* basic_io.hh: reserve() the string which we're appending to
	frequently. Seems to give ~5% speedup in
	diff -r t:revision-0.16 -r t:revision-0.17 - can't hurt.

2005-04-04  Nathaniel Smith  <njs@codesourcery.com>

	* monotone.spec, debian/control: We no longer need external popt.
	* INSTALL: Ditto, plus some general updating.

2005-04-04  Nathaniel Smith  <njs@codesourcery.com>

	* tests/t_sql_unpack.at: New test.
	* testsuite.at: Add it.

2005-04-04  Matt Johnston  <matt@ucc.asn.au>

	* file_io.cc (read_data_stdin): make it use botan
	* mkstemp.cc: merge cleanup (missed something up the manual merge)

2005-04-04  Nathaniel Smith  <njs@codesourcery.com>

	* contrib/ciabot_monotone.py (config): Genericize again, so lazy
	people using it won't start sending commits for monotone.
	* .mt-attrs: Make it executable.

2005-04-04  Richard Levitte  <richard@levitte.org>

	* Makefile.am (EXTRA_DIST): Add the extra popt files.

	* popt/popt.3, popt/popt.ps, popt/testit.sh: Include a few more
	  files from popt, mostly to have documentation on hand.  post.ps
	  is mentioned in popt/README.

2005-04-03  Nathaniel Smith  <njs@codesourcery.com>

	* Makefile.am (EXTRA_DIST): Add contrib/ stuff to distributed
	files list.
	* contrib/ciabot_monotone.py (config.delivery): Turn on.
	(send_change_for): Don't include "ChangeLog:" line when extracting
	changelog.

2005-04-03  Nathaniel Smith  <njs@codesourcery.com>

	* contrib/ciabot_monotone.py: New file.
	* contrib/README: Describe it.

2005-04-03  Richard Levitte  <richard@levitte.org>

	* AUTHORS: Add information about popt.

	* monotone.cc (my_poptStuffArgFile): Include the bundled popt.h.
	Since we now have a working popt, we can remove the restrictions
	on the use of -@.
	* tests/t_at_sign.at: Test that we can take more tha one -@.
	* monotone.1: Document it.

	* popt/poptint.h (struct poptContext_s): Add field to keep track
	  of the number of allocated leftovers elements.
	* popt/popt.c (poptGetContext): Initialise it and use it.
	  (poptGetNextOpt): Use it and realloc leftovers when needed.
	  Also make sure that the added element is a dynamically allocated
	  copy of the original string, or we may end up with a dangling
	  pointer.  These are huge bugs in popt 1.7, when using
	  poptStuffArgs().
	  (poptFreeContext): Free the leftovers elements when freeing
	  leftovers.
	  (poptSaveLong, poptSaveInt): Apply a small patch from Debian.

	* popt/CHANGES, popt/COPYING, popt/README, popt/findme.c,
	  popt/findme.h, popt/popt.c, popt/poptconfig.c, popt/popt.h,
	  popt/popthelp.c, popt/poptint.h, popt/poptparse.c,
	  popt/system.h, popt/test1.c, popt/test2.c, popt/test3.c: Bundle
	  popt 1.7.
	* configure.ac, Makefile.am: Adapt.

2005-04-01  Richard Levitte  <richard@levitte.org>

	* contrib/Notify.pl: Complete rewrite.  Among other things, it
	  makes better use of some new monotone automate features.  It's
	  also better organised and much more documented.

2005-04-01  Jeremy Cowgar  <jeremy@cowgar.com>

	* tests/t_dropkey_2.at: Updated to test dropkey instead of delkey
	* tests/t_dropkey_1.at: Updated to test dropkey instead of delkey
	* monotone.texi (Key and Cert): Changed references to delkey
	  to dropkey
	  (Commands): Changed references to delkey to dropkey
	* testsuite.at: changed references from t_delkey* to t_dropkey*
	* t_delkey_1.at: renamed to t_dropkey_1.at
	* t_delkey_2.at: renamed to t_dropkey_2.at
	* commands.cc (CMD(delkey)): renamed to dropkey to maintain
	  command consistency (with existing drop command)

2005-04-01  Richard Levitte  <richard@levitte.org>

	* monotone.cc (my_poptStuffArgFile): An argument file might be
	empty, and therefore contain no arguments to be parsed.  That's
	OK.
	* tests/t_at_sign.at: Test it.

2005-04-01  Nathaniel Smith  <njs@codesourcery.com>

	* monotone.cc: Fixup after merge.

2005-04-01  Nathaniel Smith  <njs@codesourcery.com>

	* file_io.cc (read_data_for_command_line): New function.
	(read_data_stdin): New function.
	* file_io.hh (read_data_for_command_line): Add prototype.

	* monotone.cc (my_poptStuffArgFile): Clean up a little.  Use
	read_data_for_command_line.  Don't free argv, but rather return
	it.
	(cpp_main): Keep a list of allocated argv's, and free them.
	(options): Tweak wording of help text on -@.

2005-04-01  Nathaniel Smith  <njs@codesourcery.com>

	* file_io.hh: Remove tabs.

2005-04-01  Nathaniel Smith  <njs@codesourcery.com>

	* monotone.cc (cpp_main): Actually remove newline.

2005-04-01  Nathaniel Smith  <njs@codesourcery.com>

	* ChangeLog: Fixup after merge.
	* monotone.text (Making Changes): Fix typo.

2005-04-01  Nathaniel Smith  <njs@codesourcery.com>

	* monotone.cc (cpp_main): Remove now-unneccessary newline.

	* commands.cc (commit): Fix typo.

	* monotone.texi (Making Changes): Don't claim that writing to
	MT/log prevents the editor from starting.  Clarify later that
	having written to MT/log still means the editor will pop up
	later.

2005-04-01  Richard Levitte  <richard@levitte.org>

	* monotone.cc: Add the long name --xargs for -@.
	* monotone.1: Document it.
	* tests/t_at_sign.at: Remove extra empty line and test --xargs.

	* monotone.texi (Making Changes): Cleanupy tweaks.

	* monotone.cc (my_poptStuffArgFile): New function to parse a file
	for more arguments and stuff them into the command line.
	(cpp_main): Add the -@ option
	* tests/t_at_sign.at, testsuite.at: Test it
	* monotone.1: Document it.

2005-03-31  Nathaniel Smith  <njs@codesourcery.com>

	* tests/t_log_depth.at: Cleanupy tweaks.

2005-03-31  Jeremy Cowgar  <jeremy@cowgar.com>

	* monotone.texi: Tutorial updated to include example of
	  editing/committing with MT/log
	* work.cc (has_contents_user_log) Added
	* work.hh (has_contents_user_log) Added
	* commands.cc (CMD(commit)): Checks to ensure both MT/log and the
	  --message option does not exist during commit.
	* transforms.hh (prefix_lines_with): Added
	* transforms.cc (prefix_lines_with): Added
	* sanity.cc (naughty_failure): Made use of prefix_lines_with()
	* ui.cc (inform): now handles messages w/embedded newlines
	* tests/t_commit_log_3.at: Created to test new functionality
	  added to CMD(commit)
	* testsuite.at: Added above test

2005-03-31  Richard Levitte  <richard@levitte.org>

	* monotone.cc: Add the --depth option...
	* app_state.hh (class app_state),
	  app_state.cc (app_state::set_depth): ... and the field and
	  method to store and set it.
	* commands.cc (CMD(log)): ... then handle it.

	* tests/t_log_depth.at: Add a test for 'log --depth=n'
	* testsuite.at: Add it.
	* monotone.texi (Informative): Document it.

2005-03-31  Nathaniel Smith  <njs@codesourcery.com>

	* automate.cc (automate_erase_ancestors): Accept zero arguments,
	and in such case print nothing.  (Important for scripting.)
	* commands.cc (automate):
	* monotone.texi (Automation):
	* tests/t_automate_erase_ancestors.at: Update accordingly.

2005-03-31  Nathaniel Smith  <njs@codesourcery.com>

	* automate.cc (automate_toposort): Accept zero arguments, and in
	such case print nothing.  (Important for scripting.)
	* commands.cc (automate):
	* monotone.texi (Automation):
	* tests/t_automate_toposort.at: Update accordingly.

2005-03-30  Richard Levitte  <richard@levitte.org>

	* contrib/Notify.pl: A new Perl hack to send change logs by
	email.

	* contrib/README: Add a quick description.

2005-03-30  Nathaniel Smith  <njs@codesourcery.com>

	* automate.cc (automate_leaves): New function.
	(automate_command): Add it.
	* commands.cc (automate): Synopsify it.
	* monotone.1: Add it.
	* monotone.texi (Automation, Commands): Likewise.

	* tests/t_automate_leaves.at: New test.
	* testsuite.at: Add it.

2005-03-30  Nathaniel Smith  <njs@codesourcery.com>

	* monotone.texi (Automation): Make newly added sample outputs
	verbatim also.

2005-03-30  Nathaniel Smith  <njs@codesourcery.com>

	* tests/t_automate_toposort.at: New test.
	* tests/t_automate_ancestry_difference.at: New test.
	* tests/t_diff_first_rev.at: New test.
	* testsuite.at: Add them.

	* revision.cc (calculate_ancestors_from_graph): Do not keep an
	"interesting" set and return only ancestors from this set;
	instead, simply return all ancestors.  Returning a limited set of
	ancestors does not speed things up, nor reduce memory usage in
	common cases.  (The only time it would reduce memory usage is when
	examining only a small ancestor set, which the important case,
	'heads', does not; even then, erase_ancestors would need to intern
	the interesting revisions first so they got low numbers, which it
	doesn't.)
	(erase_ancestors): Adjust accordingly.
	(toposort, ancestry_difference): New functions.
	* revision.hh (toposort, ancestry_difference): Declare.
	* automate.cc (automate_toposort, automate_ancestry_difference):
	New functions.
	(automate_command): Add them.
	All functions: clarify in description whether output is sorted
	alphabetically or topologically.
	* commands.cc (automate): Synopsify them.
	* monotone.1: Add them.
	* monotone.texi (Commands): Likewise.
	(Automation): Likewise.  Also, clarify for each command whether
	its output is alphabetically or topologically sorted.

2005-03-29  Richard Levitte  <richard@levitte.org>

	* commands.cc (CMD(ls)): Update with the same information as
	CMD(list)

	* monotone.texi (Automation): Make the sample output verbatim

2005-03-26  Nathaniel Smith  <njs@codesourcery.com>

	* automate.cc (automate_erase_ancestors): New function.
	(automate_command): Use it.
	* commands.cc (automate): Document it.

	* tests/t_automate_erase_ancestors.at: New test.
	* testsuite.at: Add it.

	* monotone.texi (Automation, Commands): Document automate
	erase_ancestors.
	* monotone.1: Document automate erase_ancestors.

2005-03-26  Nathaniel Smith  <njs@codesourcery.com>

	* automate.cc (interface_version): Bump to 0.1.
	(automate_descendents): New function.
	(automate_command): Call it.
	* commands.cc (automate): Add it to help text.

	* tests/t_automate_descendents.at: New test.
	* testsuite.at: Add it.

	* monotone.texi (Automation, Commands): Document automate
	descendents.
	* monotone.1: Document automate descendents, and vars stuff.

2005-03-26  Nathaniel Smith  <njs@codesourcery.com>

	* tests/t_attr.at: No longer a bug report.
	* tests/t_rename_attr.at: New test.
	* testsuite.at: Add it.

2005-03-26  Joel Crisp  <jcrisp@s-r-s.co.uk>

	* contrib/Log2Gxl.java: New file.

2005-03-26  Nathaniel Smith  <njs@pobox.com>

	* contrib/README: New file.

2005-03-25  Nathaniel Smith  <njs@pobox.com>

	* commands.cc (user_log_file_name): Remove unused variable
	again.  Hopefully it will take this time...

2005-03-25  Nathaniel Smith  <njs@pobox.com>

	* commands.cc (user_log_file_name): Remove unused variable.

2005-03-25  Jeremy Cowgar  <jeremy@cowgar.com>

	* monotone.texi: Added a bit more documentation about MT/log
	  Updated edit_comment hook and addded delkey docs
	* commands.cc: Added delkey command
	* t_delkey_1.at: Tests delkey command on public key
	* t_delkey_2.at: Tests delkey command on public and private key
	* testsuite.at: Added above tests
	* std_hooks.lua: Transposed the MT: lines and user_log_contents,
	  user_log_contents now appears first.

2005-03-25  Jeremy Cowgar  <jeremy@cowgar.com>

	* t_setup_creates_log.at: Ensures that MT/log is created
	  on setup
	* t_checkout_creates_log.at: Ensures that MT/log is created
	  on checkout
	* t_commit_log_1.at: Ensures that:
	  1. Read and entered as the ChangeLog message
	  2. Is blanked after a successful commit
	* t_commit_log_2.at: Ensures that commit works w/o MT/log being
	  present
	* testsuite.at: Added the above tests.

2005-03-25  Matt Johnston  <matt@ucc.asn.au>

	* {unix,win32}/platform_netsync.cc, platform.hh, Makefile.am: new
	functions to disable and enable sigpipe.
	* netsync.cc, main.cc: call the functions from netsync rather than
	globally, so that sigpipe still works for piping output of commands
	such as 'log'.
	* tests/t_netsync_sigpipe.at: test it.
	* testsuite.at: add it.

2005-03-25  Matt Johnston  <matt@ucc.asn.au>

	* tests/t_database_check.at: re-encode the manifestX
	data so that it doesn't use any fancy gzip features like
	filenames (so that the botan parse can handle it).
	( if it should be able to handle it, an additional test
	can be added testing it explicitly).

2005-03-25  Matt Johnston  <matt@ucc.asn.au>

	* botan/base64.h: Change default break value so that
	output is split into 72 col lines.

2005-03-25  Matt Johnston  <matt@ucc.asn.au>

	* monotone.cc: add short options -r, -b, -k, and -m
	for --revision, --branch, --key, and --message respectively.
	* monotone.texi, monotone.1: document them
	* tests/t_short_opts.at: test them
	* testsuite.at: add it

2005-03-24  Nathaniel Smith  <njs@codesourcery.com>

	* tests/t_empty_env.at: New test.
	* testsuite.at: Add it.  Absolutify path to monotone so it will
	work.

	* unix/have_smart_terminal.cc (have_smart_terminal): Handle the
	case where TERM is unset or empty.

2005-03-24  Nathaniel Smith  <njs@codesourcery.com>

	* ui.hh (tick_write_nothing): New class.
	* monotone.cc (cpp_main): Enable it.

2005-03-24  Nathaniel Smith  <njs@codesourcery.com>

	* work.cc (build_deletions, build_additions): Fixup after merge.

2005-03-23  Nathaniel Smith  <njs@codesourcery.com>

	* tests/t_cat_file_by_name.at: Check for attempting to cat
	non-existent files.
	* tests/t_empty_id_completion.at: New test.
	* tests/t_empty_path.at: New test.
	* testsuite.at: Add them.

	* database.cc (complete): Always generate some sort of limit term,
	even a degenerate one.

	* app_state.cc (create_working_copy): Check for null directory.

	* work.cc (build_deletion, build_addition, build_rename): Check
	for null paths.

2005-03-23  Derek Scherger  <derek@echologic.com>

	* Makefile.am UNIX_PLATFORM_SOURCES:
	WIN32_PLATFORM_SOURCES: add have_smart_terminal.cc
	* platform.hh (have_smart_terminal): prototype
	* ui.cc (user_interface): set ticker to dot/count based on
	have_smart_terminal
	* unix/have_smart_terminal.cc:
	* win32/have_smart_terminal.cc: new file

2005-03-23  Derek Scherger  <derek@echologic.com>

	* commands.cc (add): pass list of prefixed file_path's to
	build_additions
	(drop): pass list of prefixed file_path's to build_deletions
	(attr): pass attr_path as a 1 element vector to build_additions
	* work.{cc,hh} (build_addition): rename to...
	(build_additions): this, and accept a vector of paths to be added
	in a single path_rearrangement
	(build_deletion): rename to ...
	(build_deletions): this, and accept a vector of paths to be
	dropped in a single path_rearrangement
	(known_preimage_path): replace manifest and path_rearrangement
	args with a path_set to avoid extracting paths for every file
	(build_rename): adjust for change to known_preimage_path

2005-03-23  Nathaniel Smith  <njs@codesourcery.com>

	* monotone.cc (my_poptFreeContext, cpp_main): Apparently
	poptFreeContext silently changed its return type at some unknown
	time.  Hack around this.

2005-03-23  Nathaniel Smith  <njs@codesourcery.com>

	* monotone.cc (cpp_main): Remove the special code to dump before
	printing exception information, since we no longer dump to the
	screen, so it's always better to have the little status message
	saying what happened to the log buffer at the end of everything.
	* sanity.cc (dump_buffer): Give a hint on how to get debug
	information, when discarding it.
	* work.{hh,cc} (get_local_dump_path): New function.
	* app_state.cc (allow_working_copy): Use it for default
	global_sanity dump path.
	* monotone.texi (Reserved Files): Document MT/debug.
	(Network): Capitalize Bob and Alice (sorry graydon).
	Document new defaulting behavior.

2005-03-23  Nathaniel Smith  <njs@codesourcery.com>

	* work.cc, sanity.cc: Remove tabs.

2005-03-23  Nathaniel Smith  <njs@codesourcery.com>

	* monotone.texi (Network Service): Mention that monotone remembers
	your server/collection.
	(Vars): New section.
	* netsync.cc (process_hello_cmd): Touch more cleaning.
	* tests/t_merge_5.at: More commentary.

2005-03-23  Matt Johnston  <matt@ucc.asn.au>

	* tests/t_merge_5.at: new test for a merge which ends up with
	duplicate lines.
	* testsuite.at: add it

2005-03-22  Jeremy Cowgar  <jeremy@cowgar.com>

	* AUTHORS: Added my name
	* app_state.cc, commands.cc, lua.cc, lua.hh, monotone.texi,
	  std_hooks.lua, work.cc, work.hh: Added functionality to
	  read the MT/log file for commit logs. In this revision
	  tests are not yet complete nor is documenation complete
	  but the reading, blanking and creating of MT/log is.

2005-03-22  Nathaniel Smith  <njs@codesourcery.com>

	* vocab_terms.hh: Declare base64<var_name>.
	* database.cc (clear_var, set_var, get_vars): base64-encode
	var_names in the database.
	* monotone.texi (Internationalization): Update description of
	vars.
	* transforms.{cc,hh} ({in,ex}ternalize_var_name): Remove.
	* commands.cc (set, unset, ls_vars): Update accordingly.
	(unset): Error out if the variable doesn't exist.
	* tests/t_vars.at: Verify this works.

	* netcmd.cc (test_netcmd_functions): Properly type arguments to
	{read,write}_hello_cmd_payload.
	(write_hello_cmd_payload): Properly type arguments.
	* netcmd.hh (write_hello_cmd_payload):
	* netsync.cc (queue_hello_cmd): Adjust accordingly.
	(process_hello_cmd): More cleaning.  Also, save new server keys to
	a var, and check old server keys against the var.

	* tests/t_netsync_checks_server_key.at: New test.
	* testsuite.at: Add it.  Better docs for some netsync macros,
	while I'm here...
	* tests/t_netsync_absorbs.at: Add 'netsync' keyword.

2005-03-22  Nathaniel Smith  <njs@codesourcery.com>

	* tests/t_netsync_absorbs.at: New test.
	* testsuite.at: Add it.

	* netcmd.{cc,hh} (read_hello_cmd_payload): Properly type
	arguments.
	* netsync.cc (dispatch_payload): Adjust accordingly.  Move some
	logic into process_hello_cmd.
	(known_servers_domain): New constant.
	(process_hello_cmd): Tweak arguments appropriately.  Include logic
	formerly in dispatch_payload.  Cleanup.

	No semantic changes.

2005-03-21  Nathaniel Smith  <njs@codesourcery.com>

	* monotone.texi (Starting a New Project): Tweak phrasing.

2005-03-21  Nathaniel Smith  <njs@codesourcery.com>

	* commands.cc (process_netsync_client_args): If user specifies
	server/collection and there is no default, set the default.
	* tests/t_netsync_set_defaults.at: New test.
	* testsuite.at: Add it.

2005-03-21  Nathaniel Smith  <njs@codesourcery.com>

	* vocab.hh (var_key): New typedef.
	* database.{cc,hh}: Use it.  Make most var commands take it.
	* commands.cc (set, unset): Adjust accordingly.
	(default_server_key, default_collection_key): New constants.
	(process_netsync_client_args): New function.
	(push, pull, sync): Use it.

	* tests/t_netsync_defaults.at: New test.
	* testsuite.at: Add it.

2005-03-21  Matt Johnston  <matt@ucc.asn.au>

	* change_set.cc: use std::map rather than smap for
	confirm_unique_entries_in_directories() and confirm_proper_tree()
	since they perform a lot of insert()s.

2005-03-21  Nathaniel Smith  <njs@codesourcery.com>

	* monotone.texi (list tags, list vars, set, unset): Document.
	(Internationalization): Document vars.

2005-03-21  Nathaniel Smith  <njs@codesourcery.com>

	* transforms.{hh,cc} ({in,ex}ternalize_var_{name,domain}): New
	functions.
	* vocab_terms.hh (base64<var_value>): Declare template.
	* database.hh (get_vars): Simplify API.
	* database.cc (get_vars, get_var, var_exists, set_var, clear_var):
	Implement.
	* commands.cc (set, unset): New commands.
	(ls): New "vars" subcommand.
	* tests/t_vars.at: Fix.  Un-XFAIL.

2005-03-21  Nathaniel Smith  <njs@codesourcery.com>

	* transforms.{cc,hh}: Remove tabs.

2005-03-20  Nathaniel Smith  <njs@codesourcery.com>

	* tests/t_vars.at: New test.
	* testsuite.at: Add it.

2005-03-20  Nathaniel Smith  <njs@codesourcery.com>

	* schema.sql (db_vars): New table.
	* database.cc (database::database): Update schema id.
	* schema_migration.cc (migrate_client_to_vars): New function.
	(migrate_monotone_schema): Use it.
	* tests/t_migrate_schema.at: Another schema, another test...

	* vocab_terms.hh (var_domain, var_name, var_value): New types.
	* database.hh (get_vars, get_var, var_exists, set_var, clear_var):
	Prototype new functions.

2005-03-20  Derek Scherger  <derek@echologic.com>

	* file_io.cc (book_keeping_file): return true only if first
	element of path is MT, allowing embedded MT elements
	(walk_tree_recursive): check relative paths for ignoreable book
	keeping files, rather than absolute paths
	(test_book_keeping_file): add fs::path tests for book keeping
	files
	* tests/t_add_intermediate_MT_path.at: un-XFAIL, fix some problems
	with commas, add tests for renames and deletes with embedded MT
	path elements.

2005-03-20  Nathaniel Smith  <njs@codesourcery.com>

	* monotone.texi: Add some missing @sc{}'s.
	* cryptopp/config.h: Use "mt-stdint.h", not <stdint.h>, for
	portability.

2005-03-19  Nathaniel Smith  <njs@codesourcery.com>

	* Makefile.am (EXTRA_DIST): Add UPGRADE and README.changesets.
	* debian/files: Auto-updated by dpkg-buildpackage.

	* This is the 0.17 release.

2005-03-18  Nathaniel Smith  <njs@codesourcery.com>

	* Makefile.am (MOST_SOURCES): Add package_{full_,}revision.h.
	* NEWS: Fill in date.
	* debian/copyright: Update from AUTHORS.
	* configure.ac: Bump version number to 0.17.
	* debian/changelog, monotone.spec: Update for release.
	* po/monotone.pot: Auto-updated by distcheck.

2005-03-18  Christof Petig <christof@petig-baender.de>

	* sqlite/*: Imported sqlite version 3.1.6 tree

2005-03-18  Nathaniel Smith  <njs@codesourcery.com>

	* monotone.1, commands.cc, Makefile.am: Fixup after merge.

2005-03-18  Nathaniel Smith  <njs@codesourcery.com>

	* path_component (split_path): Fix bug.
	Also, add unit tests for file.
	* unit_tests.{hh,cc}: Add path_component unit tests.

2005-03-18  Nathaniel Smith  <njs@codesourcery.com>

	* Makefile.am: Fixup after merge.

2005-03-18  Nathaniel Smith  <njs@codesourcery.com>

	* change_set.cc: Move path_component stuff to...
	* path_component.{hh,cc}: ...these new files.
	* Makefile.am: Add them.

2005-03-18  Matt Johnston  <matt@ucc.asn.au>

	* txt2c.cc: add --no-static option
	* Makefile.am, package_revision.h, package_full_revision.h:
	create revision info files as standalone .c files to speed
	compilation (mt_version.cc doesn't need to recompile each time)

2005-03-17  Derek Scherger  <derek@echologic.com>

	* INSTALL: add note about creating a ./configure script

2005-03-16  Nathaniel Smith  <njs@codesourcery.com>

	* UPGRADE: Finish, hopefully.
	* monotone.texi (db check): Be more clear about what is normally
	checked, and when 'db check' is useful.

2005-03-16  Patrick Mauritz <oxygene@studentenbude.ath.cx>

	* monotone.texi (Hook Reference): Typo.

2005-03-16  Nathaniel Smith  <njs@codesourcery.com>

	* monotone.texi: Add Derek Scherger to the copyright list.
	Various tweaks.
	(Starting a New Project): Rewrite to clarify that only Jim runs
	"setup", and explain why.
	(Network Service): Add a note that most people do use a central
	server, since people on the mailing list seem to perhaps be
	getting the wrong idea.
	(Making Changes): Expand a little on what the "." in "checkout ."
	means, since people seem to accidentally checkout stuff into real
	directories.
	(db check): Add much verbiage on the implications
	of various problems, and how to fix them.  Also clarify some
	wording.
	* NEWS: Small tweaks.
	* UPGRADE: More instructions, not done yet...

2005-03-15  Matt Johnston  <matt@ucc.asn.au>

	* commands.cc, monotone.texi, monotone.1: mention that agraph
	  output is in VCG format.

2005-03-14  Nathaniel Smith  <njs@codesourcery.com>

	* commands.cc (cat): 'cat file REV PATH'.
	* monotone.texi: Mention it.
	* tests/t_cat_file_by_name.at: New test.
	* testsuite.at: Add it.

2005-03-11  Nathaniel Smith  <njs@codesourcery.com>

	* automate.cc (automate_heads): Remove app.initialize call.
	* revision.cc, revision.hh (calculate_arbitrary_change_set): New
	function.
	(calculate_composite_change_set): Touch more sanity checking.

	* commands.cc (update): Use it.

2005-03-10  Derek Scherger  <derek@echologic.com>

	* app_state.cc (set_restriction): adjust bad path error message
	* commands.cc (get_valid_paths): refactor into ...
	(extract_rearranged_paths): ... this
	(extract_delta_paths): ... this
	(extract_changed_paths): ... this
	(add_intermediate_paths): ... and this
	(restrict_delta_map): new function
	(calculate_restricted_change_set): new function
	(calculate_restricted_revision):
	(ls_missing):
	(revert): rework using new valid path functions
	(do_diff): adjust --revision variants to work with restrictions
	* tests/t_diff_restrict.at: un-XFAIL

2005-03-09  Jon Bright <jon@siliconcircus.com>
	* win32/monotone.iss: Install the many-files version of the
	docs, install the figures, create a start-menu icon for the
	docs.
	* Makefile.am: Make docs generation work with MinGW

2005-03-09  Jon Bright <jon@siliconcircus.com>
	* win32/monotone.iss: Monotone -> monotone

2005-03-09  Jon Bright <jon@siliconcircus.com>
	* win32/monotone.iss: Added an Inno Setup script for
	generating a Windows installer.  Inno Setup is GPLed, see
	http://www.jrsoftware.org for download

2005-03-09  Jon Bright <jon@siliconcircus.com>
	* t_diff_binary.at: binary.bz.b64 -> binary.gz.b64

2005-03-08  Derek Scherger  <derek@echologic.com>

	* Makefile.am: adjust for fsck rename
	* commands.cc (db fsck): rename to db check and add short help;
	adjust for fsck file renames
	* database.{cc,hh}: minor alignment adjustments
	(get_statistic): remove redundant method
	(info): use count in place of get_statistic
	(count): return unsigned long instead of int
	(get_keys): new method
	(get_public_keys): new method
	(get_private_keys): rewrite using get_keys
	(get_certs): new method to get all certs in database from
	specified table
	(get_revision_certs): ditto
	* fsck.{cc,hh}: rename to...
	* database_check.{cc,hh}: ...this; add key, cert and sane revision
	history checking
	* monotone.1: document db dump/load/check commands
	* monotone.texi: document db check command
	* tests/t_fsck.at: rename to...
	* tests/t_database_check.at: ...this; and add tests for key and
	cert problems
	* testsuite.at: account for new test name

2005-03-08  Nathaniel Smith  <njs@codesourcery.com>

	* ChangeLog: Insert some missing newlines.
	* NEWS: Note file format changes.
	* file_io.cc (tilde_expand): Clarify error message.

2005-03-08  Nathaniel Smith  <njs@codesourcery.com>

	* keys.{cc,hh} (require_password): Simplify interface, do more
	work.
	* rcs_import.cc (import_cvs_repo): Update accordingly.
	* commands.cc (server): Likewise.
	* revision.cc (build_changesets_from_existing_revs)
	(build_changesets_from_manifest_ancestry): Require passphrase
	early.

2005-03-08  Nathaniel Smith  <njs@codesourcery.com>

	* NEWS, INSTALL, README.changesets: Update in preparation for
	0.17.
	* UPGRADE: New file.

	* tests/t_diff_restrict.at: Oops.  XFAIL it.

2005-03-08  Jon Bright  <jon@siliconcircus.com>

	* win32/process.cc (process_spawn): Escape the parameters,
	surround them with quotes before adding them to the consolidated
	command line string
	* mkstemp.cc (monotone_mkstemp): Now takes a std::string&, and
	returns the *native* form of the path in this.
	* mkstemp.hh: Now always use monotone_mkstemp
	(monotone_mkstemp): Update prototype
	* lua.cc (monotone_mkstemp_for_lua): Use new-style
	monotone_mkstemp

2005-03-08  Jon Bright  <jon@siliconcircus.com>

	* win32/read_password.cc (read_password): Now correctly hides
	password when run in a Windows console.  Does at least enough in
	a MinGW rxvt console to make sure that you can't see the password.
	* win32/process.cc: Change indentation.
	(process_spawn): Log commands executed, as for unix process.cc

2005-03-07  Nathaniel Smith  <njs@codesourcery.com>

	* tests/t_diff_restrict.at: New test.
	* testsuite.at: Add it.

2005-03-05  Nathaniel Smith  <njs@codesourcery.com>

	* netsync.cc (encountered_error, error): New variable and method.
	(session::session): Initialize encountered_error.
	(write_netcmd_and_try_flush, read_some, write_some): Check it.
	(queue_error_cmd): Consider it like sending a goodbye.
	(process_error_cmd): Throw an exception instead of considering it
	a goodbye.
	(process_data_cmd): Call error() if epochs don't match.
	* tests/t_epoch.at, tests/t_epoch_server.at: More minor tweaks.
	Expect failed pulls to exit with status 0.  This isn't really
	correct, but looks complicated to fix...

2005-03-05  Nathaniel Smith  <njs@codesourcery.com>

	* testsuite.at (NETSYNC_SERVE_N_START): New macro.
	* tests/t_epoch_server.at: Misc. fixes.

	* netsync.cc (session::session): Don't open valve yet.
	(maybe_note_epochs_finished): New method to open
	valve.
	(process_done_cmd, process_data_cmd): Call it.
	(rebuild_merkle_trees): Actually calculate hashes for epoch merkle
	trees.  Also, only include epochs that meet the branch mask.
	(session): Remove unused id_to_epoch map.

2005-03-05  Nathaniel Smith  <njs@codesourcery.com>

	* netcmd.cc (read_netcmd_item_type): Handle epoch_item.
	(test_netcmd_functions): Update for new confirm_cmd_payload
	format.
	* netsync.cc (process_confirm_cmd): Cut and paste error.

2005-03-05  Nathaniel Smith  <njs@codesourcery.com>

	* constants.{cc,hh}: Add new epochlen, epochlen_bytes constants.
	* vocab_terms.hh, vocab.hh: Add new epoch_data type.  Add predeclarations
	for it.
	* commands.cc (ls_epochs):
	* revision.cc (
	* database.hh:
	* database.cc: Update for epoch_data.  Add get_epoch, epoch_exists
	methods.
	* epoch.{cc,hh}: New files.
	* netsync.cc: Actually implement epochs-via-merkle code.

2005-03-04  Nathaniel Smith  <njs@codesourcery.com>

	* schema.sql (branch_epochs): Add 'hash' field.
	* schema_migration.cc: Fixup for.
	* database.cc (database): Change schemas.
	* tests/t_migrate_schema.at: Replace epoch db test case with one
	with new schema.

2005-03-03  Nathaniel Smith  <njs@codesourcery.com>

	* netsync.cc (session::id_to_epoch): New variable.
	(session::session): Create refinement and requested item tables
	for epochs.
	(rebuild_merkle_trees): Fill epoch merkle tree and id_to_epoch
	table.

	* netsync.cc (queue_confirm_cmd, process_confirm_cmd)
	(dispatch_payload, rebuild_merkle_trees):
	* netcmd.hh:
	* netcmd.cc (read_confirm_cmd_payload, write_confirm_cmd_payload):
	Remove epochs.

2005-02-27  Nathaniel Smith  <njs@codesourcery.com>

	* constants.cc:
	* revision.cc:
	* testsuite.at:
	* commands.cc:
	* ChangeLog: Fixup after merge.

2005-02-27  Nathaniel Smith  <njs@codesourcery.com>

	* merkle_tree.hh (netcmd_item_type): Add epoch_item.
	* merkle_tree.cc (netcmd_item_type_to_string): Handle epoch_item.

	* packet.hh, packet.cc (struct packet_db_valve): New class.
	* netsync.cc (session): Use a valved writer.

2005-02-26  Nathaniel Smith  <njs@codesourcery.com>

	* merkle_tree.hh: Fix comment.
	Remove prototypes for non-existing functions.

2005-02-26  Nathaniel Smith  <njs@codesourcery.com>

	* tests/t_epoch_unidirectional.at: New test.
	* testsuite.at: Add it.

2005-02-26  Nathaniel Smith  <njs@codesourcery.com>

	* tests/t_epoch.at: Even more paranoid.
	* tests/t_epoch_server.at: New test.
	* testsuite.at: Add it.

2005-02-21  Nathaniel Smith  <njs@codesourcery.com>

	* tests/t_epoch.at: Check that netsync only sends relevant
	epochs, and be a little more paranoid.

2005-02-19  Nathaniel Smith  <njs@codesourcery.com>

	* revision.cc (struct anc_graph): Fixup after merge.

2005-02-18  Graydon Hoare  <graydon@pobox.com>

	* database.cc (set_epoch): Fix SQL.
	* monotone.texi (Rebuilding ancestry): Reword a bit.
	* netcmd.{cc,hh}
	({read,write}_hello_cmd_payload): Transfer server key with hello.
	({read,write}_confirm_cmd_payload): Transfer epoch list with confirm.
	* netsync.cc: Adapt to changes in netcmd.
	(rebuild_merkle_trees): Set nonexistent epochs to zero before sync.
	* revision.cc (anc_graph): Randomize epochs on rebuild.
	* tests/t_epoch.at: Fix up to test slightly new semantics.

2005-02-07  Nathaniel Smith  <njs@codesourcery.com>

	* monotone.1: Add more db commands.
	* monotone.texi: Document db rebuild.  Add section on rebuilding
	ancestry and epochs.

2005-02-06  Graydon Hoare  <graydon@pobox.com>

	* commands.cc (db): Add epoch commands.
	(list): Likewise.
	Also remove some unneeded transaction guards.
	* database.{cc,hh} (get_epochs): New function.
	(set_epoch): Likewise.
	(clear_epoch): Likewise.
	Also remove all persistent merkle trie stuff.
	* schema.sql: Add epochs, remove tries.
	* schema_migration.cc: Update.
	* tests/t_epoch.at: New test.
	* tests/t_migrate_schema.at: Update.
	* testsuite.at: Add some new helpers, call t_epoch.at.
	* vocab.hh (epoch_id): Define.
	* vocab_terms.hh (epoch): Define.

2005-02-05  Nathaniel Smith  <njs@codesourcery.com>

	* merkle_tree.hh: Remove mcert_item and fcert_item, rename
	rcert_item to cert_item, renumber to remove gaps left.
	* merkle_tree.cc (netcmd_item_type_to_string):
	* netcmd.cc (read_netcmd_item_type):
	* netsync.cc: Adjust accordingly.

2005-02-05  Nathaniel Smith  <njs@codesourcery.com>

	* constants.cc (constants): Bump netsync protocol version.

2005-03-07  Nathaniel Smith  <njs@codesourcery.com>

	* lua.cc (monotone_spawn_for_lua): Minimal change to get arguments
	in right order.  Still needs hygienic cleanups...
	* tests/t_can_execute.at: Run 'cp' instead of 'touch', because cp
	will actually notice if we pass arguments out of order.
	* testsuite.at: Remove mysterious blank line.

2005-03-07  Nathaniel Smith  <njs@codesourcery.com>

	* unix/process.cc (process_spawn): Log command line before
	executing.

2005-03-07  Nathaniel Smith  <njs@codesourcery.com>

	* revision.cc (kill_redundant_edges): Rename back to...
	(kluge_for_3_ancestor_nodes): ...this.  Go back to only cleaning
	up parents of 3+ parent nodes.
	(analyze_manifest_changes): Take a third argument, of files whose
	ancestry needs splitting.
	(construct_revision_from_ancestry): Make more more complex, in
	order to properly track file identity in merges.

2005-03-05  Nathaniel Smith  <njs@codesourcery.com>

	* revision.cc (check_sane_history): Typo.

2005-03-05  Nathaniel Smith  <njs@codesourcery.com>

	* revision.hh (check_sane_history): Take an app_state instead of a
	database as an argument.
	* database.cc: Pass an app_state instead of a database as its
	argument.
	* revision.cc (check_sane_history): Update accordingly.  Add a new
	check for merges, that they are creating consistent changesets
	(even when the common ancestor is outside of the usual
	paranoia-checking search depth).

2005-03-05  Nathaniel Smith  <njs@codesourcery.com>

	* revision.cc (kluge_for_3_ancestor_nodes): Rename to...
	(kill_redundant_edges): ...this.  Kill all redundant edges, not
	just ones on nodes with 3+ parents.  Also, make it actually work.

2005-03-05  Nathaniel Smith  <njs@codesourcery.com>

	* revision.cc (kluge_for_3_ancestor_nodes): New method.
	(rebuild_ancestry): Call it.

2005-03-03  Nathaniel Smith  <njs@codesourcery.com>

	* revision.cc (check_sane_history): Print a warning to let the
	user know why things like 'pull' can take so long.
	* netsync.cc: Remove a few tabs.

2005-03-04  Jon Bright  <jon@siliconcircus.com>

	* win32/process.cc (process_spawn): Now takes
	const char * const argv[]
	* unix/process.cc (process_spawn): Ditto.  Cast for call to
	execvp
	(existsonpath): Initialise args in a const way

2005-03-04  Jon Bright  <jon@siliconcircus.com>

	* win32/process.cc (process_spawn): Now takes
	char * const argv[]
	* platform.hh (process_spawn): Ditto
	* unix/process.cc (process_spawn): Ditto
	* lua.cc (monotone_spawn_for_lua): Remove debug code
	* General: Beginning to hate C++'s const rules

2005-03-04  Jon Bright  <jon@siliconcircus.com>

	* win32/process.cc (process_spawn): Now takes
	const char * const *
	* platform.hh (process_spawn): Ditto
	* unix/process.cc (process_spawn): Ditto
	* General: Sorry about all these commits, I'm syncing back and
	forth between Linux and Win32

2005-03-04  Jon Bright  <jon@siliconcircus.com>

	* win32/process.cc (process_spawn): Now takes char * const *
	* platform.hh (process_spawn): Ditto
	* unix/process.cc (process_spawn): Ditto
	(existsonpath): argv now const char*[]

2005-03-04  Jon Bright  <jon@siliconcircus.com>

	* win32/process.cc: Added forgotten file
	* unix/process.cc: Include stat.h, (process_*) fix compilation
	errors

2005-03-04  Jon Bright  <jon@siliconcircus.com>

	* unix/process.cc: Added forgotten file

2005-03-03  Jon Bright  <jon@siliconcircus.com>

	* lposix.c: Deleted
	* win32/process.cc: Created, added Win32 versions of functions
	existsonpath, make_executable, process_spawn, process_wait,
	process_kill, process_sleep
	* unix/process.cc: Ditto, for the Unix versions.
	* lua.cc: Add LUA wrappers for the above functions, register
	them with LUA
	* std_hooks.lua (execute, attr_functions->execute,
	program_exists_in_path): Use the new functions instead of posix
	functions
	* t_can_execute.at (touchhook.lua): Ditto

2005-03-01  Derek Scherger  <derek@echologic.com>

	* app_state.cc (set_restriction): actually ignore ignored files
	rather than trying to validate them

2005-03-01  Derek Scherger  <derek@echologic.com>

	* tests/t_diff_binary.at: new test (bug report)
	* tests/t_command_completion.at: new test
	* tests/t_merge_rename_file_and_rename_dir.at: new test
	* testsuite.at: include new tests

2005-02-28  Richard Levitte  <richard@levitte.org>

	* Makefile.am (BUILT_SOURCES_CLEAN): Moved mt-stding.h from here...
	(DISTCLEANFILES): ... to here.  Since mt-stding.h is created by
	config.status, it should only be removed by the distclean target.

2005-02-28  Matt Johnston  <matt@ucc.asn.au>

	* std_hooks.lua: posix.iswin32() == 1, rather than plain boolean
	comparison (0 doesn't compare as false in lua it seems).

2005-02-27  Jon Bright  <jon@siliconcircus.com>

	* lposix.c (win32 Pspawn): Search the path
	(win32 Pexistsonpath): Added.  'which' isn't easily available,
	and not available at all from a normal Win32 command shell
	(Piswin32): Added a function for both Unix and Win32 to detect
	if running on Windows
	* std_hooks.lua (program_exists_in_path): Now calls
	posix.iswin32.  If win32, calls posix.existsonpath, otherwise
	calls which as it always did.

2005-02-27  Jon Bright  <jon@siliconcircus.com>

	* lposix.c (win32 Pspawn): Remove dumb strlen bug resulting in
	AVs on commit.

2005-02-27  Jon Bright  <jon@siliconcircus.com>

	* t_can_execute.at: Test to see if hooks can execute things
	* testsuite.at: Add t_can_execute

2005-02-27  Jon Bright  <jon@siliconcircus.com>

	* lposix.c (win32 Pspawn): Ensure the command string is always
	NUL-terminated.  Also, allocate enough memory for the quotes
	around the command string.

2005-02-27  Jon Bright  <jon@siliconcircus.com>

	* xdelta.cc (unittests): Define BOOST_STDC_NO_NAMESPACE, needed
	to compile with the latest MinGW which uses gcc 3.4.2
	* vocab.cc (verify(local_path)): Catch fs::filesystem_error too
	and rethrow this as an informative_failure, thereby fixing the
	Win32 unit tests without disabling anything
	* idna/toutf8.c (stringprep_convert): Fix a potential segfault
	when memory allocation fails.  Potentially security-relevant.
	* tests/t_i18n_file.at: Add a SET_FUNNY_FILENAME macro, which
	gets a platform-appropriate funny filename (with/without
	colon).
	Change references to utf8 to utf-8, iso88591 to iso-8859-1, and
	eucjp to euc-jp, on the grounds that MinGW's iconv knows all
	of the latter and none of the former, but Linux iconv knows all
	of them.  Test now passes one Win32.  I'm presuming we weren't
	deliberately using non-standard names for charsets here.
	* tests/t_i18n_changelog.at: Same charset name changes.
	* tests/t_dump_load.at: Canonicalise dump before loading it
	* tests/t_load_into_existing.at: Ditto
	* tests/t_fmerge.at: Canonicalise fmerge output
	* tests/t_merge_normalization_edge_case.at: Ditto
	* tests/t_unidiff.at: Canonicalise diff output
	* tests/t_largish_file.at: Instead of using dd, which MinGW
	doesn't have, I've generated the file with dd on a nearby Linux
	box, then gziped and b64ed it, and the test case now generates
	it with UNGZB64
	* testsuite.at: Add a comment every 10 tests with the test
	number.  Useful if you're trying to locate which test number
	you're trying to run and only have the filename.  If people
	hate this, though, please do delete.
	(UNB64_COMMAND) Do special handling for Win32 to avoid
	having to canonicalise the file.
	(UNGZ_COMMAND) Canonicalise the file after ungzipping it.
	* lposix.c: (Pfork, Pexec) Removed, on the grounds that we only
	really want to support fork+exec as a single operation.  fork()
	without exec() could be risky with a child process also having
	our sqlite handles, etc.  exec() could be risky since we
	wouldn't be exiting gracefully, just dying in the middle of a
	hook.
	(Pspawn) Implemented for both Win32 and Unix.  Does fork/exec
	for Unix, CreateProcess for Win32.  Returns -1 on error, pid on
	success in both cases.
	(Pwait, Pkill, Psleep) Implemented for Win32.  Note that pid is
	not optional for Pwait on Win32.
	* std_hooks.lua: (execute) Now uses spawn()

2005-02-25  Jon Bright  <jon@siliconcircus.com>

	* ChangeLog: Add all my previous changes.
	* tests/t_add_owndb.at: Add test for trying to add the db to
	itself.
	* testsuite.at: Call it
	* tests/t_automate_heads.at: Canonicalise stdout output.
	* tests/t_automate_version.at: Use arithmetic comparison against
	wc output instead of string comparison, to avoid problems with
	MinGW's wc, which outputs with initial space-padding
	* tests/t_change_empty_file.at: Canonicalise stdout output
	and compare manually instead of letting autotest check it
	* tests/t_fmerge_normalize.at: Canonicalise stdout output.
	* tests/t_netsync_single.at: Use NETSYNC_KILLHARD instead of
	killall, as for the NETSYNC functions in testsuite.at

2005-02-27  Matt Johnston  <matt@ucc.asn.au>

	* main.cc: ignore SIGPIPE so that monotone won't be killed
	unexpectedly upon remote disconnection for netsync

2005-02-27  Nathaniel Smith  <njs@codesourcery.com>

	* idna/idn-int.h: Oops, really add this time.

2005-02-27  Nathaniel Smith  <njs@codesourcery.com>

	* AUTHORS: Add Corey Halpin.

	* idna/idn-int.h: New file (don't generate from configure anymore,
	but just ship).
	* configure.ac: Don't generate idna/idn-int.h.  Do generate
	mt-stdint.h.
	* Makefile.am: Adjust for idna/idn-int.h and mt-stdint.h.
	* acinclude.m4: Remove AX_CREATE_STDINT_H, ACX_PTHREAD,
	AC_COMPILE_CHECK_SIZEOF (let aclocal pick them up from m4/
	instead).
	* m4/ax_create_stdint_h.m4:
	* m4/acx_pthread.m4: Update from http://autoconf-archive.cryp.to/

	* numeric_vocab.hh: Instead of dancing around which header to
	include, include mt-stdint.h.

	* app_state.cc (restriction_includes, set_restriction): Move
	global static 'dot' into these functions, because file_path
	depends on global book_keeping_dir being initialized already, and
	there is no guaranteed order of initialization of C++ statics.
	(Bug reported by Matt Johnston.)

2005-02-27  Corey Halpin  <chalpin@cs.wisc.edu>

	* numeric_vocab.hh: Try both stdint.h and inttypes.h.
	* main.cc: OpenBSD has Unix signals too.

2005-02-26  Derek Scherger  <derek@echologic.com>

	* file_io.cc (absolutify): normalize fs::path to remove ..'s
	* tests/t_db_with_dots.at: ensure database path in MT/options
	doesn't contain ..'s

2005-02-25  Jon Bright  <jon@siliconcircus.com>

	* ChangeLog: Add all my previous changes.
	* tests/t_add_owndb.at: Add test for trying to add the db to
	itself.
	* testsuite.at: Call it
	* tests/t_automate_heads.at: Canonicalise stdout output.
	* tests/t_automate_version.at: Use arithmetic comparison against
	wc output instead of string comparison, to avoid problems with
	MinGW's wc, which outputs with initial space-padding
	* tests/t_change_empty_file.at: Canonicalise stdout output
	and compare manually instead of letting autotest check it
	* tests/t_fmerge_normalize.at: Canonicalise stdout output.
	* tests/t_netsync_single.at: Use NETSYNC_KILLHARD instead of
	killall, as for the NETSYNC functions in testsuite.at

2005-02-25  Nathaniel Smith  <njs@codesourcery.com>

	* vocab.cc (test_file_path_verification): Re-enable some tests
	disabled by Jon Bright, following discussion on IRC concluding
	that they were catching a real bug.

2005-02-24  Nathaniel Smith  <njs@codesourcery.com>

	* tests/t_add_dot.at: Run "add ." in a subdirectory, so as not to
	add the test database.  (Reported by Jon Bright.)

	* AUTHORS: Fix gettext.h copyright note, to not be in the middle
	of libidn copyright note.
	Add Jon Bright.

2005-02-24  Jon Bright  <jon@siliconcircus.com>

	* app_state.cc (prefix): Use string() instead of
	native_directory_string().  For Unix, these should be equivalent.
	For Win32, I believe string()'s correct (since we compare
	everywhere against normalized paths with / characters, but
	native_directory_string produces paths with \ characters on Win32.
	* rcs_file.cc (file_source): Map the map, not the mapping.
	* tests/t_i18n_file.at: Remove colon from filename with symbols.
	I need to return to this and add a proper test for Win32, so we
	only use the colon on non-Win32.
	* testsuite.at: Add a CANONICALISE function, which does nothing
	on Unix and strips out carriage returns from files on Win32.  This
	is useful for being able to compare Monotone's stdout output to
	files on disk.  Add NETSYNC_KILL and NETSYNC_KILLHARD functions,
	to deal with MinGW not having killall (Unix still uses killall,
	though).
	* tests/t_import.at: Add CANONICALISE calls before comparing
	stdout output.
	* tests/t_netsync.at: Likewise
	* tests/t_netsync_single.at: Likewise
	* tests/t_scan.at: Likewise
	* tests/t_versions.at: Likewise
	* tests/t_ls_missing.at: Likewise.  Also, generate missingfoo and
	missingbar files with expected output from ls missing for these
	files being missing and compare against those.

2005-02-24  Derek Scherger  <derek@echologic.com>

	* app_state.{cc,hh} (add_restriction): rename to ...
	(set_restriction) this; and add path validation
	* commands.cc (get_valid_paths): new function
	(get_path_rearrangement) remove restricted include/exclude variant
	(calculate_restricted_revision) get valid paths and use to set up
	restriction
	(status, ls_unknown, commit, do_diff) pass args to
	calculate_restricted_revision to valid restriction paths
	(ls_missing, revert) get valid paths and use to set up restriction
	* tests/t_checkout_options.at: remove bug report priority (it's
	fixed!)
	* tests/t_diff_added_file.at: add --revision options to diff
	* tests/t_restrictions.at: remove invalid paths from ls unknown
	and ls ignored
	* tests/t_restrictions_warn_on_unknown.at: un-XFAIL

2005-02-23  Derek Scherger  <derek@echologic.com>

	* commands.cc (ls_missing): replace duplicated code with call to
	calculate_base_revision

2005-02-23  Jon Bright  <jon@siliconcircus.com>

	* vocab.cc (test_file_path_verification): Disable foo//nonsense
	test for Win32, add tests for UNC paths.  This was the only
	failing unit test on Win32.

2005-02-23  Jon Bright  <jon@siliconcircus.com>

	* txt2c.cc (main): Don't claim the file was generated from
	--strip-trailing if that option's used.

2005-02-23  Jon Bright  <jon@siliconcircus.com>

	* app_state.cc: Add include of io.h for Win32, for chdir()
	* file_io.cc (get_homedir): Correct assertion (remove bracket)
	* lua/lposix.c, lua/modemuncher.c: Remove all references to
	functions and modes that don't exist on Win32.
	* monotone.cc: Include libintl.h on Win32

2005-02-21  Nathaniel Smith  <njs@codesourcery.com>

	* file_io.cc (get_homedir): Add more comments and logging to Win32
	version.  Also, only check HOME under Cygwin/MinGW.

2005-02-21  Derek Scherger  <derek@echologic.com>

	* Makefile.am: merge fixup

2005-02-21  Derek Scherger  <derek@echologic.com>

	* Makefile.am: add fsck.{cc,hh}
	* commands.cc(check_db): move to ...
	* fsck.{cc,hh}: here and do lots more checking
	* database.{cc,hh}(get_ids): new method
	(get_file_ids,get_manifest_ids,get_revision_ids): more new methods
	* tests/t_fsck.at: new test
	* testsuite.at: call it

2005-02-21  Nathaniel Smith  <njs@codesourcery.com>

	* commands.cc (commit): Simplify chatter.

2005-02-21  Nathaniel Smith  <njs@codesourcery.com>

	* file_io.cc (get_homedir): Check more environment variables in
	Win32 version.

2005-02-21  Nathaniel Smith  <njs@codesourcery.com>

	* file_io.cc: Remove tabs.

2005-02-21  Nathaniel Smith  <njs@codesourcery.com>

	* smap.hh (smap): Remove leading underscores, add comments.

2005-02-20  Nathaniel Smith  <njs@codesourcery.com>

	* std_hooks.lua (merge2, merge3): Check for DISPLAY before
	invoking gvim.

2005-02-20  Julio M. Merino Vidal  <jmmv@NetBSD.org>

	* ChangeLog: Use tabs for indentation rather than spaces.  Drop
	trailing whitespace.  While here, fix a date by adding zeros before
	the month and the day number.

2005-02-20  Julio M. Merino Vidal  <jmmv@NetBSD.org>

	* gettext.h: Add file.
	* AUTHORS: Mention that it comes from the GNU Gettext package.
	* Makefile.am: Distribute it.
	* sanity.hh: Use gettext.h rather than libintl.h so that --disable-nls
	works.  Also improves portability, according to the GNU Gettext
	manual.

2005-02-19  Derek Scherger  <derek@echologic.com>

	* automate.cc (automate_heads): remove bogus call to
	app.allow_working_copy() which is called in cpp_main
	* database.cc (check_sqlite_format_version): don't check database
	version when "file" is really a directory; add filename to error
	message
	(sql): check for empty database early, even though this seems
	impossible as absolutify changes "" into path to working dir;
	convert to use N-style assertions; add check to ensure "file" is
	not really a directory
	* tests/t_db_missing.at: new test for above problems
	* testsuite.at: call it

2005-02-19  Nathaniel Smith  <njs@codesourcery.com>

	* tests/t_add_intermediate_MT_path.at: Tighten up.

	* tests/t_merge_3.at: New test.
	* tests/t_merge_4.at: Likewise.
	* testsuite.at: Add them.

2005-02-19  Ole Dalgaard  <josua+monotone@giraffen.dk>

	* configure.ac: Check for 64-bit versions of Boost static
	libraries.

2005-02-18  Julio M. Merino Vidal  <jmmv@NetBSD.org>

	* INSTALL:
	* configure.ac: Improve Boost detection by trying several possible
	library suffixes before aborting.

2005-02-18  Graydon Hoare  <graydon@pobox.com>

	* change_set.cc
	(apply_change_set): Avoid fast path when there are adds.
	(apply_path_rearrangement): Likewise.

2005-02-18  Graydon Hoare  <graydon@pobox.com>

	* automate.cc (automate_heads): Fix initialize() call.
	* change_set.{cc,hh}
	(apply_path_rearrangement): Add quick version.
	* revision.cc
	(check_sane_history): Use quick version of apply_change_set.
	* work.cc
	(build_addition): Use quick version of apply_path_rearrangement.
	(known_preimage_path): Likewise.
	* testsuite.at: Fix definitions of _ROOT_DIR, add --norc some
	places.
	* AUTHORS: Mention Daniel.

2005-02-18  Daniel Berlin  <dberlin@dberlin.org>

	* xdelta.cc (compute_delta_insns): Correct 1-byte-source bug.

2005-02-18  Graydon Hoare  <graydon@pobox.com>

	* Makefile.am (MOST_SOURCES): Add smap.hh.

2005-02-18  Graydon Hoare  <graydon@pobox.com>

	* basic_io.{cc,hh}: Inline some stuff.
	* change_set.cc: Use smap various places, reduce to 32-bit tids.
	* commands.cc: Use shared_ptr<change_set> everywhere.
	* netsync.cc: Likewise.
	* rcs_import.cc: Likewise.
	* revision.{cc,hh}: Likewise.
	* smap.hh: New file.

2005-02-18  Julio M. Merino Vidal  <jmmv@NetBSD.org>

	* INSTALL:
	* configure.ac: Improve Boost detection by trying several possible
	library suffixes before aborting.

2005-02-17  Derek Scherger  <derek@echologic.com>

	* tests/t_add_intermediate_MT_path.at: new test
	* testsuite.at: call it

2005-02-17  Julio M. Merino Vidal  <jmmv@NetBSD.org>

	* testsuite.at:
	* tests/t_change_empty_file.at: Verify that modifying an empty file
	creates a patch revision rather than an add/delete sequence.  The
	incorrect behavior was reported in bug #9964.

2005-02-17  Derek Scherger  <derek@echologic.com>

	* app_state.{cc,hh} (app_state): initialize search root
	(initialize): boolean signature variant renamed to ...
	(allow_working_copy): this; add explicit search root; move
	requirement for working copy to ...
	(require_working_copy): this new method
	(initialize): string signature variant renamed to ...
	(create_working_copy): this
	(set_root): new method
	* commands.cc: remove app.initialize(false) calls; replace
	app.initialize(true) with app.require_working_copy(); replace
	app.initialize(dir) with app.create_working_copy(dir)
	(checkout): ensure revision is member of specified branch
	* file_io.{cc,hh} (find_working_copy): stop search at --root if
	specified
	* monotone.cc (OPT_ROOT): new option
	(cpp_main): call app.allow_working_copy() before executing
	commands to always read default options
	* monotone.1: add --root option
	* monotone.texi: add --root option
	* tests/t_checkout_noop_on_fail.at: un-XFAIL
	* tests/t_checkout_options.at: un-XFAIL, add check for specified
	revision not in specified branch
	* testsuite.at: add --root option to MONOTONE to prevent searching
	above test dir
	* vocab.cc: remove redundant forward declaration

2005-02-16  Derek Scherger  <derek@echologic.com>

	* commands.cc (revert): don't rewrite unchanged files
	* tests/t_revert_unchanged.at: new test
	* testsuite.at: call it

2005-02-12  Derek Scherger  <derek@echologic.com>

	* database.cc (sqlite3_unpack_fn): new function for viewing
	base64, gzipped data
	(install_functions): install it
	(rehash): remove unused obsolete fcerts ticker

2005-02-17  Nathaniel Smith  <njs@codesourcery.com>

	* debian/changelog: s/graydon@mogo/graydon@pobox.com/, to make
	lintian happy.
	* debian/rules (config.status): Remove --with-bundled-adns.
	* debian/control (Build-Depends): Don't Build-Depend on libpopt,
	only libpopt-dev.
	* .mt-attrs (debian/control): Make executable.

2005-02-17  Nathaniel Smith  <njs@codesourcery.com>

	* tests/t_undo_update.at: Stupid typo.
	* tests/t_largish_file.at: New test.
	* testsuite.at: Add it.

	* commands.cc (push, pull, sync): Remove misleading "..." from
	help text.

2005-02-16  Julio M. Merino Vidal  <jmmv@NetBSD.org>

	* Makefile.am: Append $(BOOST_SUFFIX) to -lboost_unit_test_framework
	to fix 'make check' on systems where boost libraries can only be
	found by passing the exact suffix as part of the name.

2005-02-16  Julio M. Merino Vidal  <jmmv@NetBSD.org>

	* monotone.texi: Fix a typo (hexidecimal to hexadecimal).  Also
	change an example command to append stuff to ~/.monotonerc, instead
	of completely destroying the possibily existing file.  Addresses
	bug #11136.

2005-02-16  Julio M. Merino Vidal  <jmmv@NetBSD.org>

	* cryptopp/config.h: Use uint{8,16,32,64}_t as size types instead of
	trying to match them to unsigned char/int/long/long long respectively.
	Should fix build on FreeBSD/sparc64, as seen in bug #10203.

2005-02-16  Julio M. Merino Vidal  <jmmv@NetBSD.org>

	* INSTALL:
	* Makefile.am:
	* configure.ac: Add the --disable-large-file option to manually
	disable large file support from the builtin sqlite (compatibility
	with old systems and FAT).  Addresses bug #8380.

2005-02-16  Nathaniel Smith  <njs@codesourcery.com>

	* tests/t_undo_update.at: New todo.
	* testsuite.at: Add it.

2005-02-15  Nathaniel Smith  <njs@codesourcery.com>

	* monotone.1: Add cursory note about "automate".
	* monotone.texi: Synchronize with manpage.

2005-02-15  Nathaniel Smith  <njs@codesourcery.com>

	* automate.cc: Add "Error conditions" to the standard comment
	sections.

	* monotone.texi (Scripting): New section.
	(Automation): New section.

	* tests/t_automate_heads.at: Test behavior with nonexistent
	branch.

2005-02-14  Nathaniel Smith  <njs@codesourcery.com>

	* tests/t_merge_normalization_edge_case.at: New test.
	* testsuite.at: Add it.

	* diff_patch.cc (normalize_extents): Soften the warning message
	now that we have one test case.

2005-02-14  Matthew A. Nicholson  <mnicholson@digium.com>

	* std_hooks.lua: Add vimdiff merge hooks.

2005-02-14  Nathaniel Smith  <njs@codesourcery.com>

	* std_hooks.lua: Remove tabs.

2005-02-14  Nathaniel Smith  <njs@codesourcery.com>

	* tests/t_automate_heads.at: New test.
	* tests/t_automate_version.at: New test.
	* testsuite.at: Add then.

	* commands.cc (automate): Fix documentation string.
	* automate.cc: Much more structured documentation comments.

2005-02-13  Nathaniel Smith  <njs@codesourcery.com>

	* automate.{cc,hh}: New files.
	* commands.cc: New command "automate".

2005-02-13  Nathaniel Smith  <njs@codesourcery.com>

	* monotone.texi (Creating a Database): Fix typo, clarify
	conventions for database management following question on mailing
	list.

2005-02-12  Graydon Hoare  <graydon@pobox.com>

	* change_set.{cc,hh}: Correct code to pass newly-added unit tests.

2005-02-10  Derek Scherger  <derek@echologic.com>

	* monotone.1: update for restrictions
	* monotone.texi: sync with manpage

2005-02-09  Derek Scherger  <derek@echologic.com>

	* cert.cc (cert_revision_testresult): allow pass/fail testresult
	values
	* commands.cc (testresult): likewise
	* commands.cc (do_diff): disallow restriction of non-working copy
	diffs
	* monotone.texi: update for restrictions

2005-02-08  Graydon Hoare  <graydon@pobox.com>

	* database.cc (version_cache::set): Fix bad expiry logic.

2005-02-08  Nathaniel Smith  <njs@codesourcery.com>

	* change_set.cc (check_sane): Null sources are only valid for
	adds.

2005-02-07  Nathaniel Smith  <njs@codesourcery.com>

	* database.cc (struct version_cache): Fix invariant in cache
	clearing logic.

2005-02-06  Nathaniel Smith  <njs@codesourcery.com>

	* change_set.cc: Add a few more invariants; add lots and lots of
	unit tests.

2005-02-06  Graydon Hoare  <graydon@pobox.com>

	* change_set.cc: Use hash_map in a few places.
	(confirm_unique_entries_in_directories): Fix invariants.
	* constants.{cc,hh} (db_version_cache_sz): New constant.
	* database.cc (version_cache): New structure.
	(get_version): Use it.
	* interner.hh: Rewrite to use hash_map and vector.
	* tests/t_no_rename_overwrite.at: Tweak return codes.

2005-02-06  Nathaniel Smith  <njs@codesourcery.com>

	* ui.hh (ensure_clean_line): New method.
	* ui.cc (inform): Use it.
	* keys.cc (get_passphrase): Call it before prompting for passphrase.

2005-02-06  Nathaniel Smith  <njs@codesourcery.com>

	* database.cc (info): Report more statistics.

	* ROADMAP: Remove finished items.

	* revision.cc (analyze_manifest_changes): Childs cannot be null,
	that makes no sense.
	(add_node_for_old_manifest): Log node names, don't print it.
	(construct_revision_from_ancestry): Partially rewrite to handle
	root nodes explicitly.
	(build_changesets_from_existing_revs): Don't put the null revision
	in the ancestry graph, to match changesetify logic.
	(add_node_for_old_revision): Enforce decision that the ancestry
	graph not contain the null revision.

	(anc_graph::heads): Remove.
	(add_node_ancestry): Don't try creating it; logic was broken
	anyway.
	(rebuild_from_heads): Rename to...
	(rebuild_ancestry): ...this.  Calculate head set correctly.

2005-02-05  Nathaniel Smith  <njs@codesourcery.com>

	* change_set.cc (compose_path): Add more invariants.

2005-02-05  Nathaniel Smith  <njs@codesourcery.com>

	* monotone.cc (cpp_main): Log command line, to help interpret the
	logs people send in.

2005-02-05  Nathaniel Smith  <njs@codesourcery.com>

	* revision.cc (check_sane): Turn off this invariant when
	global_sanity.relaxed.

2005-02-03  Nathaniel Smith  <njs@codesourcery.com>

	* tests/t_load_into_existing.at: Oops, really add it too, sigh.

2005-02-03  Nathaniel Smith  <njs@codesourcery.com>

	* tests/t_need_mt_revision.at: Oops, really add it.

2005-02-03  Nathaniel Smith  <njs@codesourcery.com>

	* interner.hh (interner::intern): Add version taking a bool&, so
	callers can tell whether this string has previously been checked.
	* change_set.cc: Use new interned string identifier
	'path_component's instead of file_path's for components of paths;
	sanity-check each component exactly once.

2005-02-03  Nathaniel Smith  <njs@codesourcery.com>

	* database.cc (load): Check for existence of target database.
	* tests/t_load_into_existing.at: New test.
	* testsuite.at: Add it.

2005-02-03  Nathaniel Smith  <njs@codesourcery.com>

	* tests/t_checkout_dir.at: Also check that checkout to unwriteable
	directory fails.
	* tests/t_branch_checkout.at: New test.
	* testsuite.at: Add it.

	* app_state.cc (initialize): Simplify working directory
	initialization, and improve error handling.

	* keys.cc (get_passphrase): Disallow empty passphrases early
	(before they trigger an invariant down the line...).

2005-02-03  Nathaniel Smith  <njs@codesourcery.com>

	* update.cc (pick_update_candidates): Add I().
	* commands.cc (calculate_base_revision): Remove 'rev' argument,
	which was never set and callers never used.
	(calculate_base_manifest, calculate_current_revision)
	(calculate_restricted_revision, revert): Update correspondingly.
	(update): Check for null old revision.

	* main.cc (main): Make exit status 3 if we caught an unhandled
	exception, in particular so the testsuite can tell the difference
	between an error handled cleanly and an error caught by an
	invariant.
	* tests/t_update_null_revision.at: New test.
	* testsuite.at: Add it.

2005-02-03  Nathaniel Smith  <njs@codesourcery.com>

	* main.cc: Remove tabs.

2005-02-02  Nathaniel Smith  <njs@codesourcery.com>

	* change_set.cc (extract_first): Rename to...
	(extract_pairs_and_insert): ...this.
	(path_rearrangement::check_sane): Use it to add additional
	checks.

	* work.hh: Update comments (MT/manifest doesn't exist
	anymore...).

	* tests/t_need_mt_revision.at: New test.
	* testsuite.at: Add it.
	* commands.cc (get_revision_id): Require MT/revision to exist.
	(setup): Create MT/revision.

2005-02-02  Nathaniel Smith  <njs@codesourcery.com>

	* work.hh: Remove tabs.

2005-02-03  Graydon Hoare  <graydon@pobox.com>

	* tests/t_i18n_changelog.at: New test.
	* testsuite.at: Run it.
	* lua/lposix.c: New file.
	* lua/modemuncher.c: New file
	* lua.cc: Load posix library.
	* lua/liolib.c: Disable execute and popen.
	* std_hooks.lua: Remove io.execute uses.
	* AUTHORS: Update to mention lposix.c, modemuncher.c.
	* Makefile.am: Likewise.

2005-02-01  Nathaniel Smith  <njs@codesourcery.com>

	* tests/t_rebuild.at: Beef up test in response to possible
	problems reported by Derek Scherger.

2005-01-31  Nathaniel Smith  <njs@codesourcery.com>

	* rcs_import.cc (store_manifest_edge): Don't try to store deltas
	to the null manifest.
	(import_cvs_repo): Root revision has null manifest, not empty
	manifest.
	* revision.cc (check_sane): More invariants.

2005-01-28  Graydon Hoare  <graydon@pobox.com>

	* database.{cc,hh}: More netsync speed tweaks.
	* netsync.cc: Likewise.

2005-01-27  Nathaniel Smith  <njs@codesourcery.com>

	* tests/t_restrictions_warn_on_unknown.at: New test.
	* testsuite.at: Add it.

2005-01-27  Derek Scherger  <derek@echologic.com>

	* commands.cc (attr): adjust for subdir; ensure files exist
	* tests/t_attr.at: improve setup description
	* tests/t_attributes.at: improve setup description so that
	testsuite -k attr runs this test; check for attributes on missing
	files
	* tests/t_subdir_attr.at: new test
	* testsuite.at: fix dutch spelling of monotone; call new test

2005-01-27  Nathaniel Smith  <njs@codesourcery.com>

	* change_set.hh (null_id): New function.
	* revision.cc (analyze_manifest_changes): Fix typo, use null_id.
	* tests/t_rebuild.at: Un-XFAIL.

2005-01-27  Nathaniel Smith  <njs@codesourcery.com>

	* tests/t_rebuild.at: Add priority tag.

	* tests/t_cvsimport.at: Be more thorough.

	* rcs_import.cc (store_edge): Rename to...
	(store_manifest_edge): ...this.  Remove revision arguments, and
	remove storing of revision.
	(import_states_recursive): Update accordingly.
	Add 'revisions' argument; update it instead of trying to write
	revisions now.
	(import_states_by_branch): Add 'revisions' argument.
	(import_cvs_repo): Add a stage 3 that writes out the revisions
	accumulated in the 'revisions' vector.

2005-01-27  Matt Johnston  <matt@ucc.asn.au>

	(compile fixes for Linux/gcc 3.3.4)
	* botan/{util.cpp,primes.cpp}: give large constants ULL
	suffixes
	* botan/{gzip.cpp}: fix type for std::max() comparison

2005-01-27  Graydon Hoare  <graydon@pobox.com>

	* AUTHORS: Mention Georg.
	* change_set.cc: Null out names which are in null directories.
	* commands.cc (reindex): Remove COLLECTION argument.
	* database.{cc,hh} (get_revision_certs):
	Add brute force "load all certs" method.
	* merkle_tree.{cc,hh}: Modify to use memory rather than disk.
	* netsync.{cc,hh}: Likewise.
	* packet.hh (manifest_edge_analyzer): Kill dead code.

2005-01-26  Nathaniel Smith  <njs@codesourcery.com>

	* mt_version.cc (print_full_version): Include system flavour.

2005-01-26  Nathaniel Smith  <njs@codesourcery.com>

	* tests/t_rebuild.at: New test.
	* testsuite.at: Add it.

2005-01-26  Nathaniel Smith  <njs@codesourcery.com>

	* tests/t_checkout_noop_on_fail.at: Clarify description and XFAIL.

	* tests/t_approval_semantics.at: New TODO.
	* tests/t_monotone_agent.at: New TODO.
	* testsuite.at: Add them.

2005-01-25  Nathaniel Smith  <njs@codesourcery.com>

	* tests/t_checkout_noop_on_fail.at: New test.
	* testsuite.at: Add it.
	(RAW_MONOTONE): Add $PREEXECUTE to definition.

2005-01-25  Nathaniel Smith  <njs@codesourcery.com>

	* change_set.cc (extend_renumbering_from_path_identities): Add
	invariant.
	(extend_renumbering_via_added_files): Likewise.

	* constants.hh (maxbytes, postsz): Remove dead constants.
	(verify_depth): New constant.
	* constants.cc: Likewise.
	* revision.hh (check_sane_history): New function.
	* revision.cc (check_sane_history): Likewise.
	* database.cc (put_revision): Sanity check revision and revision
	history before storing it.
	This breaks cvs import.  Why?

	* update.cc (find_deepest_acceptable_descendent): Remove.
	(acceptable_descendent, calculate_update_set): New functions.
	(pick_update_candidates): Use 'calculate_update_set'.
	* tests/t_update_2.at: Un-XFAIL.
	* tests/t_ambig_update.at: Un-XFAIL.

	* tests/t_no_rename_overwrite.at: New test.
	* tests/t_cdiff.at: New test placeholder.
	* testsuite.at: Add them.
	(MONOTONE): Prefix command line with $PREEXECUTE to e.g. support
	running under Valgrind.

2005-01-25  Matt Johnston  <matt@ucc.asn.au>

	* cert.cc: ignore whitespace when comparing private keys
	from the database and with the lua hook
	* tests/t_lua_privkey.at: new test
	* testsuite.at: run it

2005-01-23  Derek Scherger  <derek@echologic.com>

	* commands.cc (restrict_rename_set): include renames if either
	name is present in restriction
	(calculate_base_revision): remove unused variant
	(calculate_current_revision): remove unsed variable
	(calculate_restricted_revision): remove unsed variable
	(ls_missing): remove unsed variable
	(revert): rewrite with restrictions
	* tests/t_revert.at: test partial reverts adjust MT/work properly
	* tests/t_revert_dirs.at: un-XFAIL
	* tests/t_revert_rename.at: un-XFAIL; revert rename via both names

2005-01-23  Derek Scherger  <derek@echologic.com>

	* tests/t_revert_rename.at: remove extra MONOTONE_SETUP
	attempt revert by both original name and new name

2005-01-23  Derek Scherger  <derek@echologic.com>

	* tests/t_revert_rename.at: New test.
	* testsuite.at: Add it.

2005-01-22  Derek Scherger  <derek@echologic.com>

	* tests/t_revert_dirs.at: New test.
	* testsuite.at: Add it.

2005-01-22  Nathaniel Smith  <njs@codesourcery.com>

	* configure.ac (AC_INIT): Set bug-reporting address to list
	address, rather than Graydon's personal email.
	* diff_patch.cc (normalize_extents): Use it.
	* ui.cc (fatal): Likewise.

	* tests/t_vcheck.at: New priority "todo", tweak descriptive text.

2005-01-23  Derek Scherger  <derek@echologic.com>

	* database.{cc,hh}: convert queries to use prepared statements

2005-01-22  Nathaniel Smith  <njs@codesourcery.com>

	* tests/t_delete_dir.at: Add more commentary.

	* tests/t_rename_dir_patch.at: New test.
	* tests/t_delete_dir_patch.at: New test.
	* testsuite.at: Add them.

2005-01-22  Nathaniel Smith  <njs@codesourcery.com>

	* change_set.cc (apply_change_set): Add invariants.
	* tests/t_rename_dir_cross_level.at: New test.
	* tests/t_rename_added_in_rename.at: New test.
	* tests/t_rename_conflict.at: New test.
	* testsuite.at: Add them.

2005-01-21  Nathaniel Smith  <njs@codesourcery.com>

	* tests/t_ambig_update.at: Update comments.

	* tests/t_update_2.at: New test from Georg-W. Koltermann
	<Georg.Koltermann@mscsoftware.com>.
	* testsuite.at: Add it.

2005-01-20  Nathaniel Smith  <njs@codesourcery.com>

	* tests/t_lca_1.at: New bug report.
	* testsuite.at: Add it.

2005-01-19  Nathaniel Smith  <njs@codesourcery.com>

	* commands.cc (merge): Improve merge chatter.
	(do_diff): Don't print anything when there are no
	changes.

2005-01-19  Nathaniel Smith  <njs@codesourcery.com>

	* tests/t_db_with_dots.at: New test.
	* testsuite.at: Add it.

2005-01-19  Patrick Mauritz <oxygene@studentenbude.ath.cx>

	* Makefile.am (%.h, package_revision.h, package_full_revision.h):
	Don't update target file if no change has occurred, to reduce
	unnecessary rebuilds.

2005-01-18  Nathaniel Smith  <njs@codesourcery.com>

	* rcs_import.cc (cvs_key): Initialize struct tm to all zeros, to
	stop garbage sneaking in -- thanks to Zack Weinberg for pointing
	this out.  Also, handle 2 digit years properly on WIN32.

2005-01-18  Nathaniel Smith  <njs@codesourcery.com>

	* rcs_import.cc: Remove tabs.

2005-01-19  Matt Johnston  <matt@ucc.asn.au>

	* database.cc: Pass filename to check_sqlite_format_version as a
	fs::path, so that it doesn't get passed as a freshly created fs::path
	with default checker (which disallows '.foo' path components)

2005-01-19  Nathaniel Smith  <njs@codesourcery.com>

	* netsync.cc (session, process_confirm_cmd, dispatch_payload):
	Back out some over-zealous changes that broke netsync
	compatibility.  Probably should redo later, when have a chance to
	bump netsync protocol number, but we're not ready for that now.

2005-01-19  Nathaniel Smith  <njs@codesourcery.com>

	* tests/t_subdir_revert.at: New test.
	* tests/t_subdir_rename.at: New test.
	* testsuite.at: Add them.

2005-01-18  Nathaniel Smith  <njs@codesourcery.com>

	* tests/t_subdir_add.at: New test.
	* tests/t_subdir_drop.at: New test.
	* testsuite.at: Add them.
	* tests/t_delete_dir.at: Implement it.

2005-01-19  Nathaniel Smith  <njs@codesourcery.com>

	* netcmd.cc: Remove tabs.

2005-01-19  Nathaniel Smith  <njs@codesourcery.com>

	* merkle_tree.cc: Remove tabs.

2005-01-18  Nathaniel Smith  <njs@codesourcery.com>

	* rcs_import.cc (cvs_key): Initialize struct tm to all zeros, to
	stop garbage sneaking in -- thanks to Zack Weinberg for pointing
	this out.  Also, handle 2 digit years properly on WIN32.

2005-01-18  Nathaniel Smith  <njs@codesourcery.com>

	* rcs_import.cc: Remove tabs.

2005-01-18  Nathaniel Smith  <njs@codesourcery.com>

	* monotone.texi: Undocument mcerts, fcerts; rename rcerts to
	certs.
	* monotone.1: Likewise.

2005-01-18  Nathaniel Smith  <njs@codesourcery.com>

	* commands.cc (restrict_rename_set): Fix types to compile with old
	rename_set gunk removed.
	Alter logic to yell if a rename crosses the restriction boundary,
	rather than silently ignore it.

2005-01-19  Graydon Hoare  <graydon@pobox.com>

	* commands.cc: Fix up some merge breakage.
	* tests/t_add_dot.at: Un-XFAIL.
	* testsuite.at: Run "setup ." before "db init".

2005-01-09  Derek Scherger  <derek@echologic.com>

	* commands.cc (get_path_rearrangement): new function/signature for
	splitting restricted rearrangements
	(calculate_restricted_revision): use it and update to work
	similarly to calculate_current_revision
	(trusted): call app.initialize(false)
	(ls_missing): adjust for new get_path_rearrangement
	(attr): call app.initialize(true)
	(diff): merge cleanup
	(lca, lcad, explicit_merge): call app.initialize(false)
	* app_state.cc (constructor): set database app state
	(load_rcfiles): add required booleans
	* lua.{cc,hh} (load_rcfile): add required boolean
	* tests/t_add.at:
	* tests/t_diff_added_file.at:
	* tests/t_disapprove.at:
	* tests/t_drop_missing.at:
	* tests/t_heads.at:
	* tests/t_heads_discontinuous_branch.at:
	* tests/t_i18n_file.at:
	* tests/t_log_nonexistent.at:
	* tests/t_merge_add_del.at:
	* tests/t_netsync.at:
	* tests/t_netsync_pubkey.at:
	* tests/t_netsync_single.at:
	* tests/t_persistent_server_keys.at:
	* tests/t_persistent_server_revision.at:
	* tests/t_remerge.at:
	* tests/t_tags.at:
	* tests/t_update_missing.at:
	* tests/t_update_to_revision.at: add --message option to commits
	* tests/t_merge2_add.at:
	* tests/t_merge2_data.at:
	* tests/t_netsync_unrelated.at: create working directory with new
	setup command
	* tests/t_erename.at: update for revisions
	* tests/t_no_change_deltas.at: add --revision options to diff
	* tests/t_restrictions.at: remove some cruft and update to work
	with revisions
	* tests/t_subdirs.at: pass correct --rcfile and --db options from
	within subdir
	* testsuite.at (REVERT_TO): remove MT dir before checkout, which
	now fails if MT exists, replace checkout MT/options with old
	MT/options
	(COMMIT): add --message option to commit macro
	* work.cc (read_options_map): don't overwrite option settings when
	reading options map so that command line settings take precedence

2005-01-18  Nathaniel Smith  <njs@codesourcery.com>

	* netsync.cc: Partially fix comment (s/manifest/revision/ etc.).
	(dispatch_payload): Ignore mcert and fcert refinement requests,
	instead of dying on them.  Hack, but I think it should let this
	netsync continue to interoperate with old netsync...

2005-01-18  Nathaniel Smith  <njs@codesourcery.com>

	* vocab.hh: Remove file<cert>.
	* vocab.cc: Likewise.
	* packet_types.hh: Remove file.
	* Makefile.am (MOST_SOURCES): Remove packet_types.hh and mac.hh.

2005-01-18  Nathaniel Smith  <njs@codesourcery.com>

	* netsync.cc (process_confirm_cmd): Don't try refining mcert and
	fcert trees.
	Remove other dead/pointless code.

2005-01-18  Nathaniel Smith  <njs@codesourcery.com>

	* database.hh: Remove file cert stuff.
	* netsync.cc (data_exists): We don't have file/manifest certs.
	(load_data): Likewise.

2005-01-18  Nathaniel Smith  <njs@codesourcery.com>

	* netsync.cc (process_data_cmd): Ignore file/manifest certs.

	* database.cc (struct valid_certs): Don't support file certs.
	(rehash): No file certs.
	(file_cert_exists): Remove.
	(put_file_cert): Remove.
	(get_file_certs): Remove.

2005-01-18  Nathaniel Smith  <njs@codesourcery.com>

	* packet.cc (class delayed_manifest_cert_packet):
	(class delayed_file_cert_packet): Remove.
	(packet_db_writer::consume_file_cert, consume_manifest_cert)
	(packet_writer::consume_file_cert, consume_manifest_cert)
	Remove.
	(struct feed_packet_consumer): Don't support mcert/fcert packets.
	(extract_packets): Likewise.
	(packet_roundabout_test): Test revision certs, not manifest/file
	certs.

	* packet.hh (packet_consumer::consume_file_cert):
	(packet_consumer::consume_manifest_cert):
	(packet_writer::consume_file_cert):
	(packet_writer::consume_manifest_cert):
	(packet_db_writer::consume_file_cert):
	(packet_db_writer::consume_manifest_cert):
	Remove.

	* lua.hh (hook_get_file_cert_trust): Remove.
	* lua.cc (hook_get_file_cert_trust): Remove.

2005-01-18  Nathaniel Smith  <njs@codesourcery.com>

	* cert.hh (erase_bogus_certs): Re-add manifest cert version.

	* monotone.texi (Hook Reference): Remove documentation of
	get_{file,manifest}_cert_trust.

2005-01-18  Nathaniel Smith  <njs@codesourcery.com>

	* cert.cc (erase_bogus_certs): Re-add manifest cert version.
	(bogus_cert_p): Likewise.

2005-01-18  Nathaniel Smith  <njs@codesourcery.com>

	* cert.hh (rename_edge):
	(rename_set):
	(calculate_renames):
	(rename_cert_name): Remove.
	(cert_file_comment):
	(cert_manifest_comment): Remove.
	(erase_bogus_certs): Remove manifest and file versions.
	* cert.cc (rename_cert_name): Remove.
	(bogus_cert_p): Remove manifest<cert> and file<cert> variants.
	(erase_bogus_certs): Likewise.
	(put_simple_manifest_cert):
	(put_simple_file_cert):
	(cert_file_comment): Remove.

	* commands.cc (fcerts): Remove.
	(mcerts): Likewise.
	(rcerts): Rename to...
	(certs): ...this.  s/revision certs/certs/ in help text.
	(trusted): s/revision cert/cert/.
	(ls_certs): Don't special-case rename certs.

2005-01-18  Nathaniel Smith  <njs@codesourcery.com>

	* tests/t_vcheck.at: Fix AT_XFAIL_IF typo.

2005-01-18  Nathaniel Smith  <njs@codesourcery.com>

	* monotone.texi (Reserved Certs): Remove 'vcheck'.
	(Key and Cert): Remove 'vcheck'.
	(Accidental collision): Likewise.
	(Commands): Likewise.
	* tests/t_vcheck.at: Add note about manual having useful stuff for
	when vcheck is re-added.

2005-01-18  Nathaniel Smith  <njs@codesourcery.com>

	* mac.hh:
	* cert.cc (vcheck_cert_name):
	(calculate_vcheck_mac):
	(cert_manifest_vcheck
	(check_manifest_vcheck):
	* cert.hh (cert_manifest_vcheck):
	(check_manifest_vcheck):
	* constants.cc (constants::vchecklen):
	* constants.hh (constants::vchecklen):
	* commands.cc (vcheck):
	Remove.

	* tests/t_vcheck.at: New test.
	* testsuite.at: Call it.

2005-01-18  Nathaniel Smith  <njs@codesourcery.com>

	* ROADMAP: Remove 'upgrade to sqlite3' todo item.

2005-01-18  Nathaniel Smith  <njs@codesourcery.com>

	* commands.cc (tag):
	(testresult):
	(approve):
	(disapprove):
	(comment):
	(fload):
	(fmerge):
	(cat):
	(rcs_import): Change grouping for "--help" display, to make more
	informative.
	(rcs_import): Also add more details to help text.

2005-01-17  Matt Johnston  <matt@ucc.asn.au>

	* file_io.cc: re-add accidentally removed #include
	* botan/gzip.cc: improved comments, removed unused code

2005-01-17  Nathaniel Smith  <njs@codesourcery.com>

	* diff_patch.cc (normalize_extents): Add missing ')'.

2005-01-17  Nathaniel Smith  <njs@codesourcery.com>

	* tests/t_update_1.at: New test.
	* testsuite.at: Call it.

2005-01-11  Nathaniel Smith  <njs@codesourcery.com>

	* diff_patch.cc (normalize_extents): Add warning for anyone who
	manages to trigger the untested part of the normalization code.

2005-01-14  Christian Kollee <stuka@pestilenz.org>

	* search for and link with sqlite3 when --bundle-sqlite=no

2005-01-12  Derek Scherger  <derek@echologic.com>

	* tests/t_ambig_update.at: add comments from discussion on irc
	* tests/t_status_missing.at: new test
	* testsuite.at: include it

2005-01-10  Graydon Hoare  <graydon@pboox.com>

	* commands.cc (explicit_merge): Tweak merge message.
	* database.cc (check_sqlite_format_version): New function.
	(database::sql): Call it.
	* sqlite/pager.hh (SQLITE_DEFAULT_PAGE_SIZE): Adjust to 8192.
	(SQLITE_MAX_PAGE_SIZE): Adjust to 65536.
	* schema_migration.cc: Post-merge cleanup.
	* Makefile.am: Likewise.

2005-01-10  Christof Petig <christof@petig-baender.de>

	* sqlite/*: SQLite 3.0.8 CVS import
	* database.{cc,hh}:
	* schema_migration.{cc,hh}: convert to use the SQLite3 API

	This does not yet use any of the more sophisticated API features
	of SQLite3 (query parameters, BLOBs), so there is plenty of room
	for optimization. This also does not change the schema (i.e.
	still uses base64 encoded values in tables)

2005-01-17  Graydon Hoare  <graydon@pobox.com>

	* AUTHORS: Mention Wojciech and Neil.
	* revision.cc (calculate_ancestors_from_graph): Make non-recursive.

2005-01-17  Wojciech Miłkowski  <wmilkowski@interia.pl>

	* std_hooks.lua: Teach about meld.

2005-01-17  Neil Conway  <neilc@samurai.com>

	* diff_patch.cc: add a new context diff hunk consumer. Rename
	unidiff() to make_diff().
	* diff_patch.hh: Rename unidiff() to make_diff().
	* command.cc: Add new "cdiff" command, and refactor "diff" to
	invoke a common subroutine that is parameterized on the diff
	type. Unrelated change: make a branch-based checkout default to
	using the same directory name as the branch name, unless a
	branch is specified.

2005-01-17  Graydon Hoare  <graydon@pobox.com>

	* cryptopp/osrng.cpp (NonblockingRng::GenerateBlock):
	Bring forward patch lost in cryptopp 5.2 upgrade.
	* revision.cc (add_bitset_to_union)
	(calculate_ancestors_from_graph): New functions.
	(erase_ancestors)
	(is_ancestor): Rewrite.
	* cert.cc (get_branch_heads): Rewrite.
	* database.{cc,hh} (get_heads): Remove
	(get_revision_ancestry): Use multimap.
	(install_views): Disable.
	Remove everything related to the trust views. Too slow.
	Also tidy up whitespace formatting in sqlite3 code.
	* views.sql: Clear out all views.
	* commands.cc: Adapt to using multimap for ancestry.
	* AUTHORS: Mention Faheem and Christian.

2005-01-17  Faheem Mitha  <faheem@email.unc.edu>

	* debian/control: Fix up build depends.

2005-01-17  Ulrich Drepper  <drepper@redhat.com>

	* acinclude.m4 (AC_CHECK_INADDR_NONE): Fix quoting.
	* Makefile.am (EXTRA_DIST): Add sqlite/keywordhash.c.

2005-01-14  Christian Kollee  <stuka@pestilenz.org>

	* search for and link with sqlite3 when --bundle-sqlite=no

2005-01-12  Derek Scherger  <derek@echologic.com>

	* tests/t_ambig_update.at: add comments from discussion on irc
	* tests/t_status_missing.at: new test
	* testsuite.at: include it

2005-01-10  Graydon Hoare  <graydon@pboox.com>

	* commands.cc (explicit_merge): Tweak merge message.
	* database.cc (check_sqlite_format_version): New function.
	(database::sql): Call it.
	* sqlite/pager.hh (SQLITE_DEFAULT_PAGE_SIZE): Adjust to 8192.
	(SQLITE_MAX_PAGE_SIZE): Adjust to 65536.
	* schema_migration.cc: Post-merge cleanup.
	* Makefile.am: Likewise.

2005-01-10  Christof Petig  <christof@petig-baender.de>

	* sqlite/*: SQLite 3.0.8 CVS import
	* database.{cc,hh}:
	* schema_migration.{cc,hh}: convert to use the SQLite3 API

	This does not yet use any of the more sophisticated API features
	of SQLite3 (query parameters, BLOBs), so there is plenty of room
	for optimization. This also does not change the schema (i.e.
	still uses base64 encoded values in tables)

2005-01-11  Nathaniel Smith  <njs@codesourcery.com>

	* tests/t_migrate_schema.at: Switch to using pre-dumped db's, make
	it work, un-XFAIL it.

2005-01-11  Nathaniel Smith  <njs@codesourcery.com>

	* tests/t_persistent_server_keys_2.at: XFAIL it, add commentary on
	solution.

2005-01-11  Nathaniel Smith  <njs@codesourcery.com>

	* tests/t_persistent_server_keys_2.at: New test.
	* testsuite.at: Add it.

2005-01-06  Nathaniel Smith  <njs@codesourcery.com>

	* schema_migration.cc (migrate_monotone_schema): Add comment
	pointing to t_migrate_schema.at.
	* tests/t_migrate_schema.at: Implement, mostly.  (Still broken.)

	* tests/t_heads_discontinuous_branch.at: Remove urgency
	annotation.
	* tests/t_netsync_nocerts.at: Add urgency annotation.

	* testsuite.at: Add UNGZ, UNGZB64 macros.
	* tests/t_fmerge.at: Use them.

2005-01-05  Nathaniel Smith  <njs@codesourcery.com>

	* schema_migration.cc: Update comment about depot code.
	(migrate_depot_split_seqnumbers_into_groups):
	(migrate_depot_make_seqnumbers_non_null):
	(migrate_depot_schema): Remove; all are dead code.

2005-01-05  Nathaniel Smith  <njs@codesourcery.com>

	* schema_migration.cc: Remove tabs.

2005-01-05  Nathaniel Smith  <njs@codesourcery.com>

	* tests/t_check_same_db_contents.at: Uncapitalize title to unbreak
	testsuite.

	* revision.cc (is_ancestor): Add FIXME comment.
	(erase_ancestors): New function.
	* revision.hh (erase_ancestors): Prototype it.
	* cert.cc (get_branch_heads): Call it.
	* tests/t_heads_discontinuous_branch.at: Un-XFAIL it.

	* revision.cc (find_subgraph_for_composite_search): Ignore null
	revision ids.
	* commands.cc (try_one_merge): Add invariant - never create merges
	where the left parent is an ancestor or descendent of the right.
	(explicit_merge): Same check.
	(propagate): Handle cases where no merge is necessary.  Also, make
	generated log message more readable.

	* tests/t_propagate_desc.at: Un-XFAIL it.
	* tests/t_propagate_anc.at: Un-XFAIL it.  Use new
	CHECK_SAME_DB_CONTENTS macros.
	* testsuite.at: Move t_check_same_db_contents.at to run before
	propagation tests.  Make CHECK_SAME_DB_CONTENTS more thorough.

	* tests/t_dump_load.at: Implement test.

2005-01-05  Nathaniel Smith  <njs@codesourcery.com>

	* tests/t_check_same_db_contents.at: New test.
	* testsuite.at: Add it.
	(CHECK_SAME_DB_CONTENTS): New macro.

2005-01-04  Nathaniel Smith  <njs@codesourcery.com>

	* cert.cc: Remove tabs.
	* revision.hh: Likewise.

2005-01-04  Nathaniel Smith  <njs@codesourcery.com>

	* tests/t_propagate_anc.at: Also check the case where we're
	propagating a non-strict ancestor, i.e. the heads are actually
	equal.

2005-01-04  Nathaniel Smith  <njs@codesourcery.com>

	* database.cc (get_revision_parents): Add invariant.
	(get_revision_children): Likewise.
	(get_revision): Likewise.
	(put_revision): Likewise.

	* tests/t_merge_ancestor.at: New test.
	* tests/t_propagate_desc.at: Likewise.
	* tests/t_propagate_anc.at: Likewise.
	* testsuite.at: Call them.

2005-01-04  Nathaniel Smith  <njs@codesourcery.com>

	* tests/t_netsync_diffbranch.at: Add priority, add description of
	problem and solution.
	Also, XFAIL it.
	* tests/t_netsync_unrelated.at: Add reference to discussion.
	* tests/t_cmdline_options.at: Remove priority marking from
	non-bug.
	* tests/t_checkout_dir.at: XFAIL when run as root.

	* tests/t_netsync_nocerts.at: New test.
	* testsuite.at: Call it.

2005-01-03  Matt Johnston  <matt@ucc.asn.au>

	* tests/t_netsync_diffbranch.at: add a new test for pulling a branch
	with a parent from a different branch.
	* testsuite.at: add it

2005-01-02  Derek Scherger  <derek@echologic.com>

	* commands.cc (log_certs): new function
	(log) add Ancestor: and Branch: entries to output; use above new
	function
	* tests/t_cross.at: update to work with changesets

2005-1-1  Matt Johnston  <matt@ucc.asn.au>

	* botan/base64.cpp: Include a terminating newline in all cases for
	compatibility with cryptopp

2005-1-1  Matt Johnston  <matt@ucc.asn.au>

	* keys.cc: fix merge issues propagating 0.16 to net.venge.monotone.botan
	* botan/config.h: add it
	* botan/{aes,des,dh,dsa,elgamal,lion,lubyrack,nr,rw,openpgp}*: removed
	unused files.

2004-12-30  Graydon Hoare  <graydon@pobox.com>

	* constants.cc (netcmd_current_protocol_version): Set to 3.
	* tests/t_crlf.at: New test of crlf line encodings.
	* testsuite.at: Call it.
	* monotone.spec: Note 0.16 release.

2004-12-30  Graydon Hoare  <graydon@pobox.com>

	* win32/get_system_flavour.cc: Fix little compile bugs.

2004-12-30  Julio M. Merino Vidal  <jmmv@NetBSD.org>

	* change_set.{cc,hh}: Add the has_renamed_file_src function in
	change_set::path_rearrangement.
	* commands.cc: Make the 'log' command show nothing for renamed or
	deleted files (when asked to do so) and stop going backwards in
	history when such condition is detected; they don't exist any more,
	so there is no point in showing history (and could drive to incorrect
	logs anyway).
	* tests/t_log_nonexistent.at: New check to verify previous.
	* testsuite.at: Add it.

2004-12-30  Graydon Hoare  <graydon@pobox.com>

	* Makefile.am: Clean full testsuite directory and full-version.
	* configure.ac: Bump version number.
	* po/monotone.pot: Regenerate.
	* NEWS: Describe new release.

2004-12-29  Julio M. Merino Vidal  <jmmv@NetBSD.org>

	* tests/t_cmdline_options.at: New test for previous: ensure that
	monotone is actually checking for command line correctness.
	* testsuite.at: Add it.

2004-12-29  Julio M. Merino Vidal  <jmmv@NetBSD.org>

	* monotone.cc: Verify that the command line is syntactically correct
	as regards to options (based on error codes from popt).

2004-12-29  Matt Johnston  <matt@ucc.asn.au>

	* tests/t_drop_rename_patch.at: A test to check that deltas on
	renamed files are included in concatenate_change_sets, if there was a
	deletion of a file with the same name as the rename src.
	* testsuite.at: add it

2004-12-29  Graydon Hoare  <graydon@pobox.com>

	* AUTHORS: Add Jordi.
	* change_set.{cc,hh}: Make sanity helpers const.
	(normalize_change_set): Drop a->a deltas.
	(merge_change_sets): Call normalize.
	(invert_change_set): Likewise.
	* revision.cc
	(find_subgraph_for_composite_search): New fn.
	(calculate_composite_change_set): Call it.
	(calculate_change_sets_recursive): Use results.
	* tests/t_no_change_deltas.at: Fix.

2004-12-29  Graydon Hoare  <graydon@pobox.com>

	* change_set.cc: Fix unit tests to satisfy sanity checks.
	* std_hooks.lua: Fix status checking on external merges.

2004-12-29  Matt Johnston  <matt@ucc.asn.au>

	* change_set.{cc,hh}: Take account of files which are the
	destination of a rename_file operation, when examining
	file deletions. Added helper methods to clean up related code.

2004-12-29  Matt Johnston  <matt@ucc.asn.au>

	* change_set.cc: added a sanity check for deltas with same src/dst,
	and deleted files with deltas.

2004-12-29  Matt Johnston  <matt@ucc.asn.au>

	* testsuite.at, tests/t_netsync_single.at: don't use -q with
	killall since it isn't portable.

2004-12-28  Julio M. Merino Vidal  <jmmv@NetBSD.org>

	* commands.cc: Make the 'log' command show all affected files
	in each revision in a nice format (easier to read than what
	'cat revision' shows).

2004-12-28  Julio M. Merino Vidal  <jmmv@NetBSD.org>

	* commands.cc: Change the order used by the 'log' command to show
	affected files so that it matches the order in which these changes
	really happen.  Otherwise, a sequence like "rm foo; mv bar foo;
	patch foo" could be difficult to understand by the reader.

2004-12-28  Jordi Vilalta Prat  <jvprat@wanadoo.es>

	* monotone.texi: Fix a typo: "not not" should be "not".

2004-12-28  Julio M. Merino Vidal  <jmmv@NetBSD.org>

	* commands.cc: Make the 'log' command show all affected files
	in each revision in a nice format (easier to read than what
	'cat revision' shows).

2004-12-28  Graydon Hoare  <graydon@pobox.com>

	* AUTHORS: Add various recent authors.

2004-12-28  Badai Aqrandista <badaiaqrandista@hotmail.com>

	* debian/*: Fix up for package building.

2004-12-28  Graydon Hoare  <graydon@pobox.com>

	* change_set.{cc,hh}: Add sanity checking, rework
	some of concatenation logic to accomodate.
	* revision.{cc,hh}: Likewise.
	Teach about generalized graph rebuilding.
	* database.cc (delete_existing_revs_and_certs): New fn.
	* commands.cc (db rebuild): New command.
	(db fsck) New command.
	* sanity.{cc,hh} (relaxed): New flag.
	* work.cc: Use new concatenation logic.

2004-12-25  Julio M. Merino Vidal  <jmmv@NetBSD.org>

	* commands.cc: During 'log', print duplicate certificates (by
	different people) in separate lines, rather than showing them
	together without any spacing.  While here, homogenize new lines
	in other messages as well; this also avoids printing some of
	them in case of missing certificates).

2004-12-24  Nathaniel Smith  <njs@codesourcery.com>

	* tests/t_disapprove.at: Enable previously disabled test.

	* tests/t_no_change_deltas.at: New test.
	* testsuite.at: Call it.

2004-12-23  Nathaniel Smith  <njs@codesourcery.com>

	* win32/read_password.c: Remove unused file.

2004-12-22  Julio M. Merino Vidal  <jmmv@NetBSD.org>

	* commands.cc: Verify that the key identifier passed to the pubkey
	and privkey commands exists in the database.  Otherwise exit with
	an informational message instead of an exception.

2004-12-20  Matt Johnston  <matt@ucc.asn.au>

	* keys.cc: don't cache bad passphrases, so prompt for a correct
	password if the first ones fail.

2004-12-19  Matt Johnston  <matt@ucc.asn.au>

	* commands.cc: print out author/date next to ambiguous revision
	lists from selectors.

2004-12-19  Julio M. Merino Vidal  <jmmv@NetBSD.org>

	* testsuite.at:
	* tests/t_fmerge.at:
	* tests/t_netsync.at:
	* tests/t_netsync_single.at:
	* tests/t_revert.at:
	* tests/t_tags.at: Avoid usage of test's == operator.  It's a
	GNUism and causes unexpected failures in many tests.  The correct
	operator to use is just an equal sign (=).
	* tests/t_renamed.at: Don't use cp's -a flag, which is not
	supported by some implementations of this utility (such as the
	one in NetBSD).  Try to add some of its funcionality by using
	the -p flag, although everything could be fine without it.
	* tests/t_unidiff.at: Discard patch's stderr output.  Otherwise
	it's treated as errors, but NetBSD's patch uses it to print
	informative messages.

2004-12-19  Julio M. Merino Vidal  <jmmv@NetBSD.org>

	* tests/t_scan.at: Instead of running sha1sum, use a prestored
	manifest file to do the verification.  This avoids problems in
	systems that do not have the sha1sum tool, like NetBSD.

2004-12-19  Julio M. Merino Vidal  <jmmv@NetBSD.org>

	* Makefile.am: Remove obsolete --with-bundled-adns flag from
	DISTCHECK_CONFIGURE_FLAGS.

2004-12-18  Nathaniel Smith  <njs@codesourcery.com>

	* tests/t_checkout_dir.at: Make the test directory chdir'able
	again after the test.
	* tests/t_delete_dir.at: Add trailing newline.

	* tests/t_dump_load.at: New bug report.
	* tests/t_migrate_schema.at: Likewise.
	* testsuite.at: Call them.

2004-12-18  Nathaniel Smith  <njs@codesourcery.com>

	* change_set.hh: Remove obsolete comment.

2004-12-18  Nathaniel Smith  <njs@codesourcery.com>

	* tests/t_delete_dir.at: New bug report.
	* testsuite.at: Call it.

2004-12-18  Julio M. Merino Vidal  <jmmv@NetBSD.org>

	* commands.cc: Homogenize help message for 'ls' with the one shown
	by 'list'.

2004-12-18  Julio M. Merino Vidal  <jmmv@NetBSD.org>

	* ChangeLog: Add missing entries for several modifications I did
	in December 6th and 3rd.

2004-12-18  Julio M. Merino Vidal  <jmmv@NetBSD.org>

	* tests/t_checkout_dir.at: New test triggering the bug I fixed
	  previously in the checkout command, verifying that directory
	  creation and chdir succeed.
	* testsuite.at: Add new test.

2004-12-18  Nathaniel Smith  <njs@codesourcery.com>

	* ChangeLog: Add log entry for <jmmv@NetBSD.org>'s last change.
	* std_hooks.lua: Check exit status of external merge commands.

2004-12-18  Julio M. Merino Vidal  <jmmv@NetBSD.org>

	* commands.cc: Include cerrno, cstring,
	boost/filesystem/exception.hpp.
	(checkout): Verify that directory creation and chdir succeeded.

2004-12-18  Nathaniel Smith  <njs@codesourcery.com>

	* diff_patch.cc (struct hunk_offset_calculator): Remove dead
	code.  (I believe it was used by the old, non-extent-based
	merging.)
	(calculate_hunk_offsets): Likewise.
	(struct hunk_consumer): Move next to rest of unidiff code.
	(walk_hunk_consumer): Likewise.

2004-12-18  Matt Johnston <matt@ucc.asn.au>

	* change_set.cc (concatenate_change_sets): Be more careful checking
	whether to discard deltas for deleted files (in particular take
	care when files are removed then re-added) - fixes tests
	t_patch_drop_add, t_add_drop_add.at, t_add_patch_drop_add,
	t_merge2_add_drop_add
	* change_set.cc (project_missing_deltas): don't copy deltas
	for deleted files, and handle the case where src file ids vary when
	files are added/removed. (fixes t_patch_vs_drop_add)
	* t_patch_drop_add.at, t_add_drop_add.at, t_add_patch_drop_add.at,
	  t_merge2_add_drop_add.at, t_patch_vs_drop_add.t: don't expect
	to fail any more.

2004-12-17  Nathaniel Smith  <njs@codesourcery.com>

	* tests/t_persistent_server_keys.at:
	* tests/t_attr.at:
	* tests/t_patch_vs_drop_add.at:
	* tests/t_merge2_add_drop_add.at:
	* tests/t_add_drop_add.at:
	* tests/t_add_patch_drop_add.at:
	* tests/t_patch_drop_add.at: Remove priority notes, since these
	are no longer bugs.

2004-12-17  Graydon Hoare  <graydon@pobox.com>

	* tests/t_merge_2.at: Works now, remove xfail.

2004-12-17  Graydon Hoare  <graydon@pobox.com>

	* tests/t_merge_1.at: Remove AT_CHECK(false) and xfail.
	* tests/t_fdiff_normalize.at: New test.
	* testsuite.at: Call it.
	* diff_patch.cc (normalize_extents): Fix the normalize bug.
	* revision.{cc,hh} (construct_revisions): Rename to prepare for
	next rebuild-the-graph migration.
	* commands.cc (db): Change call name.

2004-12-16  Joel Rosdahl  <joel@rosdahl.net>

	* revision.cc (is_ancestor): Use std::queue for the queue.

2004-12-14  Joel Rosdahl  <joel@rosdahl.net>

	Generalize the explicit_merge command with an optional ancestor
	argument:
	* revision.cc (is_ancestor): New method.
	* revision.hh (is_ancestor): Add prototype.
	* commands.cc (try_one_merge): Add ancestor argument. Empty
	ancestor means use ancestor from find_common_ancestor_for_merge.
	(merge): Pass empty ancestor to try_one_merge.
	(propagate): Likewise.
	(explicit_merge): Add optional ancestor argument.
	* monotone.texi: Document new explicit_merge argument.

2004-12-13  Joel Rosdahl  <joel@rosdahl.net>

	* tests/t_merge_2.at: New test triggering a bad merge.
	* testsuite.at: Add new test.

2004-12-13  Joel Rosdahl  <joel@rosdahl.net>

	* revision.cc (find_least_common_ancestor): Add a missing "return
	true;" that mysteriously was removed in
	c853237f9d8d155431f88aca12932d2cdaaa31fe.

2004-12-13  Joel Rosdahl  <joel@rosdahl.net>

	* revision.cc (find_least_common_ancestor): Remove unused variable.
	* commands.cc (lca): Correct negative status text.
	* commands.cc (update): Use GNU style braces.

2004-12-12  Graydon Hoare  <graydon@pobox.com>

	* commands.cc: Fix bug reported in t_attr.at
	* tests/t_attr.at: Remove xfail.
	* change_set.cc: Change unit tests syntax.
	(read_change_set): Assert complete read.
	* revision_ser.cc (read_revision_set): Likewise.
	* os_specific.hh: Drop obsolete file.

2004-12-12  Joel Rosdahl  <joel@rosdahl.net>

	* revision.cc (find_least_common_ancestor): New function for
	finding the vanilla LCA.
	* revision.hh: Added prototype for find_least_common_ancestor.
	* commands.cc (update): Use find_least_common_ancestor for finding
	a common ancestor.
	* commands.cc (diff): Likewise.
	* revision.cc (find_common_ancestor): Rename to...
	(find_common_ancestor_for_merge): ...this, for clarity.
	* revision.hh: find_common_ancestor -->
	find_common_ancestor_for_merge.
	* commands.cc (try_one_merge): Call find_common_ancestor_for_merge
	to find ancestor.
	* commands.cc (lcad): Rename lca command to lcad.
	* commands.cc (lca): New command for finding the vanilla LCA.

2004-12-12  Nathaniel Smith  <njs@codesourcery.com>

	* tests/t_persistent_server_keys.at: Actually test what it's
	supposed to.  Also, un-XFAIL it, since now it seems to pass.

2004-12-12  Nathaniel Smith  <njs@codesourcery.com>

	* tests/t_persistent_server_keys.at: New test.

	* testsuite.at: Call it.
	* tests/t_persistent_server_revision.at: Fix typo.

2004-12-12  Nathaniel Smith  <njs@codesourcery.com>

	* tests/t_persistent_server_revision.at: New test.
	* testsuite.at: Call it.  Tweak NETSYNC macros in support of it.

2004-12-11  Nathaniel Smith  <njs@codesourcery.com>

	* lua.hh (add_rcfile): Add 'required' argument.
	* lua.cc (add_rcfile): Implement it.  Simplify error checking
	logic while I'm there...
	* monotone.cc (cpp_main): Pass new argument to add_rcfile.

	* tests/t_rcfile_required.at: New test.
	* testsuite.at: Call it.
	Revamp netsync support macros, to allow long-running servers.
	Make netsync-killer try first with -TERM, in case that plays nicer
	with gcov.

2004-12-11  Nathaniel Smith  <njs@codesourcery.com>

	* lua.hh: Remove tabs.

2004-12-11  Nathaniel Smith  <njs@codesourcery.com>

	* monotone.texi: Document explicit_merge.

2004-12-11  Nathaniel Smith  <njs@codesourcery.com>

	* Makefile.am: Redo full-revision support again, to properly
	handle 'make dist' and caching.  Hopefully.

2004-12-11  Nathaniel Smith  <njs@codesourcery.com>

	* monotone.texi (File Attributes): Rewrite for new .mt-attrs
	syntax.

2004-12-11  Nathaniel Smith  <njs@codesourcery.com>

	* tests/t_attr.at: New test.
	* testsuite.at: Call it.

2004-12-11  Nathaniel Smith  <njs@codesourcery.com>

	* commands.cc (trusted): Print spaces between key ids.

	* lua.cc (add_rcfile): Errors while loading a user-provided rc
	file are naughtiness, not oopses.

2004-12-11  Nathaniel Smith  <njs@codesourcery.com>

	* commands.cc (commands::explain_usage): Use split_into_lines to
	do formatting of per-command usage; allow multi-line
	descriptions.
	(trusted): New command.
	* monotone.texi (Key and Cert): Document 'trusted' command.
	* tests/t_trusted.at: New test.
	* testsuite.at: Change get_revision_cert_trust to support
	t_trusted.at.  Call t_trusted.at.

2004-12-11  Derek Scherger  <derek@echologic.com>

	* app_state.{cc,hh} (restriction_includes): renamed from
	in_restriction to be less obscure; use path_set rather than
	set<file_path>
	* commands.cc
	(restrict_path_set):
	(restrict_rename_set):
	(restrict_path_rearrangement):
	(calculate_restricted_revision): new restriction functions
	(restrict_patch_set): remove old restrictions machinery
	(status): call calculate_restricted_revision
	(ls_tags): call app.initialize
	(unknown_itemizer): restriction_includes renamed
	(ls_unknown): call calculate_restricted_revision
	(ls_missing): rework for restrictions
	(commit): switch to --message option, optional paths and preserve
	restricted work
	(diff): allow restrictions for zero and one arg variants
	(revert): note some work left to do
	* manifest.{cc,hh} (build_manifest_map): hide unused things
	(build_restricted_manifest_map): new function
	* transforms.{cc,hh} (calculate_ident): clean up merge artifacts
	* work.cc (read_options_map): merge cleanup to preserve command
	line options

2004-12-10  Nathaniel Smith  <njs@codesourcery.com>

	* Makefile.am (package_full_revision.txt): Redo Joel Rosdahl
	<joel@rosdahl.net>'s change below after it got clobbered by
	merge.

2004-12-10  Nathaniel Smith  <njs@codesourcery.com>

	* commands.cc (log): Synopsize optional 'file' argument, and
	describe both arguments in help description.

2004-12-10  Matt Johnston  <matt@ucc.asn.au>

	* cert.cc: Added priv_key_exists() function
	* commands.cc, rcs_import.cc: use new privkey functions
	* netsync.cc: change some bits that were missed

2004-12-09  Derek Scherger  <derek@echologic.com>

	* .mt-nonce: delete obsolete file
	* change_set.cc (merge_deltas): add file paths in call to
	try_to_merge_files
	* commands.cc (propagate): add progress logging similar to merge
	* diff_patch.{cc,hh} (try_to_merge_files): add file paths to
	merge2 and merge3 hooks; add logging of paths before calling merge
	hooks
	* lua.{cc,hh} (hook_merge2, hook_merge3): add file paths to merge
	hooks
	* std_hooks.lua (merge2, merge3, merge2_xxdiff_cmd,
	merge3_xxdiff_cmd): pass file paths to xxdiff for use as titles
	* testsuite.at (MONOTONE_SETUP): add paths to merge2 hook

2004-12-09  Matt Johnston  <matt@ucc.asn.au>

	* cert.cc, cert.hh, lua.cc, lua.hh, netsync.cc:
	Added a new get_priv_key(keyid) lua hook to retrieve
	a private key from ~/.monotonerc

2004-12-09  Matt Johnston  <matt@ucc.asn.au>

	* change_set.cc: Don't include patch deltas on files which
	are being deleted in changesets. (partial fix for bug
	invoked by t_merge_add_del.at)

2004-12-09  Matt Johnston  <matt@ucc.asn.au>

	* configure.ac,Makefile.am: Fix iconv and intl
	handling so that the libraries are used (required for OS X).

2004-12-09  Nathaniel Smith  <njs@codesourcery.com>

	* Makefile.am (BUILT_SOURCES_NOCLEAN): add 'S'.

	* netsync.cc (session): Make ticker pointers into auto_ptr's.  Add
	cert and revision tickers.
	(session::session): Initialize new tickers.
	(session::note_item_sent): New method.  Increment tickers.
	(session::note_item_arrived): Increment tickers.
	(session::read_some): Adjust for auto_ptr.
	(session::write_some): Likewise.
	(call_server): Conditionally initialize cert and revision
	tickers.
	(queue_data_cmd): Call 'note_item_sent'.
	(queue_delta_cmd): Call 'note_item_sent'.

2004-12-09  Graydon Hoare  <graydon@pobox.com>

	* ROADMAP: Add file.

2004-12-08  Nathaniel Smith  <njs@codesourcery.com>

	* tests/t_patch_vs_drop_add.at:
	* tests/t_patch_drop_add.at:
	* tests/t_netsync_unrelated.at:
	* tests/t_merge_add_del.at:
	* tests/t_merge2_add_drop_add.at:
	* tests/t_merge_1.at:
	* tests/t_heads_discontinuous_branch.at:
	* tests/t_cleanup_empty_dir.at:
	* tests/t_checkout_options.at:
	* tests/t_ambig_update.at:
	* tests/t_add_patch_drop_add.at:
	* tests/t_add_drop_add.at:
	* tests/t_add_dot.at: Add (importance) markers to all bug report
	tests.

2004-12-08  Nathaniel Smith  <njs@codesourcery.com>

	* app_state.hh (write_options): Add 'force' option.
	* app_state.cc: Remove tabs.
	(write_options): Implement.
	* commands.cc (checkout): Pass force=true to 'write_options'.

	* tests/t_checkout_options.at: New test.
	* testsuite.at: Define RAW_MONOTONE.
	(t_checkout_options.at): Call it.

2004-12-08  Nathaniel Smith  <njs@codesourcery.com>

	* update.hh (pick_update_target): Rename to...
	(pick_update_candidates): ...this.  Return a set of candidates,
	rather than a single best.
	* update.cc (pick_update_candidates): Likewise.  Remove logic
	checking for unique candidate.
	* commands.cc (describe_revision): New function.
	(heads): Use it.
	(update): Use new 'pick_update_candidates' function.  Add logic
	checking for unique candidate.  On non-unique candidate, print all
	candidates, using 'describe_revision'.

	* tests/t_ambig_update.at: Check that failure messages describe
	the candidate set.

2004-12-08  Nathaniel Smith  <njs@codesourcery.com>

	* update.cc: Remove tabs.

2004-12-08  Nathaniel Smith  <njs@codesourcery.com>

	* tests/t_ambig_update.at: Also check that update fails when one
	candidate edge is deeper than the other.

2004-12-08  Graydon Hoare  <graydon@pobox.com>

	* change_set.cc (extend_renumbering_via_added_files):
	Look up parent tid in existing renumbering.
	* commands.cc (attr): Check index for "set" subcommand.
	(lca): New diagnostic command.
	(log): Tidy up output formatting a bit.
	* po/monotone.pot: Regenerate.
	* tests/t_add_edge.at: New test to catch add failure.
	* testsuite.at: Call it.

2004-12-08  Nathaniel Smith  <njs@codesourcery.com>

	* tests/t_ambig_update.at: New test.
	* testsuite.at: Add it.

	* tests/t_explicit_merge.at: Add, having forgotten to last time.

2004-12-08  Nathaniel Smith  <njs@codesourcery.com>

	* tests/t_explicit_merge.at: New test.
	* testsuite.at: Add it.

2004-12-08  Nathaniel Smith  <njs@codesourcery.com>

	* testsuite.at: Remove duplicate line created by merge.
	* ChangeLog: Re-sort after merges.

	* commands.cc (explicit_merge): Remove stray space.  Print id of
	merge result.
	(complete_command): Add back "}" deleted by merge.

2004-12-08  Nathaniel Smith  <njs@codesourcery.com>

	* change_set.cc: Remove tabs.
	* diff_patch.cc: Likewise.

	* commands.cc (explicit_merge): New command.

2004-12-08  Graydon Hoare  <graydon@pobox.com>

	* change_set.cc (extend_renumbering_via_added_files):
	Look up parent tid in existing renumbering.
	* commands.cc (attr): Check index for "set" subcommand.
	(lca): New diagnostic command.
	(log): Tidy up output formatting a bit.
	* po/monotone.pot: Regenerate.
	* tests/t_add_edge.at: New test to catch add failure.
	* testsuite.at: Call it.

2004-12-07  Richard Levitte  <richard@levitte.org>

	* Makefile.am: Keep package_*revision.{txt,h}, so they are saved
	as part of a distribution, and thereby make as sure as possible
	people who download monotone get historical information on where
	their copy of monotone came from.

2004-12-06  Richard Levitte  <richard@levitte.org>

	* monotone.cc: Add a hint on how to use --ticker.

2004-12-06  Nathaniel Smith  <njs@codesourcery.com>

	* commands.cc (ls_certs): Sort the certs before printing.
	* tests/t_netsync_repeated.at: Actually check that certs were
	transferred correctly.

2004-12-06  Julio M. Merino Vidal  <jmmv@NetBSD.org>

	* figures/cert.pdf:
	* figures/cert.png:
	* figures/oo-figures.sxd:
	* monotone.texi: Use example host names under the
	example.{com,org,net} subdomains instead of invented names.
	These are defined in RFC 2606.

2004-12-06  Julio M. Merino Vidal  <jmmv@NetBSD.org>

	* configure.ac: Now that we depend on GNU Autoconf >= 2.58, we
	can use the AS_HELP_STRING macro everywhere we need to pretty-print
	help strings.  Also convert old calls to AC_HELP_STRING (deprecated)
	to this one.

2004-12-06  Joel Rosdahl  <joel@rosdahl.net>

	* Makefile.am (package_full_revision.txt): Silence error messages
	when deducing full package revision.

2004-12-06  Graydon Hoare  <graydon@pobox.com>

	* unix/get_system_flavour.cc:
	* win32/get_system_flavour.cc: Add missing files.

2004-12-06  Graydon Hoare  <graydon@pobox.com>

	* commands.cc (merge): Add newline in output.
	* change_set.cc (project_missing_deltas): Fix very bad
	delta-renaming bug.

2004-12-06  Graydon Hoare  <graydon@pobox.com>

	* change_set.cc:
	* tests/t_merge_add_del.at:
	* netsync.cc:
	* commands.cc: Clean up from merge.

2004-12-06  Nathaniel Smith  <njs@codesourcery.com>

	* tests/t_add_patch_drop_add.at: New test.
	* tests/t_merge2_add_drop_add.at: New test.
	* tests/t_patch_drop_add.at: New test.
	* tests/t_patch_vs_drop_add.at: New test.
	* testsuite.at: Add them.

	* tests/t_add_drop_add.at: Fix to test what it was supposed to.

	* tests/t_merge2_data.at: Remove extraneous [stdout].

	* tests/t_merge_add_del.at: Fix description.
	XFAIL it.

2004-12-06  Nathaniel Smith  <njs@codesourcery.com>

	* tests/t_add_drop_add.at: New test.
	* testsuite.at: Add it.

2004-12-05  Nathaniel Smith  <njs@codesourcery.com>

	* tests/t_merge_add_del: Shorten name for better display.

2004-12-05  Matt Johnston <matt@ucc.asn.au>

	* tests/t_merge_add_del: added a new test for merging
	  branches where a file is added then removed.
	* testsuite.at: added the new test
	* configure.ac: bumped the prequisite version to 2.58 since
	  some tests use AT_XFAIL_IF

2004-12-05  Graydon Hoare  <graydon@pobox.com>

	* Makefile.am (package_full_revision.txt): Use top_builddir
	to locate monotone executable.

2004-12-05  Nathaniel Smith  <njs@codesourcery.com>

	* tests/t_merge_add_del: Shorten name for better display.

2004-12-05  Matt Johnston <matt@ucc.asn.au>

	* tests/t_merge_add_del: added a new test for merging
	  branches where a file is added then removed.
	* testsuite.at: added the new test
	* configure.ac: bumped the prequisite version to 2.58 since
	  some tests use AT_XFAIL_IF

2004-12-04  Graydon Hoare  <graydon@pobox.com>

	* commands.cc (fcommit): New command.
	(update): Finish off merge of update command.

2004-12-04  Derek Scherger  <derek@echologic.com>

	* commands.cc: (complete_command): New function.
	(explain_usage/process): Use it.

2004-12-04  Nathaniel Smith  <njs@codesourcery.com>

	* change_set.cc (merge_deltas): Call correct variant of
	try_to_merge_files depending on whether ancestor is available.
	* diff_patch.cc (try_to_merge_files -- merge3 version): Add
	assertions about ids.
	(try_to_merge_files -- merge2 version): Likewise.

	* testsuite.at: Add a trivial working merge2 hook.
	* tests/t_related_merge2_data.at: Update to use.
	Mark as expected to PASS.
	* tests/t_merge2_data.at: Likewise.

2004-12-04  Nathaniel Smith  <njs@codesourcery.com>

	* change_set.cc (merge_deltas): Call correct variant of
	try_to_merge_files depending on whether ancestor is available.
	* diff_patch.cc (try_to_merge_files -- merge3 version): Add
	assertions about ids.
	(try_to_merge_files -- merge2 version): Likewise.

	* testsuite.at: Add a trivial working merge2 hook.
	* tests/t_related_merge2_data.at: Update to use.
	Mark as expected to PASS.
	* tests/t_merge2_data.at: Likewise.

2004-12-04  Nathaniel Smith  <njs@codesourcery.com>

	* change_set.cc: Remove tabs.
	* diff_patch.cc: Likewise.

2004-12-04  Nathaniel Smith  <njs@codesourcery.com>

	* change_set.cc: Remove tabs.
	* diff_patch.cc: Likewise.

2004-12-03  Julio M. Merino Vidal  <jmmv@NetBSD.org>

	* commands.cc: Add a missing newline to a message.

2004-12-03  Julio M. Merino Vidal  <jmmv@NetBSD.org>

	* cryptopp/config.h:
	* configure.ac: NetBSD does not define __unix__ nor __unix, so the
	build fails.  To solve, check for __NetBSD__ where appropiate to
	detect a Unix system.

2004-12-03  Julio M. Merino Vidal  <jmmv@NetBSD.org>

	* INSTALL: Document my latest changes: --enable-ipv6 option, ability
	to specify static boost prefix through --enable-static-boost and
	BOOST_SUFFIX variable.

2004-12-03  Julio M. Merino Vidal  <jmmv@NetBSD.org>

	* Makefile.am:
	* configure.am: Add a variable, BOOST_SUFFIX, that identifies the
	suffix string that has to be appended to Boost library names to use
	them.  This variable can be defined on configure's command line.

2004-12-03  Julio M. Merino Vidal  <jmmv@NetBSD.org>

	* configure.ac: Let the --enable-static-boost argument take a prefix
	to where boost libraries are located.

2004-12-03  Julio M. Merino Vidal  <jmmv@NetBSD.org>

	* configure.ac: Add a three-state --enable-ipv6 argument to the
	configure script to explicitly enable or disable IPv6 support.

2004-12-03  Julio M. Merino Vidal  <jmmv@NetBSD.org>

	* std_hooks.lua: Add missing newlines to two error messages.

2004-12-02  Derek Scherger  <derek@echologic.com>

	* commands.cc: more tweaking to ease changeset merge

2004-12-01  Derek Scherger  <derek@echologic.com>

	* commands.cc: reordered commands to help merge with changesets
	branch

2004-12-01  Graydon Hoare  <graydon@pobox.com>

	* {unix,win32}/get_system_flavour.cc: New files.
	* basic_io.{cc,hh}: Give names to input sources.
	* monotone.cc: Move app_state ctor inside try.
	* platform.hh (get_system_flavour): Declare.
	* revision.cc: Name input source "revision".
	* sanity.cc: Log flavour on startup.
	* tests/t_attributes.at: Use new syntax.
	* transforms.{cc,hh} (split_into_lines): New variant, and rewrite.
	* work.{cc,hh}: Rewrite attributes to use basic_io.
	(get_attribute_from_db):
	(get_attribute_from_working_copy): New functions.

2004-11-30  Nathaniel Smith  <njs@codesourcery.com>

	* keys.cc (get_passphrase): Simplify arguments.
	(generate_key_pair): Force new passphrases to come from the user.
	Adapt to new 'get_passphrase' arguments.
	(change_key_passphrase): Likewise.
	(generate_key_pair): Add argument specifying passphrase, for
	exclusive use of the unit tests.
	(signature_round_trip_test): Use it.
	* keys.hh (generate_key_pair): Adjust prototype correspondingly.

	* tests/t_genkey.at: Test that 'genkey' requires the passphrase to
	be entered.
	* tests/t_chkeypass.at: Check that 'chkeypass' fails if no
	passphrase is given.

2004-11-30  Nathaniel Smith  <njs@codesourcery.com>

	* keys.hh: Remove tabs.
	* keys.cc: Likewise.

2004-11-30  Nathaniel Smith  <njs@codesourcery.com>

	* monotone.texi (Hook Reference): Clarify description of
	'get_passphrase', following confusion on IRC.

2004-11-30  Joel Rosdahl  <joel@rosdahl.net>

	* ui.cc (fatal): Added missing newlines in fatal message.

2004-11-29  Nathaniel Smith  <njs@codesourcery.com>

	* monotone.texi: Add more details to documentation of 'update
	<revision>' command.

	* ui.cc (fatal): Typo in previous commit.

2004-11-29  Nathaniel Smith  <njs@codesourcery.com>

	* ui.cc (fatal): On suggestion of Zack Weinberg, add a note to
	fatal error messages 1) telling the user that it's a bug (i.e.,
	not their fault), and 2) requesting a bug report.

2004-11-29  Nathaniel Smith  <njs@codesourcery.com>

	* ui.cc: Remove tabs.

2004-11-30  Matt Johnston  <matt@ucc.asn.au>

	* change_set.cc (merge_disjoint_analyses): Prevent duplicated
	tids being used.
	(merge_disjoint_analyses): Fix typo (s/a_tmp/b_tmp/)

2004-11-27  Matt Johnston  <matt@ucc.asn.au>

	* Replaced cryptopp with botan

2004-11-24  Nathaniel Smith  <njs@codesourcery.com>

	* tests/t_cleanup_empty_dir.at: Shorten name.

2004-11-24  Nathaniel Smith  <njs@codesourcery.com>

	* Makefile.am (BUILT_SOURCES): List package_*version.{h,txt}.
	* package_{full_,}version.txt: Work when blddir != srcdir.

2004-11-24  Nathaniel Smith  <njs@codesourcery.com>

	* mt_version.hh: New file.
	* mt_version.cc: New file.
	* monotone.cc (package_revision.h): Don't include it.
	(mt_version.hh): Include it.
	(OPT_FULL_VERSION): New option.
	(options): Add it.
	(cpp_main): Implement --version and --full-version in terms of
	mt_version.hh.

	* Makefile.am (package_full_revision.h): Build it.
	(MOST_SOURCES): Add mt_version.{cc,hh}.

2004-11-24  Nathaniel Smith  <njs@codesourcery.com>

	* txt2c.cc (main): Add "--skip-trailing" option to skip trailing
	whitespace.
	* Makefile.am (package_revision.h): Generate it.
	* monotone.cc (package_revision.h): Include it.
	(cpp_main): Print it as part of --version.

2004-11-23  Nathaniel Smith  <njs@codesourcery.com>

	* tests/t_cleanup_empty_dir.at: New test.
	* testsuite.at: Call it.

2004-11-23  Nathaniel Smith  <njs@codesourcery.com>

	* monotone.texi (File Attributes): Document how restricted format
	of .mt-attrs currently is.  Also talk about 'the' .mt-attrs file
	instead of 'an', in response to confusion.

2004-11-23  Nathaniel Smith  <njs@codesourcery.com>

	* work.cc (build_deletion): Add missing newline.
	(build_rename): Likewise.
	(build_rename): Likewise.

2004-11-23  Nathaniel Smith  <njs@codesourcery.com>

	* work.cc: Remove tabs.

2004-11-23  Nathaniel Smith  <njs@codesourcery.com>

	* commands.cc: Remove tabs.

2004-11-23  Nathaniel Smith  <njs@codesourcery.com>

	* tests/t_add_dot.at: New test.
	* testsuite.at: Call it.

2004-11-22  Joel Rosdahl  <joel@rosdahl.net>

	* testsuite.at (NEED_UNB64): Check that python knows how to decode
	strings before using it.

2004-11-21  Joel Rosdahl  <joel@rosdahl.net>

	* testsuite.at (NEED_UNB64): Find more programs for decoding
	base64.

2004-11-20  Nathaniel Smith  <njs@codesourcery.com>

	* tests/t_merge_1.at: New test.
	* testsuite.at: Add it.
	(NEED_UNB64): New macro.
	(UNB64): Likewise.
	* tests/t_unidiff.at: Use them.
	* tests/t_unidiff2.at: Likewise.

2004-11-19  Nathaniel Smith  <njs@codesourcery.com>

	* tests/t_initfork.at: Remove file; redundant with
	t_merge2_add.at.
	* testsuite.at: Don't call it.

2004-11-18  Derek Scherger  <derek@echologic.com>

	* commands.cc (list tags): new command.
	* monotone.1: update.
	* monotone.texi: update.
	* std_hooks.lua: remove unused get_problem_solution hook.
	* test/t_tags.at: new test.
	* testsuite.at: call it.

2004-11-18  Nathaniel Smith  <njs@codesourcery.com>

	* monotone.texi (Committing Work): Remove mistakenly added
	redundant command line argument.

2004-11-17  Joel Rosdahl  <joel@rosdahl.net>

	* commands.cc (diff): Don't print hashes around diff output if
	there is no diff to print.

	Fix bugs #8714 "monotone update working copy to previous version"
	and #9069 "update with multiple candidates":
	* commands.cc (update): Let the update command take an optional
	revision target parameter. Without an explicit revision target,
	the current branch head is used just like before. Added logic for
	updating to an older revision or another revision reachable via a
	common ancestor.
	* tests/t_update_to_revision.at: Add regression tests for new
	update logic.
	* testsuite.at: Add new test.
	* monotone.texi: Document new update argument.

2004-11-17  Nathaniel Smith  <njs@codesourcery.com>

	* netsync.cc (request_fwd_revisions): Rename 'first_attached_edge'
	to 'an_attached_edge', because it does not represent the first
	attached edge.  Likewise for 'first_attached_cset'.
	(analyze_attachment): Remove early exit from loop; we want to
	analyze the entire graph, not just some linear subgraphs.

	* revision.cc (ensure_parents_loaded): Filter out the null
	revision when calculating parents.
	* change_set.hh (null_id): Define for 'revision_id's.

	* tests/t_merge2_add.at: New test.
	* tests/t_merge2_data.at: New test.
	* tests/t_related_merge2_data.at: New test.
	* tests/t_merge_add.at: New test.
	* tests/t_netsync_pubkey.at: New test.
	* tests/t_netsync_repeated.at: New test.
	* tests/t_netsync_unrelated.at: New test.


	* testsuite.at: Add new tests.
	(NETSYNC_SETUP): New macro.
	(MONOTONE2): New macro.
	(RUN_NETSYNC): New macro.
	(ADD_FILE): New macro.
	(SET_FILE): New macro.
	(COMMIT): New macro.
	* tests/t_netsync.at: Use them.

	* tests/t_singlenetsync.at: Add 'netsync' keyword'.  Rename to...
	* tests/t_netsync_single.at: ...this.

	* tests/t_heads_discontinuous_branch.at: XFAIL it.

2004-11-17  Nathaniel Smith  <njs@codesourcery.com>

	* netsync.cc: Remove hard tabs.

2004-11-17  Nathaniel Smith  <njs@codesourcery.com>

	* revision.cc: Remove hard tabs.
	* change_set.hh: Likewise.

2004-11-16  Nathaniel Smith  <njs@codesourcery.com>

	* tests/t_heads.at: Replace last tricky case with a less tricky case.
	* tests/t_heads_discontinuous_branch.at: New test for the really
	tricky case.
	* testsuite.at: Run it.

2004-11-16  Nathaniel Smith  <njs@codesourcery.com>

	* views.sql (trusted_parents_in_branch): Remove.
	(trusted_children_in_branch): Remove.
	(trusted_branch_members): New view.
	(trusted_branch_parents): New view.
	(branch_heads): Use the new views, not the removed ones.

	* database.cc (get_heads): Column name in 'branch_heads'
	unavoidably changed from 'id' to 'parent'; adjust SELECT statement
	to use new name.

2004-11-16  Nathaniel Smith  <njs@codesourcery.com>

	* database.cc: Remove hard tabs.

2004-11-16  Nathaniel Smith  <njs@codesourcery.com>

	* commands.cc (dump_diffs): Fetch delta destination, not source,
	on new files.

2004-11-15  Joel Rosdahl  <joel@rosdahl.net>

	* tests/t_diff_added_file.at: Added testcase exposing a bug in
	"monotone diff x y" where x is an ancestor of y and y adds a new
	file.
	* testsuite.at: Add new test.

2004-11-14  Joel Rosdahl  <joel@rosdahl.net>

	Fix bug #9092 "add command to change passphrase":
	* commands.cc (chkeypass): New command.
	* keys.cc (get_passphrase): Added parameters for prompt beginning and
	disabling hook lookup and passphrase caching.
	* keys.hh, keys.cc (change_key_passphrase): New function.
	* database.hh, database.cc (delete_private_key): New function.
	* monotone.texi (Key and Cert): Document command.
	* tests/t_chkeypass.at: Testcase for the command.
	* testsuite.at: Added new testcase.

2004-11-14  Matt Johnston <matt@ucc.asn.au>

	* tests/t_initfork.at: New test for merging two ancestor-less heads.

2004-11-13  Nathaniel Smith  <njs@codesourcery.com>

	* tests/t_heads.at: New test.
	* testsuite.at: Add it.

2004-11-13  Nathaniel Smith  <njs@codesourcery.com>

	* monotone.texi: Fix various typos.
	(Committing Work): Add missing command line argument.
	(Branch Names): New section.
	Add me to the copyright block.

2004-11-12  Joel Rosdahl  <joel@rosdahl.net>

	* monotone.texi: Fix documentation of the approve and disapprove
	commands. Fix jp.co.juicebot.jb7 branch name in examples. Other
	minor fixes.

2004-11-11  Joel Rosdahl  <joel@rosdahl.net>

	* monotone.texi: Fix typos.

2004-11-08  Graydon Hoare  <graydon@pobox.com>

	* monotone.texi: Some minor cleanups.
	* netsync.cc: Fix a formatter.

2004-11-07  Graydon Hoare  <graydon@pobox.com>

	* figures/*.txt: Drop.
	* monotone.texi: Pull ASCII figures back in conditionally.
	* NEWS, AUTHORS, monotone.spec: Update for 0.15.
	* monotone.1: Update.

2004-11-06  Graydon Hoare  <graydon@pobox.com>

	* README.changesets: New file.
	* config.guess, config.sub: Remove.
	* Makefile.am: Improve document-building brains.
	* cert.cc, netsync.cc: Remove include.
	* configure.ac: Bump version number.
	* merkle_tree.{cc,hh}: Use unsigned char in dynamic_bitset.
	* po/POTFILES.in: Update to remove os_specific.hh.
	* po/monotone.pot: Regenerate.

2004-11-05  Graydon Hoare  <graydon@pobox.com>

	* constants.cc: Up timeout, connection limit.
	* monotone.texi: Various cleanups.

2004-11-05  Ulrich Drepper  <drepper@redhat.com>

	* configure.ac: Reduce dependencies.
	* lua/lua.h: Include config.h.
	* mkstemp.{cc,hh}: Use system variant when found.
	* netxx/resolve_getaddrinfo.cxx: Check for AI_ADDRCONFIG
	definition.
	* po/POTFILES.in: Update to mention changes.
	* Makefile.am (EXTRA_DIST): Include spec file.
	* commands.cc (diff): No output if empty diff.

2004-10-31  Graydon Hoare  <graydon@pobox.com>

	* commands.cc (diff): Use guess_binary.
	Fix up some messages to fit on single lines.
	* Makefile.am: Make monotone.pdf depend on figures.
	* change_set.cc: Make inversion drop "delete deltas".
	* texinfo.css: Make images align nicely.
	* netsync.cc: Fix up some messages to be clearer.

2004-10-30  Graydon Hoare  <graydon@pobox.com>

	* figures/*: New figures.
	* monotone.texi: Rewrite much of the tutorial.

2004-10-30  Nathaniel Smith  <njs@codesourcery.com>

	* netsync.cc (process_hello_cmd): Make clear that when the
	server's key is unknown, we abort the connection.

2004-10-29  Nathaniel Smith  <njs@codesourcery.com>

	* sanity.cc (dump_buffer): Wrap bare string in call to string(),
	to disambiguate conversions (required by Boost 1.30).

2004-10-26  Graydon Hoare  <graydon@pobox.com>

	* tests/t_update_missing.at: New test from Bruce Stephens
	* testsuite.at: Call it.
	* change_set.cc: Fix the error exposed by it.

2004-10-26  Graydon Hoare  <graydon@pobox.com>

	* work.{cc,hh}: Comply with Derek's new tests.
	* commands.cc: Likewise.

2004-10-28  Derek Scherger  <derek@echologic.com>

	* tests/t_rename.at: add test for renaming a file after it has
	been moved rather than before
	* tests/t_revert.at: add test for reverting a missing file

2004-10-28  Derek Scherger  <derek@echologic.com>

	* tests/t_drop_missing.at: New test.
	* testsuite.at: Call it.

2004-10-28  Derek Scherger  <derek@echologic.com>

	* tests/t_add.at: New test.
	* testsuite.at: Call it.

2004-10-26  Graydon Hoare  <graydon@pobox.com>

	* basic_io.{cc,hh}: Rework to use indented stanzas.
	* change_set.cc, revision.cc: Likewise.
	* change_set.cc: Fix formatter bug.
	* commands.cc: Sanity check file ID on delta commit.
	* work.cc: Chatter a bit more on add/drop.

2004-10-17  Graydon Hoare  <graydon@pobox.com>

	* merkle_tree.cc: Fix bad logging.
	* netsync.cc: Fix transmission bugs.
	* work.cc: Add some progress messages back in.
	* monotone.texi: Change contents of MT/work in example.

2004-10-17  Graydon Hoare  <graydon@pobox.com>

	* commands.cc (log): Keep a seen list, mask frontier by it.
	* monotone.texi: Updates to cover revision terminology.

	Also various further merges from trunk, see below.

2004-10-17  Derek Scherger  <derek@echologic.com>

	* lua.{cc,hh} (hook_ignore_branch): new hook
	* commands.cc (ls_branches): call it
	* monotone.texi (Hook Reference): describe it

2004-10-17  Richard Levitte  <richard@levitte.org>

	fix bug 8715 and more
	* diff_patch.cc (struct unidiff_hunk_writer,
	unidiff_hunk_writer::flush_hunk): the skew is not just the
	size difference between added and deleted lines in the current
	hunk, it's the size difference between /all/ added and deleted
	lines so far.  Therefore, the skew needs to be a member of the
	struct rather than being something calculated for each hunk.
	Furthermore, we need to add trailing context even if the change
	only consisted of one line.

2004-10-17  Richard Levitte  <richard@levitte.org>

	* monotone.texi (Working Copy): Change the description of
	'monotone revert' to explain what happens when there are
	arguments.

2004-10-17  Richard Levitte  <richard@levitte.org>

	* monotone.texi (OPTIONS): Add a description of --ticker.

	* ui.cc, ui.hh: Rethink the writing conditions as the ticks being
	"dirty" when they have changed since the last print.  That way,
	it's very easy to see when they need being printed.  This fixes a
	small bug where, in some cases, the exact same tick output is
	produced twice, once before a separate message, and once after,
	when a ticker is actually being removed.
	(tick_write_dot::write_ticks): Add a line that describes the
	ticks, including the amount of each tick per short name.

2004-10-17  Richard Levitte  <richard@levitte.org>

	fix bug 8733
	* ui.cc, ui.hh: Define a separate tick writer struct, and two
	subclasses, one that write counters, and one that writes progress
	characters.  As a consequence, move the count to the ticker class
	itself, and have the user interface contain a map of pointers to
	tickers instead of a map of counters, so data is easier to expand
	and access in a consistent manner.  Finally, correct a few errors
	in the checks for when ticks should be written, and make sure the
	final value gets written when the tickers are removed.

	* cert.cc (write_ancestry_paths):
	* database.cc (rehash):
	* netsync.cc (call_server, rebuild_merkle_trees):
	* rcs_import.cc (import_cvs_repo, cvs_history): Adapt to the new
	tickers.

	* monotone.cc: Add the option '--ticker' which takes the values
	"dot" or "count" to express which type of tick writer to use.  As
	a result, set the tick writer to be the progress dot kind or the
	counting type.

2004-10-15  Graydon Hoare  <graydon@pobox.com>

	* std_hooks.lua (get_revision_cert_trust): Add.

2004-10-14  Graydon Hoare  <graydon@pobox.com>

	* main.cc (UNIX_STYLE_SIGNAL_HANDLING): Enable on OSX.
	* cryptopp/*: Upgrade to 5.2.1
	* Makefile.am: Adjust for a couple new files.

2004-10-13  Graydon Hoare  <graydon@pobox.com>

	* change_set.cc (__STDC_CONSTANT_MACROS): Further hammering.
	* commands.cc (changesetify): New subcommand to db.
	* database.{cc,hh} (sql): Install views.
	(install_views): New function.
	(get_manifest_certs): Restore old variant.
	* numeric_vocab.hh: Use stdint.h.
	* revision.{cc,hh} (analyze_manifest_changes)
	(construct_revisions)
	(build_changesets): New functions.
	* schema.sql: Remove views stuff.
	* views.sql: Put views here.
	* schema_migration.cc: Add migration code for revisions.
	* Makefile.am: Mention views.sql.

2004-10-12  Graydon Hoare  <graydon@pobox.com>

	* unix/read_password.cc: Don't force echo on.

2004-10-10  Graydon Hoare  <graydon@pobox.com>

	merge a batch of changes from trunk, see below.
	* monotone.spec: Bump to 0.14.

2004-10-10  Graydon Hoare  <graydon@pobox.com>

	fix bug 9884
	* tests/t_singlenetsync.at: sleep 5
	* tests/t_netsync.at: sleep 5

2004-10-10  Graydon Hoare  <graydon@pobox.com>

	* AUTHORS: Mention Richard Levitte.
	* Makefile.am: Remove nonce stuff.
	* NEWS: Describe changes from last release.
	* cert.cc (cert_manifest_testresult): Teach about other ways
	of writing a boolean value.
	* commands.cc (commit): Don't commit when no change.
	(debug): Rename to "db execute".
	(serve): Require passphrase on startup.
	(bump): Remove command.
	(ls keys): Handle no keys.
	* configure.ac: Bump version number.
	* keys.cc (get_passphrase): Reject empty passphrase nicely,
	from user and from hook.
	* lua.{cc,hh} (hook_get_sorter): Dead code, remove.
	* main.cc (main_with_many_flavours_of_exception): s/char/int/.
	* monotone.cc (OPT_DUMP): New option.
	(OPT_VERBOSE): Rename as OPT_DEBUG.
	* monotone.{texi,1}: Document changes, s/rdiff/xdelta/.
	* nonce.{cc,hh}: Drop.
	* sanity.hh (sanity::filename): New field.
	* sanity.cc (dump_buffer): Dump to file or be silent.
	* testsuite.at (persist_phrase_ok): Define as true.
	* tests/t_null.at: Adjust for new option names.
	* unit_tests.cc: Set debug, not verbose.

2004-10-10  Graydon Hoare  <graydon@pobox.com>

	* tests/t_remerge.at: New test.
	* testsuite.at: Call it.

2004-10-10  Graydon Hoare  <graydon@pobox.com>

	* cryptopp/algebra.cpp:
	* cryptopp/asn.h:
	* cryptopp/hmac.h:
	* cryptopp/iterhash.h:
	* cryptopp/mdc.h:
	* cryptopp/modes.h:
	* cryptopp/osrng.h:
	* cryptopp/pubkey.h:
	* cryptopp/seckey.h:
	* cryptopp/simple.h:
	* cryptopp/smartptr.h:
	* cryptopp/strciphr.cpp:
	* cryptopp/strciphr.h:
	* lcs.cc:
	* lua.cc: Fixes for g++ 3.4 from Michael Scherer.
	* AUTHORS: Mention Michael.

2004-10-10  Graydon Hoare  <graydon@pobox.com>

	* tests/t_movedel.at: New test.
	* testsuite.at: Call it.

2004-10-10  Graydon Hoare  <graydon@pobox.com>

	* tests/t_movepatch.at: New test.
	* testsuite.at: Call it.

2004-10-10  Graydon Hoare  <graydon@pobox.com>

	* change_set.cc:
	* file_io.{cc,hh}: Bug Fixes.

2004-10-10  Graydon Hoare  <graydon@pobox.com>

	* cert.{cc,hh} (cert_revision_manifest): Bug fixes.
	* commands.cc (approve)
	(disapprove)
	(testresult): Teach about revisions.
	* tests/t_disapprove.at:
	* tests/t_i18n_file.at:
	* tests/t_ls_missing.at:
	* tests/t_testresult.at: Bug fixes.

2004-10-09  Graydon Hoare  <graydon@pobox.com>

	* netsync.cc:
	* packet.cc:
	* tests/t_i18n_file.at:
	* tests/t_netsync.at:
	* tests/t_single_char_filenames.at:
	* tests/t_singlenetsync.at: Bug fixes.

2004-10-04  Graydon Hoare  <graydon@pobox.com>

	* Makefile.am: Re-enable rcs stuff.
	* cert.{cc,hh}: Bug fixes.
	* change_set.{cc,hh} (apply_change_set)
	(apply_change_set_inverse): New helper functions.
	* commands.cc (log)
	(rcs_import)
	(cvs_import): Teach about revisions.
	* database.cc (get_version): Block reconstruction loops.
	* diff_patch.cc:
	* lua.cc:
	* netsync.cc: Remove references to obsolete includes.
	* rcs_file.cc: Pick up bug fix from trunk.
	* rcs_import.cc: Teach about revisions.

2004-10-03  Graydon Hoare  <graydon@pobox.com>

	* change_set.{cc,hh}: Lots of little bug fixes.
	* commands.cc: Likewise.
	* database.cc: Comment some chatter.
	* file_io.{cc,hh}: Bug fixes, remove unlink / hardlink stuff.
	* netcmd.cc: Bug fixes.
	* netsync.cc: Likewise.
	* tests/t_*.at: Teach about revisions.
	* testsuite.at: Likewise.
	* work.cc: Bug fixes.

2004-09-30  Graydon Hoare  <graydon@pobox.com>

	* app_state.cc: Inform db of app.
	* change_set.cc: Bug fixes.
	* commands.cc: Use delete_file not unlink.
	* database.{cc,hh}: Bug fixes in trust function machinery.
	* revisions.cc: Skip consideration of empty parents.
	* file_io.{cc,hh}: Remove unlink function.
	* schema.sql: Pass pubkey data into trust call.

2004-09-29  Graydon Hoare  <graydon@pobox.com>

	* change_set.cc: Various bug fixes, merge unit tests.

2004-09-26  Graydon Hoare  <graydon@pobox.com>

	* predicament.{cc,hh}: Remove.
	* Makefile.am: Update.
	* change_set.{cc,hh}: Compilation fixes.
	* commands.cc: Likewise.
	* file_io.{cc,hh}: Likewise, and implement link/unlink.
	* lua.{cc,hh}: Implement conflict resolver hooks.

2004-09-25  Graydon Hoare  <graydon@pobox.com>

	* change_set.{cc,hh}: Rewrite entirely.
	* work.cc: Adjust to compensate.
	* commands.cc: Likewise.
	* numeric_vocab.hh: Ask for C99 constant ctor macros.

2004-09-24  Derek Scherger  <derek@echologic.com>

	* app_state.{cc,hh} (initialize,prefix,in_restriction): rename
	restriction vars; require explicit subdir restriction with ".";
	remove restriction if any path evaluates to working copy root
	* commands.cc (update): disallow restricted updates
	(diff): use --manifest options for initialization
	* tests/t_restrictions.at: remove restricted update test
	* tests/t_subdirs.at: added (missed previously)
	* vocab.cc (verify): allow "." elements in local_path
	(test_file_path_verification): test for "." in paths

2004-09-20  Derek Scherger  <derek@echologic.com>

	* app_state.{cc,hh}: add message and manifest options; add subdir
	restriction; use set instead of vector for path restrictions
	(prefix): new method
	(add_restriction): change signature for set of path restrictions
	(in_restriction): renamed from is_restricted; adjust path matching
	(set_message): new method
	(add_manifest): new method
	(initialize): remove code to adjust restrictions from old options
	* commands.cc
	(restrict_patch_set, struct unknown_itemizer): rename
	app.is_restricted to app.in_restriction
	(add,drop,rename,revert): prefix file args with current subdir
	(update,status,ls_unknown,ls_missing): build restriction from args
	(commit): build restriction from args; use --message option
	(diff): build restriction from args; use --manifest options
	* file_io.cc (find_working_copy): logging tweaks
	* monotone.cc: remove --include/--exclude options; add --manifest
	and --message options
	* tests/t_attributes.at: add commit --message option
	* tests/t_cross.at: commit --message
	* tests/t_cwork.at: commit --message
	* tests/t_disapprove.at: commit --message
	* tests/t_drop.at: commit --message
	* tests/t_erename.at: commit --message; diff --manifest
	* tests/t_fork.at: commit --message
	* tests/t_genkey.at: commit --message
	* tests/t_i18n_file.at: commit --message
	* tests/t_import.at: commit --message
	* tests/t_ls_missing.at: commit --message
	* tests/t_merge.at: commit --message
	* tests/t_movedel.at: commit --message
	* tests/t_movepatch.at: commit --message
	* tests/t_netsync.at: commit --message
	* tests/t_persist_phrase.at: commit --message
	* tests/t_rename.at: commit --message
	* tests/t_renamed.at: commit --message
	* tests/t_restrictions.at: remove --include/--exlclude options
	* tests/t_revert.at: commit --message
	* tests/t_scan.at: commit --message
	* tests/t_single_char_filenames.at: commit --message
	* tests/t_testresult.at: commit --message
	* tests/t_unidiff.at: commit --message
	* tests/t_unidiff2.at: commit --message
	* tests/t_update.at: commit --message
	* tests/t_versions.at: commit --message

2004-09-19  Graydon Hoare  <graydon@pobox.com>

	* change_set.cc: More bug fixes.
	* basic_io.cc: Improve error reporting.
	* commands.cc (complete): Teach about revisions.
	* database.{cc,hh}: Add complete variant for revisions.

2004-09-19  Graydon Hoare  <graydon@pobox.com>

	* change_set.cc: Add a unit test, fix some bugs.

2004-09-18  Graydon Hoare  <graydon@pobox.com>

	* change_set.{cc,hh} (subtract_change_sets): New function.
	(build_pure_addition_change_set): New function.
	* commands.cc (try_one_merge): Teach about revisions
	(merge): Likewise.
	(propagate): Likewise.
	(update): Change from changeset inversion to negation.
	* database.{cc,hh} (get_manifest): New function.
	* cert.cc: Use it.

2004-09-13  Graydon Hoare  <graydon@pobox.com>

	* change_set.cc: Bug fixes.
	* commands.cc: Likewise.

2004-09-13  Graydon Hoare  <graydon@pobox.com>

	* change_set.{cc,hh}: Implement delta renaming and merging.
	* commands.cc
	(update): Teach about revisions.
	(agraph): Likewise.
	* diff_patch.{cc,hh}: Tidy up interface a bit.
	* database.{cc,hh} (get_revision_ancestry): New helper.
	* file_io.{cc,hh}
	(move_dir): New function.
	(delete_dir_recursive): New function.

2004-09-10  Graydon Hoare  <graydon@pobox.com>

	* basic_io.{cc,hh}: Move to more "normal" looking
	quoted output.
	* change_set.{cc,hh}: Extend, bugfix.
	* commands.cc (diff): Teach about revisions.
	* revision.{cc,hh}: Extend, bugfix.

2004-09-07  Derek Scherger  <derek@echologic.com>

	subdirectory restrictions

	* file_io.{hh,cc} (find_working_copy): new function
	(absolutify) use fs::current_path
	* work.cc (add_to_options_map): use options.insert to preserve
	previous settings
	* work.hh: add note about MT/options file to header comment
	* lua.{hh,cc} (load_rcfile): renamed from add_rcfile
	* app_state.{cc,hh} (constructor): remove read of MT/options
	(initialize): new methods to find/create working copy
	(set_stdhooks,set_rcfiles,add_rcfile,load_rcfiles,read_options):
	new methods
	(set_database,set_branch,set_signing_key): update for new options
	reading
	* monotone.cc: update help for --norc option
	(cpp_main): move loading of lua hooks to app_state after book
	keeping dir is found
	* commands.cc: all commands call app initialize to relocate to
	working copy directory
	(bookdir_exists,ensure_bookdir) remove
	(setup) new command to create working copy
	* tests/t_subdirs.at: new test
	* testsuite.at: call new setup command to initialize working copy;
	call new test
	(PROBE_NODE): adjust for new checkout requirement that MT dir does
	not exist
	* tests/t_attributes.at: ditto
	* tests/t_cwork.at: ditto
	* tests/t_single_char_filenames.at: ditto
	* tests/t_versions.at: ditto

2004-09-06  Graydon Hoare  <graydon@pobox.com>

	* Makefile.am: Revise,
	* cert.{cc,hh}: Minor bug fixes.
	* change_set.{cc,hh}
	(apply_path_rearrangement): New variant.
	(read_path_rearrangement): New function.
	(write_path_rearrangement): New function.
	* commands.cc: Partially teach about revisions.
	* database.{cc,hh}: Bug fixes.
	* revision.cc: Print new manifest as hex.
	* schema.sql: Fix typos.
	* update.{cc,hh}: Teach about revisions.

2004-09-06  Graydon Hoare  <graydon@pobox.com>

	* Makefile.am (unit_tests): Revise.
	* change_set.{cc,hh}: Move accessors to header.
	* constants.cc (netcmd_current_protocol_version): Bump.
	(netcmd_minimum_bytes_to_bother_with_gzip): Expand to 0xfff.
	* database.{cc,hh}: Teach about reverse deltas, bug fixes.
	* diff_patch.{cc,hh}: Remove dead code.
	* merkle_tree.{cc,hh}: Teach about revisions.
	* netsync.cc: Teach about revisions, reverse deltas.
	* packet.{cc,hh}: Likewise.
	* unit_tests.{cc,hh}: Reactivate tests.

2004-09-02  Derek Scherger  <derek@echologic.com>

	* tests/t_restrictions.at: rework and attempt to clean things up a
	bit; add test for bug in restrict_patch_set
	* commands.cc (restrict_patch_set): fix bug in removal of
	restricted adds/dels/moves/deltas

2004-08-28  Graydon Hoare  <graydon@pobox.com>

	* Makefile.am (unit_tests): Split out working parts.
	* basic_io.{cc,hh}: Minor fixes.
	* cert.{cc,hh}: Fixes, remove major algorithms.
	* revision.{cc,hh}: Rewrite algorithms from cert.cc.
	* change_set.{cc,hh}: Extensive surgery, unit tests.
	* database.{cc,hh}: Minor fixes.
	* file_io.{cc,hh}: Likewise.
	* lua.cc: Likewise.
	* packet.{cc,hh}: Teach about revisions.
	* schema.sql: Drop some optimistic tables.
	* unit_tests.{cc,hh}: Add revision, change_set tests.
	* vocab.cc: Instantiate revision<cert>.
	* work.{cc,hh}: Rewrite in terms of path_rearrangement.

2004-08-17  Graydon Hoare  <graydon@pobox.com>

	* database.cc: Simplified.
	* schema.sql: Simplified.
	* transforms.cc: Fixed bug.
	* revision.{hh,cc}: Stripped out tid_source.
	* change_set.{cc,hh}: Oops, never committed!

2004-08-16  Graydon Hoare  <graydon@pobox.com>

	* change_set.{hh,cc}: Simplified, finished i/o.
	* revision.{hh,cc}: Fix to match, redo i/o.
	* basic_io.cc (basic_io::parser::key): Print trailing colon.
	* vocab.hh: Whitespace tweak.

2004-08-09  Graydon Hoare  <graydon@pobox.com>

	* change_set.{hh,cc}: New files.
	* basic_io.{hh,cc}: New files.
	* predicament.{hh,cc}: New files.
	* revision.{hh,cc}: Break completely, need to fix.
	* diff_patch.{hh,cc}: Minor touchups.
	* lua.{hh,cc}, std_hooks.lua: Model predicaments.
	* Makefile.am: Update.

2004-07-10  Graydon Hoare  <graydon@pobox.com>

	* lcs.{hh,cc}: Move lcs.hh body into lcs.cc.
	* diff_patch.cc: Modify to compensate.
	* revision.{hh,cc}: New files.
	* Makefile.am: Update
	* patch_set.{hh,cc}: Remove.
	* {cert,database,lua,packets}.{hh,cc}, commands.cc:
	Modify partially (incomplete) to use revisions.
	* manifest.{hh,cc}: Cleanup, remove dead code.
	* schema.sql: Declare new revision tables.
	* schema_migration.cc: Incomplete migrator.
	* {transforms.{hh,cc}, vocab{,_terms}.hh:
	Infrastructure for revisions.

2004-07-20  Derek Scherger  <derek@echologic.com>

	* tests/t_restrictions.at: new test
	* testsuite.at: run it
	* app_state.{cc,hh} (add_restriction, is_restricted): new functions
	* monotone.cc (--include,--exclude): new options
	* commands.cc (restrict_patch_set): new function. called by
	commit, update, status, diff commands

2004-07-05  Graydon Hoare  <graydon@pobox.com>

	* cert.cc (operator<): Fix wrong ordering of
	fields.

2004-06-07  Graydon Hoare  <graydon@pobox.com>

	* cryptopp/algebra.cpp:
	* cryptopp/asn.h:
	* cryptopp/hmac.h:
	* cryptopp/iterhash.h:
	* cryptopp/mdc.h:
	* cryptopp/modes.h:
	* cryptopp/osrng.h:
	* cryptopp/pubkey.h:
	* cryptopp/seckey.h:
	* cryptopp/simple.h:
	* cryptopp/smartptr.h:
	* cryptopp/strciphr.cpp:
	* cryptopp/strciphr.h:
	* lcs.hh:
	* lua.cc: Fixes for g++ 3.4 from Michael Scherer.
	* AUTHORS: Mention Michael.

2004-05-28  Graydon Hoare  <graydon@pobox.com>

	* tests/t_movedel.at: New test.
	* testsuite.at: Call it.
	* diff_patch.cc (adjust_deletes_under_renames): New function.
	(merge3): Use it.

2004-05-27  Graydon Hoare  <graydon@pobox.com>

	* tests/t_movepatch.at: New test.
	* testsuite.at: Call it.
	* diff_patch.cc (adjust_deltas_under_renames): New function.
	(merge3): Use it.

2004-05-20  Graydon Hoare  <graydon@pobox.com>

	* NEWS: Note 0.13 release.
	* configure.ac: Bump version number.
	* monotone.spec: Likewise.

2004-05-19  Graydon Hoare  <graydon@pobox.com>

	* file_io.cc (tilde_expand): Fix fs::path use.

2004-05-18  Graydon Hoare  <graydon@pobox.com>

	* diff_patch.cc (apply_directory_moves): Fix fs::path use.
	* file_io.cc (write_data_impl): Likewise.
	* packet.cc: Use explicit true/false maps in caches.
	* sanity.cc (dump_buffer): Write to clog (buffered).

2004-05-16  Graydon Hoare  <graydon@pobox.com>

	* keys.cc (get_passphrase): Reimplement.
	* unix/read_password.c: Remove.
	* {unix,win32}/read_password.cc: Add.
	* constants.{hh,cc} (maxpasswd): New constant.
	* Makefile.am: Teach about platform specific stuff.

2004-05-16  Graydon Hoare  <graydon@pobox.com>

	* diff_patch.cc (merge2): Don't discard files on one side.
	* std_hooks.lua (merge2_xxdiff_cmd): Specify merge filename.

2004-05-14  Joel Rosdahl  <joel@rosdahl.net>

	* std_hooks.lua (ignore_file): Quote dots in .svn patterns.
	* monotone.texi: Updated ignore_file hook example.

2004-05-13  Nathaniel Smith  <njs@codesourcery.com>

	* commands.cc: Include boost/filesystem/path.hpp,
	boost/filesystem/convenience.hpp.
	(checkout): Make checkout directory an fs::path, not a local_path.

2004-05-13  Nathaniel Smith  <njs@codesourcery.com>

	* testsuite.at (test_hooks.lua): Add a 'test_attr' attribute
	hook.  Add tests t_attributes and t_single_char_filenames.
	* tests/t_attributes.at: New test.
	* tests/t_single_char_filenames.at: New test.
	* manifest.cc (read_manifest_map): Replace ".+" with ".*" to
	support single-character filenames.
	* work.cc (read_work_set): Likewise.
	(read_attr_map): Likewise.

2004-05-13  Nathaniel Smith  <njs@codesourcery.com>

	* monotone.texi (Hook Reference): Update documented default
	definitions of 'merge2' and 'merge3'.

2004-05-12  Graydon Hoare  <graydon@pobox.com>

	* AUTHORS: Rename Netxx back to netxx. Really, look in
	the manifest; it's been renamed!
	* configure.ac: Remove prg_exec_monitor checks.

2004-05-12  Nathaniel Smith  <njs@pobox.com>

	* AUTHORS: Remove discussion of adns, since we no longer
	distribute it.  Fix capitalization of "Netxx".

2004-05-12  Nathaniel Smith  <njs@pobox.com>

	* std_hooks.lua (merge2): Support xemacs.  Add error message
	if no merge tool is found.
	(merge3): Likewise.  Also add (disabled) hook to use CVS
	'merge' command, as a demonstration of how to.

2004-05-12  Graydon Hoare  <graydon@pobox.com>

	* std_hooks.lua (get_author): Remove standard definition.
	* monotone.texi: Document change.

2004-05-12  Graydon Hoare  <graydon@pobox.com>

	* cert.cc (cert_manifest_author_default): Use default signing key
	name for default author, if lua hook fails.

2004-05-12  Joel Rosdahl  <joel@rosdahl.net>

	* file_io.cc (walk_tree): Removed extraneous newline in error
	message.

	* std_hooks.lua (edit_comment): Added missing newline in log
	message template.

	* tests/t_ls_missing.at: New test case.
	* testsuite.at: Added t_ls_missing.at.

2004-05-10  Graydon Hoare  <graydon@pobox.com>

	* nonce.cc, nonce.hh: New files.
	* Makefile.am: Note new files.
	* lua.cc, lua.hh (hook_get_nonce): New hook.
	* commands.cc (bump): New command.
	* commands.cc: Remove "(file|manifest)" args most places.
	* tests/t_disapprove.at
	* tests/t_genkey.at
	* tests/t_singlenetsync.at
	* tests/t_netsync.at
	* tests/t_persist_phrase.at: Adjust to compensate.
	* monotone.texi, monotone.1: Adjust to compensate.
	* work.cc, work.hh: Constify some arguments.

2004-05-09  Graydon Hoare  <graydon@pobox.com>

	* diff_patch.cc: Remove recording of file merge ancestry.

2004-05-09  Graydon Hoare  <graydon@pobox.com>

	* commands.cc (ls_missing): Modify to account for work.

2004-05-09  Graydon Hoare  <graydon@pobox.com>

	* commands.cc (list missing): New command.
	* monotone.texi, monotone.1: Update to document.

2004-05-08  Graydon Hoare  <graydon@pobox.com>

	* main.cc: New file encompassing prg_exec_monitor.
	* mkstemp.cc, mkstemp.hh: New portable implementation.
	* lua.cc: Use mkstemp from bundled version.
	* lua/liolib.c: Remove old mkstemp definition.
	* monotone.cc (cpp_main): Remove prg_exec env setting.
	* sanity.cc (sanity::dump_buffer): Dump logbuf to stderr, not stdout.
	* std_hooks.lua (temp_file): Use mkstemp not io.mkstemp.
	* Makefile.am (MOST_SOURCES): Add new files.

2004-05-03  Joel Rosdahl  <joel@rosdahl.net>

	* monotone.texi: Removed extraneous @ftable directive.

2004-05-02  Graydon Hoare  <graydon@pobox.com>

	* monotone.texi: Add stuff on selectors, new hooks.
	* AUTHORS: Typo fix.
	* configure.ac: Bump version number.

	Release point (v 0.12).

2004-05-02  Joel Rosdahl  <joel@rosdahl.net>

	Made it possible to rename a rename target and to undo a rename.
	I.e.: Given a rename set A -> B, "monotone rename B C" gives the
	rename set A -> C and "monotone rename B A" gives the empty rename
	set.
	* work.cc (visit_file): Implement new behavior.
	* tests/t_rename.at: Added test cases for new behavior.
	* monotone.texi: Note that a rename can be undone.

	Fix bug #8458:
	* file_io.hh, file_io.cc (walk_tree): Added require_existing_path
	parameter.
	* work.cc (build_deletion): Pass new parameter to walk_tree.
	* work.cc (build_rename): Ditto.

	* manifest.cc (build_manifest_map): Fix missing file check for
	i18n paths.

2004-05-01  Joel Rosdahl  <joel@rosdahl.net>

	Fix bug #7220:
	* manifest.cc (build_manifest_map): Handle missing file
	gracefully.

	* file_io.cc (walk_tree): Handle nonexistent file/directory
	gracefully.

2004-04-30  Christof Petig <christof@petig-baender.de>

	* rcs_import.cc (store_trunk_manifest_edge):
		skip ancestry to empty manifest
	* rcs_import.cc (process_branch):
		also follow branches of last/first versions

2004-04-29  Graydon Hoare  <graydon@pobox.com>

	* configure.ac: Fix up windows probe and bundling checks.
	* netxx/resolve_getaddrinfo.cxx: Local hack for stream addresses.
	* netsync.cc: Report address before listening.

2004-04-29  Graydon Hoare  <graydon@pobox.com>

	* cert.cc (get_branch_heads): Calculate a "disapproved version"
	attribute which culls a version with only disapproved ancestry
	edges.
	* monotone.texi: Fix some ascii-art diagrams.

2004-04-28  Christof Petig <christof@petig-baender.de>

	* command.cc (heads):
	show date and author certificates for each head

2004-04-28  Christof Petig <christof@petig-baender.de>

	* configure.ac:
	default to using the bundled SQLite

2004-04-28  Christof Petig <christof@petig-baender.de>

	* commands.cc (log):
	support optional file argument to show change log for
	e.g. monotone log [ID] cert.cc

2004-04-26  Christof Petig <christof@petig-baender.de>

	* rcs_import.cc (process branch):
	insert dummy cvs_edge to mark newly added file
	as previously non existant

2004-04-25  Joel Rosdahl  <joel@rosdahl.net>

	* po/stamp-po: Removed since it's generated.
	* std_hooks.lua (ignore_file): Corrected name of Subversion's
	administrative directory.
	* work.hh: Ditto.
	* monotone.texi (Hook Reference): Updated default definition of
	ignore_file.

2004-04-23  Christof Petig <christof@petig-baender.de>

	* rcs_import.cc (build_parent_state, build_child_state):
	remove dying files from manifest
	* rcs_import.cc (cvs_file_edge, note_file_edge):
	calculate state and remember it (alive or dead)

2004-04-23  Christof Petig <christof@petig-baender.de>

	* rcs_import.cc (import_rcs_file_with_cvs):
	do not include dead files in head_manifest

2004-04-22  Christof Petig <christof@petig-baender.de>

	* rcs_file.cc, rcs_file.hh: read and remember 'state' of revision
	* rcs_import.cc: remove Attic/ part from path

2004-04-21  Christof Petig <christof@petig-baender.de>

	* configure.ac: enable use of installed SQLite library

2004-04-20  Graydon Hoare  <graydon@pobox.com>

	* lua.hh, lua.cc (hook_note_commit): New hook.
	* commands.cc (commit): Call it.

2004-04-19  Graydon Hoare  <graydon@pobox.com>

	* cert.cc: Make trust messages nicer.
	* merkle_tree.cc: Clarify logging messages.
	* netsync.cc: Reorganize tickers, put client in txn.
	* packet.cc, packet.hh: Teach about constructability.

2004-04-16  Graydon Hoare  <graydon@pobox.com>

	* netsync.cc (session::extra_manifests): New member.
	(session::analyze_ancestry_graph): Use it.
	* tests/t_singlenetsync.at: New test for single manifest sync.
	* testsuite.at: Call it.

2004-04-14  Tom Tromey  <tromey@redhat.com>

	* rcs_import.cc (import_cvs_repo): Use require_password.
	Include keys.hh.
	* keys.hh (require_password): Declare.
	* keys.cc (require_password): New function.

2004-04-13  Tom Tromey  <tromey@redhat.com>

	* monotone.texi: Typo fixes.

2004-04-10  Graydon Hoare  <graydon@pobox.com>

	* netsync.cc: Minor bug fixes.

2004-04-10  Graydon Hoare  <graydon@pobox.com>

	* database.{cc,hh}:
	* commands.{cc,hh}:
	* lua.{cc,hh}:
	* std_hooks.lua:
	* vocab_terms.hh:
	Implement first cut at selectors.

2004-04-10  Graydon Hoare  <graydon@pobox.com>

	* cert.cc (operator<): Include name in compare.
	(operator==): Likewise.
	* packet.cc: Include shared_ptr.
	* rcs_file.cc: Rewrite by hand, no spirit.
	* rcs_import.cc: Change ticker names a bit.

2004-04-09  Graydon Hoare  <graydon@pobox.com>

	* app_state.cc: Fix a couple file path constructions.
	* file_io.cc (book_keeping_file): Make one variant static.
	* manifest.cc: Remove some dead code in walkers.
	* work.cc: Ditto.
	* rcs_file.cc: fcntl fix from Paul Snively for OSX.

2004-04-09  Graydon Hoare  <graydon@pobox.com>

	* file_io.cc: Fix boost filesystem "." and ".." breakage.
	* lua.cc: Fix format of log entry.
	* monotone.cc: Log locale settings on startup.
	* sanity.cc: Dump prefix on --verbose activation.
	* testsuite/t_i18n_file.at: Fix autotest LANG breakage.
	* testsuite/t_null.at: Account for chatter with --verbose.

2004-04-09  Graydon Hoare  <graydon@pobox.com>

	* configure.ac: Comment out check for sse2,
	set bundling to true by default.
	* INSTALL: describe changes to bundling.
	* Makefile.am: Remove vestiges of depot.

2004-04-07  Graydon Hoare  <graydon@pobox.com>

	* adns/*:
	* network.{cc,hh}:
	* proto_machine.{cc,hh}:
	* {http,smtp,nntp}_tasks.{cc,hh}:
	* tests/t_{http,smtp,nntp,proxy}.at:
	* url.{cc,hh}:
	* depot.cc:
	Delete files.
	* commands.cc:
	* lua.{cc,hh}:
	* database.{cc,hh}: Remove network/queue stuff.
	* configure.ac:
	* constants.{cc,hh}:
	* tests/t_{netsync,singlecvs,cvsimport}.at:
	* testsuite.at:
	* transforms.{cc,hh}:
	* unit_tests.{cc,hh}:
	* vocab_terms.hh:
	* vocab.{cc,hh}:
	* Makefile.am: Adjust for deletions.
	* app_state.hh: Cleanup.
	* monotone.texi: Fix some typos.
	* packet.{cc,hh}: Implement database ordering.
	* netsync.cc: Massage to use new packet logic.
	* commands.cc:
	* std_hooks.lua: Add initial selector stuff.

2004-03-29  Graydon Hoare  <graydon@pobox.com>

	* monotone.spec: Update for 0.11 release.

	Release point (v 0.11).

2004-03-29  Graydon Hoare  <graydon@pobox.com>

	* Makefile.am (DISTCHECK_CONFIGURE_FLAGS): Set.
	* commands.cc: Tidy up / narrow output width.
	* patch_set.cc: Likewise.
	* monotone.texi: Cleanups for PDF generation.

2004-03-28  Graydon Hoare  <graydon@pobox.com>

	* NEWS: Mention 0.11 release.
	* AUTHORS: Mention Robert.

2004-03-28  Robert Bihlmeyer  <robbe+mt@orcus.priv.at>

	* file_io.cc (walk_tree_recursive): Ignore broken symlinks.

2004-03-27  Graydon Hoare  <graydon@pobox.com>

	* monotone.texi: Flesh out netsync stuff, remove old network stuff.
	* monotone.1: Likewise.

2004-03-27  Robert Helgesson  <rycee@home.se>

	* Makefile.am:
	* configure.ac:
	* database.cc:
	* depot.cc:
	* lua.cc:
	* network.cc:
	* schema_migration.cc: Bundled library switch logic.

2004-03-27  Graydon Hoare  <graydon@pobox.com>

	* depot.cc (dump): Implement.
	* tests/t_http.at, test/t_proxy.at: Use "depot.cgi dump" rather than sqlite.
	* sqlite/pager.h: Change page size.
	* README: Massage slightly.
	* INSTALL: Write real installation instructions.
	* Makefile.am: Include build of "one big page" docs.
	* boost/circular_buffer_base.hpp: Another boost version insulation fix.
	* vocab.cc (verify): Normalize local_path's during verification on boost 1.31.0.
	* monotone.texi: Rip out some of the pre-netsync networking docs.

2004-03-24  Graydon Hoare  <graydon@pobox.com>

	* boost/circular_buffer_base.hpp: Boost version insulation.
	* cert.cc, cert.hh, commands.cc: Differentiate "unknown" keys from "bad".
	* xdelta.cc, proto_machine.cc: Fix boost version insulation.

2004-03-24  Graydon Hoare  <graydon@pobox.com>

	* rcs_import.cc (import_substates): Filter by branch.
	* xdelta.cc: Minor bits of insulation.

2004-03-24  Graydon Hoare  <graydon@pobox.com>

	* AUTHORS: Mention Robert.
	* configure.ac: Enable sse2 stuff.
	* monotone.spec: Adjust CFLAGS and CXXFLAGS
	* monotone.texi (Network Service): Expand a bit.

2004-03-24  Robert Helgesson  <rycee@home.se>

	* commands.cc:
	* http_tasks.cc:
	* lua.cc:
	* manifest.cc:
	* netsync.cc:
	* nntp_tasks.cc:
	* proto_machine.cc:
	* work.cc:
	* xdelta.cc:
	Portability fixes for boost 1.31.0

2004-03-22  Graydon Hoare  <graydon@pobox.com>

	* cryptopp/integer.cpp, integer.h: Enable SSE2 multiply code.
	* database.cc, database.hh, certs.cc: Speed up 'heads'.

2004-03-21  Graydon Hoare  <graydon@pobox.com>

	* lcs.hh, sanity.hh: Minor performance tweaks.

2004-03-20  Graydon Hoare  <graydon@pobox.com>

	* rcs_import.cc: Teach how to aggregate branches.
	* monotone.texi: Start section on netsync.

2004-03-20  Olivier Andrieu  <oliv__a@users.sourceforge.net>

	* commands.cc (log): Show tags in log.
	* AUTHORS: Mention Olivier.

2004-03-17  Nathan Myers  <ncm@cantrip.org>

	* boost/circular_buffer.hpp:
	* commands.cc:
	* cryptopp/fltrimpl.h:
	* cryptopp/iterhash.cpp:
	* quick_alloc.hh:
	Fixes for gcc 3.4 compat and warnings.

2004-03-17  Graydon Hoare  <graydon@pobox.com>
	* cryptopp/config.h: Fix for gcc aliasing optimization error.
	* rcs_import.cc (cvs_history::note_file_edge):
	Fix for first changelog import bug (#5813).

2004-03-15  Graydon Hoare  <graydon@pobox.com>

	* rcs_import.cc: Import lone versions properly.
	* tests/t_singlecvs.at: New test for it.
	* testsuite.at: Call it.

2004-03-14  Graydon Hoare  <graydon@pobox.com>

	* commands.cc (diff): Show added files too.
	* monotone.texi: Fix typo.

2004-03-08  Graydon Hoare  <graydon@pobox.com>

	* netsync.cc (analyze_manifest_edge): Fix broken formatter.

2004-03-07  Graydon Hoare  <graydon@pobox.com>

	* Makefile.am (BOOST_SANDBOX_SOURCES): Remove boost::socket entries.
	(NETXX_SOURCES): Predicate on IP6 support in OS (from Paul Snively).
	* boost/socket/*.[hc]pp: Remove.
	* boost/io/streambuf_wrapping.hpp: Remove.
	* AUTHORS: Remove copyright notice for boost::socket.
	* acinclude.m4 (ACX_PTHREAD): Add.
	* network.cc: Replace boost::socket machinery with Netxx.
	* network.hh (open_connection): Remove prototype, static function.
	* sanity.hh, sanity.cc: Make log formatters give file:line coords,
	throw log offending coordinate if formatting fails.

2004-03-07  Graydon Hoare  <graydon@pobox.com>

	* sqlite/date.c, sqlite/vdbeInt.h, sqlite/vdbeaux.c: Add.
	* sqlite/*.c: Upgrade to 2.8.12.
	* Makefile.am: Update to mention new files.
	* cert.cc
	(expand_ancestors)
	(expand_dominators): Resize child bitmaps to cover parent.

2004-03-06  Graydon Hoare  <graydon@pobox.com>

	* netsync.cc (get_root_prefix): Fix from Paul Snively
	to fix static initialization order on mac OSX.
	* montone.texi: Typo fix from Anders Petersson.
	* *.cc: Move all function defs into column 0.

2004-03-04  Graydon Hoare  <graydon@pobox.com>

	* std_hooks.lua: Fix merger execution pessimism.

2004-03-04  Graydon Hoare  <graydon@pobox.com>

	* adler32.hh: Modify to use u8.
	* depot.cc, netcmd.cc, xdelta.cc: Modify to use u8.
	* netio.hh, numeric_vocab.hh (widen): Move between headers.
	* netsync.cc: Correct role-assumption bugs.
	* schema_migration.cc: Strip whitespace in sha1.
	(changes received from Christof Petig)

2004-03-01  Graydon Hoare  <graydon@pobox.com>

	* commands.cc: Handle anonymous pulling.
	* netsync.cc: Ditto.

	Release point (v 0.10).

2004-03-01  Graydon Hoare  <graydon@pobox.com>

	* NEWS: Mention impending 0.10 release.
	* cert.cc, cert.hh: Bug fixes, implement trust function, QA stuff.
	* commands.cc: Tweak disapprove, approve, testresult, push, pull.
	* configure.ac: Bump version number.
	* cryptopp/rng.h, cryptopp/rng.cpp
	(MaurerRandomnessTest): Fix bitrot.
	* keys.cc: Add Maurer PRNG randomness test.
	* lua.cc, lua.hh: Add trust, testresult, anonymous netsync hooks.
	* monotone.1: Update to follow changes to commands.
	* monotone.texi: Include QA section, adjust some UI drift, clarify
	reserved cert names, document new hooks and commands.
	* netcmd.hh, netcmd.cc: Add anonymous, error commands; fix bugs.
	* netsync.cc: Process new commands, factor server loop a bit.
	* std_hooks.lua: Add new hook defaults, factor mergers.
	* tests/t_netsync.at: Check SHA1 of each edge.
	* tests/t_null.at: Call with --norc to skip ~/.monotonerc
	* tests/t_update.at: Fix glaring error.
	* tests/t_disapprove.at, tests/t_testresult.at: New tests.
	* testsuite.at: Call them.
	* ui.cc (sanitize): Clean escape chars from output (optional?)
	* update.cc: Rewrite entirely in terms of new QA definitions.

2004-02-24  Graydon Hoare  <graydon@pobox.com>

	* commands.cc (ls_keys): Write key hash codes.
	* constands.cc (netsync_timeout_seconds): Up to 120.
	* netsync.cc: Fix a bunch of bugs.
	* patch_set.cc (manifests_to_patch_set): Fix bug in overload
	default construction.

2004-02-22  Graydon Hoare  <graydon@pobox.com>

	* patch_set.cc, patch_set.hh: Parameterize yet further.
	* netsync.cc: Fix a lot of bugs, add manifest and file grovelling.
	* tests/t_netsync.at: A new test (which runs!)
	* testsuite.at: Call it.

2004-02-20  Graydon Hoare  <graydon@pobox.com>

	* cert.cc, cert.hh, key.cc, key.hh, database.cc, database.hh:
	Add lots of little netsync support routines.
	* commands.cc (rebuild): Rehash everything too.
	* constants.cc (netcmd_minsz): Recalculate.
	* cryptopp/osrng.cpp (NonblockingRng::GenerateBlock): Handle
	/dev/urandom a bit better.
	* netcmd.cc, netcmd.hh: Remove describe cmds, add nonexistant cmd.
	* netio.hh: Add uleb128 stuff.
	* xdelta.cc: Add randomizing unit test suite.
	* diff_patch.cc: Remove commented-out dead line-merger code.
	* merkle_tree.cc: Fix various bugs.
	* netcmd.cc: Switch everything over to uleb128s.
	* netsync.cc: Implement lots of missing stuff.

2004-02-09  Graydon Hoare  <graydon@pobox.com>

	* netsync.cc (ROOT_PREFIX): New variable.
	* commands.cc (merkle): New command.

2004-02-09  Ben Elliston  <bje@wasabisystems.com>

	* monotone.texi: Spelling corrections.

2004-02-09  Graydon Hoare  <graydon@pobox.com>

	* database.cc, database.hh
	(get_version_size)
	(get_file_version_size)
	(get_manifest_version_size): New functions.
	* xdelta.cc, xdelta.hh (measure_delta_target_size): New function.
	* merkle_tree.cc, merkle_tree.hh, netcmd.cc, netcmd.hh:
	Cleanup and typesafety.
	* netsync.cc: Cleanup, typesafety, implement refine phase.

2004-02-01  Graydon Hoare  <graydon@pobox.com>

	* netsync.cc: Remove a lot of stuff, implement auth phase.
	* constants.cc, constants.hh: Move constants from netsync.cc.
	* netcmd.cc, netcmd.hh: Split out of netsync.cc.
	* merkle_tree.cc, merkle_tree.hh: Likewise.
	* numeric_vocab.hh: New header.
	* adler32.hh: include numeric_vocab.hh.
	* netio.hh: Likewise.
	* unit_tests.cc, unit_tests.hh: Update.
	* Makefile.am: Likewise.
	* commands.cc: Guess signing key for auth phase.
	* database.cc, database.hh (public_key_exists)
	(get_pubkey): New functions based on key hashes.

2004-01-31  Graydon Hoare  <graydon@pobox.com>

	* Netxx/*: New files.
	* AUTHORS: Mention Netxx.
	* Makefile.am: Mention Netxx and netsync.{cc,hh}
	* adler32.hh: Delegate typedefs to boost.
	* cert.hh, cert.cc (cert_hash_code): New function.
	* commands.cc (find_oldest_ancestors): Block cycles.
	(netsync): New command.
	* database.cc, database.hh (schema): Update.
	(put_key): Calculate key hash on the fly.
	(put_cert): Likewise.
	(merkle_node_exists)
	(get_merkle_node)
	(put_merkle_node)
	(erase_merkle_nodes): New functions.
	* keys.hh, keys.cc (key_hash_code): New function.
	* lua.cc, lua.hh
	(hook_get_netsync_read_permitted)
	(hook_get_netsync_write_permitted): New hooks.
	* monotone.spec: Update for FC1 info conventions.
	* monotone.texi (Quality Assurance): New section.
	* netsync.cc, netsync.hh: New files, preliminary
	netsync infrastructure. Command bodies still missing.
	* schema.sql: Add intrinsic key and cert hashes, merkle nodes.
	* schema_migration.cc: Add code to migrate to new schema.
	* unit_tests.cc: Handle command-line args to limit test set.
	* vocab_terms.hh: Add merkle and prefix as new terms.

2004-01-13  Nathaniel Smith  <njs@codesourcery.com>

	* idna/idn-int.h: Remove (generated by configure).

2004-01-13  Nathaniel Smith  <njs@codesourcery.com>

	* configure.ac: Switch "if" and "else" branches in pthreads
	checks.

2004-01-12  Nathaniel Smith  <njs@codesourcery.com>

	* configure.ac: Remove check for -lpthread.
	Add check for pthread_mutex_lock and ACX_PTHREAD.
	* m4/acx_pthread.m4: New file.

2004-01-07  Graydon Hoare  <graydon@pobox.com>

	* Makefile.am:
	* po/POTFILES.in:
	* po/monotone.pot: Minor tweaks for distclean.
	* adns/config.h:
	* boost/socket/src/interface.cpp:
	* boost/socket/src/ip4/address.cpp:
	* boost/socket/src/ip4/protocol.cpp: OSX portability.
	* AUTHORS: Mention new contributors.
	* monotone.texi (Hook Reference): Document i18n hooks.

	Release point (v 0.9).

2004-01-07  Graydon Hoare  <graydon@pobox.com>

	* cert.cc (ensure_parents_loaded)
	(expand_dominators)
	(expand_ancestors)
	(find_intersecting_node): New functions.
	(find_common_ancestor): Reimplement in terms of dominator
	and ancestor bitset intersection.

2004-01-05  Christof Petig <christof@petig-baender.de>

	* vocab.cc (verify<local_path>) Fix use of val() / iterator.
	* constants.cc (illegal_path_bytes): NUL-terminate.

2004-01-02  Graydon Hoare  <graydon@pobox.com>

	* diff_patch.cc (normalize_extents): Improve to handle an odd case.
	* tests/t_fmerge.at: New test, to test it.
	* commands.cc (fload, fmerge): Permanently enable, for test.
	* testsuite.at: Call new test.

2004-01-01  Graydon Hoare  <graydon@pobox.com>

	* file_io.hh, file_io.cc (read_localized_data, write_localized_data):
	New functions
	* commands.cc, manifest.cc, transforms.cc: Use them.
	* monotone.texi: Minor update to i18n docs.
	* lua.hh, lua.cc (hook_get_linesep_conv, hook_get_charset_conv):
	New hooks.
	* acinclude.m4: Move AX_CREATE_STDINT_H in here.
	* po/monotone.pot: Regenerate.
	* NEWS, configure.ac: Prep for 0.9 release.

2003-12-30  Graydon Hoare  <graydon@pobox.com>

	* file_io.hh, file_io.cc (mkpath): New function.
	* commands.cc, database.cc, diff_patch.cc, file_io.cc,
	lua.cc, vocab.cc, work.cc: Use it.
	* constants.cc (illegal_path_bytes_arr): Remove leading null.
	* monotone.texi: Include i18n docs.
	* tests/t_i18n_file.at: Check colon in filename.

2003-12-29  Graydon Hoare  <graydon@pobox.com>

	* file_io.cc: Localize names before touching fs.
	* lua.hh, lua.cc (hook_get_system_charset): Remove useless fn.
	* test_hooks.lua: Likewise.
	* monotone.cc, transforms.cc, transforms.hh:
	Remove lua from system charset conv.
	* tests/t_i18n_file.at: New test.
	* testsuite.at: Call it.

2003-12-28  Graydon Hoare  <graydon@pobox.com>

	* app_state.cc, app_state.hh: Massage to use i18n vocab.
	* cert.cc, commands.cc, commands.hh, rcs_import.cc,
	update.cc, update.hh, url.cc, url.hh: Likewise.

	* work.cc, work.hh: --> Likewise, and break file format! <--

	* constants.hh, constants.cc (legal_ace_bytes): New constant.
	* vocab.cc (verify<ace>): Use it.
	(verify<urlenc>) New function.
	* vocab_terms.hh (ace, urlenc, utf8): New terms.
	* transforms.hh, transforms.cc: Use them.
	* monotone.cc (utf8_argv): Charconv argv.
	* network.hh, network.cc: Use url.{hh,cc}.

2003-12-28  Graydon Hoare  <graydon@pobox.com>

	* constants.hh, constants.cc (idlen): New constant.
	* commands.cc, vocab.cc: Use it.
	* manifest.cc (read_manifest_map): Tighten up regex.
	* packet.cc: Likewise.
	* transforms.cc (uppercase)
	(lowercase): Rewrite.
	(utf8_to_urlenc)
	(urlenc_to_utf8)
	(internalize_url)
	(internalize_cert_name)
	(internalize_rsa_keypair_id)
	(externalize_url)
	(externalize_cert_name)
	(externalize_rsa_keypair_id): New functions.
	* url.hh, url.cc (parse_utf8_url): New function.

2003-12-20  Graydon Hoare  <graydon@pobox.com>

	* diff_patch.cc (normalize_extents): New function.
	(merge_via_edit_scripts): Use it.

2003-12-19  Graydon Hoare  <graydon@pobox.com>

	[net.venge.monotone.i18n branch]

	* idna/*.[ch]: New files.
	* po/*: New files.
	* url.cc, url.hh, constants.cc: New files.
	* Makefile.am, configure.ac: Various fiddling for gettext.
	* lua.hh, lua.cc (hook_get_system_charset): New hook.
	(hook_get_system_linesep): New hook.
	* transforms.hh, transforms.cc
	(charset_convert)
	(system_to_utf8)
	(utf8_to_system)
	(ace_to_utf8)
	(utf8_to_ace)
	(line_end_convert): New functions.
	* vocab.cc: Refine constraints.
	* vocab_terms.hh (external): New atomic type.
	* monotone.cc (cpp_main): Initialize gettext.
	* sanity.hh (F): Call gettext() on format strings.
	* commands.cc, depot.cc, database.cc, http_tasks.cc, keys.cc,
	network.cc, rcs_import.cc, sanity.cc, mac.hh : Update to use
	'constants::' namespace.
	* config.h.in: Remove.
	* commands.cc: Various formatting cleanups.
	* unit_tests.cc, unit_tests.hh: Connect to url tests.

2003-12-19  Graydon Hoare  <graydon@pobox.com>

	* diff_patch.cc (merge3): Skip patches to deleted files.

2003-12-16  Graydon Hoare  <graydon@pobox.com>

	* commands.cc (ls_ignored, ignored_itemizer): Fold in as subcases of unknown.

2003-12-16  Graydon Hoare  <graydon@pobox.com>

	* lua.cc (working_copy_rcfilename): MT/monotonerc not MT/.monotonerc.

2003-12-16  Graydon Hoare  <graydon@pobox.com>

	* lua.hh, lua.cc (working_copy_rcfilename): New function.
	* monotone.cc: Add working copy rcfiles.
	* commands.cc (ls_unknown, unknown_itemizer): Skip ignored files.

2003-12-16  Graydon Hoare  <graydon@pobox.com>

	* file_io.cc (walk_tree_recursive): continue on book-keeping file.

2003-12-15  Graydon Hoare  <graydon@pobox.com>

	* tests/t_unidiff.at, t_unidiff2.at: Check for mimencode.

2003-12-15  Graydon Hoare  <graydon@pobox.com>

	* configure.ac: Add --enable-static-boost.
	* Makefile.am: Likewise.
	* AUTHORS: Mention new contributors.

2003-12-14  Lorenzo Campedelli <lorenzo.campedelli@libero.it>

	* work.cc (add_to_attr_map): Finish change to attr map format.

2003-12-10  Tom Tromey  <tromey@redhat.com>

	* commands.cc (checkout): Give better error message if branch is
	empty.

2003-12-07  Eric Kidd  <eric.kidd@pobox.com>

	* commands.cc (agraph): Handle repositories with a single version.
	* database.cc (get_head_candidates): Handle heads with no ancestors.
	* cert.cc (get_branch_heads): Handle heads with no ancestors.

2003-12-06  Eric Kidd  <eric.kidd@pobox.com>

	* update.hh, update.cc (pick_update_target): Return current
	version if no better update candidates available.
	* update.cc (pick_update_target): Always do branch filtering.
	* commands.cc (update): Notice when we're already up-to-date.
	* commands.cc (propagate): Assign branch name correctly when merging.

2003-12-05  Graydon Hoare  <graydon@pobox.com>

	* lcs.hh (edit_script): New entry point.
	* diff_patch.cc: Rewrite merge in terms of edit scripts.
	* network.cc (post_queued_blobs_to_network): Tidy up transient
	failure message.
	* randomfile.hh: Prohibit deletes on end of chunks.
	* sanity.cc: EOL-terminate truncated long lines.

2003-12-02  Graydon Hoare  <graydon@pobox.com>

	* database.cc, database.hh (reverse_queue): Copy constructor.
	* std_hooks.lua (merge3): Remove afile, not ancestor.
	* monotone.cc: Remove debugging message.
	* ui.cc (finish_ticking): Set last_write_was_a_tick to false.

2003-12-01  Graydon Hoare  <graydon@pobox.com>

	* app_state.hh, app_state.cc (set_signing_key): New fn, persist key.
	* monotone.cc (cpp_main): Permit commuting the --help argument around.

2003-11-30  Graydon Hoare  <graydon@pobox.com>

	* network.cc (post_queued_blobs_to_network): Fail when posted_ok is false.
	* database.cc (initialize): Fail when -journal file exists.
	* keys.cc (make_signature): Nicer message when privkey decrypt fails.

2003-11-29  Tom Tromey  <tromey@redhat.com>

	* rcs_import.cc (store_auxiliary_certs): Renamed to fix typo.
	Updated all callers.

	* http_tasks.cc (check_received_bytes): Allow "-" as well.
	* depot.cc (execute_post_query): Allow "-" as well.

2003-11-28  Tom Tromey  <tromey@redhat.com>

	* http_tasks.cc (check_received_bytes): Allow "-" as well.
	* depot.cc (execute_post_query): Allow "-" as well.

2003-11-28  Graydon Hoare  <graydon@pobox.com>

	* cert.cc: Various speedups.
	* cycle_detector.hh (edge_makes_cycle): Use visited set, too.
	* database.hh, database.cc (get_head_candidates): New, complex query.
	* keys.hh, keys.cc (check_signature): Cache verifiers.
	* sqlite/os.c (sqliteOsRandomSeed): Harmless valgrind purification.
	* tests/t_fork.at, tests/t_merge.at: Ignore stderr chatter on 'heads'.

2003-11-27  Graydon Hoare  <graydon@pobox.com>

	* Makefile.am (AM_LDFLAGS): No more -static, sigh.
	* cert.cc (find_relevant_edges): Keep dynamic-programming caches.
	(calculate_renames_recursive): Likewise.
	* cert.cc, cert.hh (rename_edge): Add constructor, copy constructor.
	* commands.cc (list certs): Note rename certs are binary.

2003-11-24  Graydon Hoare  <graydon@pobox.com>

	* network.cc: Continue fetch, post loops even if one target has
	an exception.

2003-11-24  Graydon Hoare  <graydon@pobox.com>

	* database.hh, database.cc (delete_posting): Change to take queue
	sequence numbers.
	* commands.cc (queue): Use new API.
	* network.cc (post_queued_blobs_to_network): Use new API.

2003-11-24  Graydon Hoare  <graydon@pobox.com>

	* std_hooks.lua (get_http_proxy): Return nil when no ENV var.
	* monotone.texi (get_http_proxY): Document change.

2003-11-24  Graydon Hoare  <graydon@pobox.com>

	* tests/t_proxy.at: Add a test for proxying with tinyproxy.
	* testsuite.at: Call it.
	* lua.cc: Fix dumb error breaking proxying.
	* network.cc: Be verbose about proxying.

2003-11-23  Graydon Hoare  <graydon@pobox.com>

	* http_tasks.cc (read_chunk): Tolerate 0x20* after chunk len.

2003-11-23  Graydon Hoare  <graydon@pobox.com>

	* network.cc: Make more informative error policy.
	* boost/socket/socketstream.hpp: Pass SocketType to streambuf template.
	* boost/socket/src/default_socket_impl.cpp: Translate EINTR.

2003-11-22  Graydon Hoare  <graydon@pobox.com>

	* lua.cc, lua.hh (hook_get_http_proxy): New hook.
	* std_hooks.lua (get_http_proxy): Default uses HTTP_PROXY.
	(get_connect_addr): Undefine, it's for tunnels alone now.
	* network.cc: Use new hook.
	* http_tasks.hh, http_tasks.cc: Teach about proxies (sigh).
	* monotone.texi: Document new hooks.

2003-11-22  Graydon Hoare  <graydon@pobox.com>

	* lua.cc, lua.hh (hook_get_connect_addr): New hook.
	* std_hooks.lua (get_connect_addr): Default uses HTTP_PROXY.
	* network.cc, network.hh: Use new hook.
	* http_tasks.cc: Teach about HTTP/1.1.
	* cert.cc (bogus_cert_p): Fix UI ugly.

2003-11-21  Graydon Hoare  <graydon@pobox.com>

	* constants.hh (postsz): New constant for suggested post size.
	* database.cc, database.hh (queue*): Change db API slightly.
	* commands.cc (queue): Adjust to changed db API.
	* network.cc (post_queued_blobs_to_network): Switch to doing
	incremental posts.
	* cert.cc (write_rename_edge, read_rename_edge): Put files on
	separate lines to accomodate future i18n work.
	* work.cc (add_to_attr_map, write_attr_map): Reorder fields to
	accomodate future i18n work.
	* monotone.texi: Document it.
	* configure.ac, NEWS: Mention 0.8 release.

	Release point (v 0.8).

2003-11-16  Tom Tromey  <tromey@redhat.com>

	* missing: Removed generated file.

2003-11-14  Graydon Hoare  <graydon@pobox.com>

	* commands.cc (vcheck): Add.
	* cert.cc, cert.hh (cert_manifest_vcheck): Add.
	(check_manifest_vcheck): Add.
	(calculate_vcheck_mac): Add.
	* constants.hh (vchecklen): New constant.
	* mac.hh: Re-add.
	* monotone.texi (Hash Integrity): New section.
	* monotone.1: Document vcheck.

2003-11-14  Graydon Hoare  <graydon@pobox.com>

	* database.cc, database.hh (reverse_queue): New class.
	(compute_older_version): New functions.
	(get_manifest_delta): Remove.
	* network.cc, network.hh (queue_blob_for_network): Remove.
	* packet.cc, packet.hh (queueing_packet_writer): Change UI,
	write to queue directly, accept optional<reverse_queue>.
	* cert.cc (write_paths_recursive): Rewrite to use constant
	memory.
	* commands.cc (queue, queue_edge_for_target_ancestor):
	Install optional<reverse_queue> in qpw.
	* tests/t_cross.at: Ignore new UI chatter.
	* monotone.texi (Transmitting Changes): Change UI output.

2003-11-13  Graydon Hoare  <graydon@pobox.com>

	* Makefile.am (AUTOMAKE_OPTIONS): Require 1.7.1
	* commands.cc (addtree): Wrap in transaction guard.
	* database.cc, database.hh (manifest_delta_exists): Add.
	(get_manifest_delta): Add.
	* cert.cc (write_paths_recursive): Use partial deltas.
	* manifest.cc, manifest.hh (read_manifest_map): New variant.
	* patch_set.cc, patch_set.hh (patch_set): Add map_new, map_old
	fields.
	(manifests_to_patch_set) Store new field.
	(patch_set_to_packets) Don't read manifest versions from db.
	* std_hooks.lua (ignore_file): ignore .a, .so, .lo, .la, ~ files.
	* tests/t_cvsimport.at: New test.
	* testsuite.at: Call it.

2003-11-10  Graydon Hoare  <graydon@pobox.com>

	* commands.cc (find_oldest_ancestors): New function.
	(queue): New "addtree" subcommand.
	* monotone.texi: Document it.
	* monotone.1: Document it.

2003-11-10  Graydon Hoare  <graydon@pobox.com>

	* file_io.cc (walk_tree_recursive): Ignore MT/

2003-11-09  Graydon Hoare  <graydon@pobox.com>

	* database.cc (dump, load): Implement.
	* commands.cc (db): Call db.dump, load.
	* cycle_detector.hh: Skip when no in-edge on src.
	* monotone.texi: Document dump and load, add some
	special sections.
	* monotone.1: Mention dump and load.

2003-11-09  Graydon Hoare  <graydon@pobox.com>

	* rcs_file.hh (rcs_symbol): New structure.
	* rcs_file.cc (symbol): New rule.
	* rcs_import.cc (find_branch_for_version): New function.
	(cvs_key::branch): New field.
	(store_auxilliary_certs): Cert branch tag.
	* cycle_detector.hh: Fix bugs, don't use quick_alloc.
	* commands.cc (checkout): Add --branch based version.
	* monotone.texi: Document new command variant.
	* monotone.1: Ditto.

2003-11-09  Graydon Hoare  <graydon@pobox.com>

	* quick_alloc.hh: New file.
	* Makefile.am: Add it.
	* cycle_detector.hh: Rewrite.
	* manifest.hh: Use quick_alloc.
	* vocab.cc: Relax path name requirements a bit.
	* sqlite/sqliteInt.h: Up size of row to 16mb.

2003-11-02  Graydon Hoare  <graydon@pobox.com>

	* commands.cc (post): Post everything if no URL given; don't base
	decision off branch name presence.
	* app_state.cc, monotone.cc, file_io.cc, file_io.hh: Support
	absolutifying args.
	* lua.hh, lua.cc, std_hooks.lua (hook_get_mail_hostname): New hook.
	* monotone.texi: Document it.
	* monotone.texi, monotone.1: Minor corrections, new sections.
	* monotone.cc: Don't look in $ENV at all.
	* network.cc: Correct MX logic.
	* nntp_tasks.cc, smtp_tasks.cc: Separate postlines state.
	* smtp_tasks.cc: Correct some SMTP logic.
	* configure.ac, NEWS: Mention 0.7 release.

	Release point (v 0.7).

2003-11-01  Graydon Hoare  <graydon@pobox.com>

	* http_tasks.cc: Drop extra leading slashes in HTTP messages.

2003-10-31  Graydon Hoare  <graydon@pobox.com>

	* commands.cc, database.cc, database.hh, lua.cc, lua.hh,
	network.cc, network.hh, packet.cc, packet.hh, schema.sql,
	schema_migration.cc, tests/t_http.at, tests/t_nntp.at, vocab.cc:
	Eliminate "groupname", use lone URL.
	* monotone.texi: Update to cover new URL rules.
	* network.cc, network.hh, lua.cc, lua.hh, smtp_tasks.cc:
	Implement "mailto" URLs.
	* tests/t_smtp.at: New test.
	* testsuite.at: Call it.

2003-10-31  Graydon Hoare  <graydon@pobox.com>

	* patch_set.cc (manifests_to_patch_set): Second form with explicit renames.
	(manifests_to_patch_set): Split edit+rename events when we see them.
	* commands.cc (status, commit): Include explicit rename set.
	* diff_patch.cc (merge3): Accept edit+rename events split by patch_set.cc.
	* smtp_tasks.hh, smtp_tasks.cc: New files.
	* nntp_machine.hh, nntp_machine.cc: Rename to proto_machine.{hh,cc} (woo!)
	* nntp_tasks.cc: Adjust to use proto_ prefix in various places.
	* proto_machine.cc (read_line): get() into streambuf.
	* Makefile.am: Cover renames and adds.

2003-10-31  Graydon Hoare  <graydon@pobox.com>

	* diff_patch.cc (merge3): Extract renames.
	* commands.cc (calculate_new_manifest_map): Extract renames.
	(try_one_merge): Extract renames, propagate to merge target.
	(commit): Extract renames, propagate to commit target.
	* cert.cc (calculate_renames_recursive): Fix wrong logic.
	(find_common_ancestor_recursive): Stall advances at top of graph.
	* patch_set.cc: (manifests_to_patch_set): Teach about historical
	renames.
	* tests/t_erename.at: New test for edit+rename events.
	* testsuite.at: Call t_erename.at.

2003-10-30  Graydon Hoare  <graydon@pobox.com>

	* patch_set.cc (operator<): s/a/b/ in a few places, yikes!
	* cert.cc: Add machinery for rename edge certs.
	* commands.cc: Call diff(manifest,manifest) directly.
	* tests/t_nntp.at: Kill tcpserver DNS lookups on nntp test.
	* network.cc (parse_url): Character class typo fix, from
	Johannes Winkelmann.
	* app_state.hh, cert.hh, commands.hh, cycle_detector.hh,
	database.hh, diff_patch.cc, diff_patch.hh, http_tasks.hh,
	interner.hh, keys.hh, lua.hh, manifest.hh, network.hh,
	nntp_machine.hh, nntp_tasks.hh, packet.hh, patch_set.hh,
	transforms.hh, update.hh, vocab.hh, work.hh, xdelta.hh:
	fix use of std:: prefix / "using namespace" pollution.

2003-10-27  Graydon Hoare  <graydon@pobox.com>

	* lua/liolib.c (io_mkstemp): Portability fix
	from Ian Main.
	* xdelta.cc,hh (compute_delta): New manifest-specific variant.
	* transforms.cc,hh (diff): Same.
	* rcs_import.cc: Various speedups to cvs import.

2003-10-26  Graydon Hoare  <graydon@pobox.com>

	* cert.cc (get_parents): New function.
	(write_paths_recursive): New function.
	(write_ancestry_paths): New function.
	* cert.hh (write_ancestry_paths): Declare.
	* commands.cc (queue_edge_for_target_ancestor):
	Call write_ancestry_paths for "reposting" queue
	strategy.

2003-10-25  Graydon Hoare  <graydon@pobox.com>

	* commands.cc (log): Skip looking inside nonexistent
	manifests for file comments.

2003-10-24  Graydon Hoare  <graydon@pobox.com>

	* adns/*.c, adns/*.h: Import adns library.
	* Makefile.am: Update to build adns into lib3rdparty.a.
	* AUTHORS: Mention adns.
	* network.cc: Call adns functions, not gethostbyname.

2003-10-20  Nathaniel Smith  <njs@codesourcery.com>

	* patch_set.cc (patch_set_to_text_summary): Give more detailed
	output.
	* commands.cc (get_log_message, status, diff): Use
	patch_set_to_text_summary for complete description.

2003-10-22  Graydon Hoare  <graydon@pobox.com>

	* monotone.texi: Document 'queue' command.
	* monotone.1: Likewise.

2003-10-22  Graydon Hoare  <graydon@pobox.com>

	* diff_patch.cc
	(infer_directory_moves): New function.
	(rebuild_under_directory_moves): New function.
	(apply_directory_moves): New function.
	(merge3): Handle directory moves.
	* tests/t_renamed.at: New test for dir renames.
	* testsuite.at: Call it.

2003-10-21  Graydon Hoare  <graydon@pobox.com>

	* commands.cc (queue): New command.
	(list): Add "queue" subcommand, too.

2003-10-21  Graydon Hoare  <graydon@pobox.com>

	* diff_patch.cc (merge_deltas): New function.
	(check_map_inclusion): New function.
	(check_no_intersect): New function.
	(merge3): Rewrite completely.
	* tests/t_rename.at: New test.
	* testsuite.at: Call it.
	* file_io.cc, file_io.hh (make_dir_for): New function.
	* commands.cc (update): Call make_dir_for on update.

2003-10-20  Graydon Hoare  <graydon@pobox.com>

	* commands.cc: Replace [] with idx() everywhere.

2003-10-20  Tom Tromey  <tromey@redhat.com>

	* cert.hh (get_branch_heads): Updated.
	Include <set>.
	* commands.cc (head): Updated for new get_branch_heads.
	(merge): Likewise.
	(propagate): Likewise.
	* cert.cc (get_branch_heads): Use set<manifest_id>.

	* commands.cc (merge): Use all caps for metasyntactic variable.
	(heads): Likewise.

	* network.cc (post_queued_blobs_to_network): Do nothing if no
	packets to post.

2003-10-20  Graydon Hoare  <graydon@pobox.com>

	* cert.cc (get_branch_heads): Fix dumb bug.
	* diff_patch.cc (merge3): Fix dumb bug.
	(merge2): Fix dumb bug.
	(try_to_merge_files): Fix dumb bug.

2003-10-20  Graydon Hoare  <graydon@pobox.com>

	* file_io.cc (tilde_expand): New function.
	* monotone.cc (cpp_main): Expand tildes in
	db and rcfile arguments.

2003-10-20  Graydon Hoare  <graydon@pobox.com>

	* rcs_import.cc (import_cvs_repo): Check key existence
	at beginning of import pass, to avoid wasted work.

2003-10-19  Tom Tromey  <tromey@redhat.com>

	* commands.cc (log): Add each seen id to `cycles'.

2003-10-19  Graydon Hoare  <graydon@pobox.com>

	* AUTHORS: Mention Tecgraf PUC-Rio and their
	copyright.
	* Makefile.am: Mention circular buffer stuff.
	* configure.ac, NEWS: Mention 0.6 release.
	* cert.hh, cert.cc (erase_bogus_certs): file<cert> variant.
	* commands.cc (log): Erase bogus certs before writing,
	cache comment-less file IDs.
	* monotone.spec: Don't specify install-info args,
	do build with optimization on RHL.

	Release point (v 0.6).

2003-10-19  Matt Kraai  <kraai@ftbfs.org>

	* commands.cc (merge): Use app.branch_name instead of args[0] for
	the branch name.

2003-10-17  Graydon Hoare  <graydon@pobox.com>

	* commands.cc (log): New command.
	Various other bug fixes.
	* monotone.1, monotone.texi: Minor updates.

2003-10-17  Graydon Hoare  <graydon@pobox.com>

	* monotone.texi: Expand command and hook references.
	* commands.cc: Disable db dump / load commands for now.

2003-10-16  Graydon Hoare  <graydon@pobox.com>

	* sanity.hh: Add a const version of idx().
	* diff_patch.cc: Change to using idx() everywhere.
	* cert.cc (find_common_ancestor): Rewrite to recursive
	form, stepping over historic merges.
	* tests/t_cross.at: New test for merging merges.
	* testsuite.at: Call t_cross.at.

2003-10-10  Graydon Hoare  <graydon@pobox.com>

	* lua.hh, lua.cc (hook_apply_attribute): New hook.
	* work.hh, work.cc (apply_attributes): New function.
	* commands.cc (update_any_attrs): Update attrs when writing to
	working copy.
	* std_hooks.lua (temp_file): Use some env vars.
	(attr_functions): Make table of attr-setting functions.

2003-10-10  Graydon Hoare  <graydon@pobox.com>

	* work.cc: Fix add/drop inversion bug.
	* lua/*.{c,h}: Import lua 5.0 sources.
	* lua.cc: Rewrite lua interface completely.
	* std_hooks.lua, test_hooks.lua, testsuite,
	tests/t_persist_phrase.at, configure.ac, config.h.in, Makefile.am:
	Modify to handle presence of lua 5.0.

2003-10-08  Graydon Hoare  <graydon@pobox.com>

	* rcs_import.cc: Attach aux certs to child, not parent.
	* manifest.cc: Speed up some calculations.
	* keys.cc: Optionally cache decoded keys.

2003-10-07  Graydon Hoare  <graydon@pobox.com>

	* manifest.hh, manifest.cc, rcs_import.cc: Write manifests w/o
	compression.
	* vocab.hh, vocab.cc: Don't re-verify verified data.
	* ui.hh, ui.cc: Minor efficiency tweaks.

2003-10-07  Graydon Hoare  <graydon@pobox.com>

	* commands.cc, work.cc, work.hh: Add some preliminary stuff
	to support explicit renaming, .mt-attrs.
	* monotone.texi: Add skeletal sections for command reference,
	hook reference, CVS phrasebook. Fill in some parts.

2003-10-02  Graydon Hoare  <graydon@pobox.com>

	* boost/circular_buffer*.hpp: Add.
	* AUTHORS, cert.cc, commands.cc, database.cc,
	diff_patch.cc, http_tasks.cc, keys.cc, lua.cc, manifest.cc,
	network.cc, nntp_machine.cc, packet.cc, patch_set.cc,
	rcs_import.cc, sanity.cc, sanity.hh, ui.hh, update.cc,
	vocab_terms.hh, work.cc:
	remove existing circular buffer code, replace all
	logging and asserty stuff with boost::format objects
	rather than vsnprintf.

2003-10-01  Graydon Hoare  <graydon@pobox.com>

	* testsuite.at: Don't use getenv("HOSTNAME").
	* database.cc (exec, fetch): Do va_end/va_start again in between
	logging and executing query.

2003-09-28  Tom Tromey  <tromey@redhat.com>

	* monotone.texi: Added @direntry.

2003-09-27  Nathaniel Smith  <njs@pobox.com>

	* monotone.cc: Remove "monotone.db" default to --db
	option in help text.

2003-09-27  Graydon Hoare  <graydon@pobox.com>

	* diff_patch.cc: Rework conflict detection.
	* rcs_import.cc: Remove some pointless slowness.
	* monotone.spec: Install info files properly.

	Release point (v 0.5).

2003-09-27  Graydon Hoare  <graydon@pobox.com>

	* AUTHORS, NEWS, configure.ac: Update for 0.5 release.
	* monotone.texi: Various updates.
	* xdelta.cc (compute_delta): Fix handling of empty data.
	* database.cc (sql): Require --db for init.
	* work.cc (read_options_map): Fix options regex.

2003-09-27  Graydon Hoare  <graydon@pobox.com>

	* lcs.hh: New jaffer LCS algorithm.
	* interner.hh, rcs_import.cc: Templatize interner.
	* diff_patch.hh: Use interner, new LCS.

2003-09-27  Tom Tromey  <tromey@redhat.com>

	* commands.cc (fetch): Always try lua hook; then default to all
	known URLs.

2003-09-26  Tom Tromey  <tromey@redhat.com>

	* commands.cc (tag): Use all-caps for meta-syntactic variables.
	(comment, add, cat, complete, mdelta, fdata): Likewise.

	* monotone.1: There's no default database.
	* monotone.texi (OPTIONS): There's no default database.

	* database.cc (sql): Throw informative error if database name not
	set.
	* app_state.cc (app_state): Default to no database.

2003-09-26  Graydon Hoare  <graydon@pobox.com>

	* debian/*, monotone.spec: Add packaging control files.

2003-09-24  Graydon Hoare  <graydon@pobox.com>

	* database.cc, database.hh (debug): New function.
	* commands.cc (debug): New command.
	* cert.cc, cert.hh (guess_branch): New function.
	* commands.cc (cert): Queue certs to network servers.
	* commands.cc (cert, commit): Use guess_branch.
	* commands.cc (list): List unknown, ignored files.
	* monotone.texi, monotone.1: Document.

2003-09-24  Graydon Hoare  <graydon@pobox.com>

	* commands.cc (queue_edge_for_target_ancestor): Queue the
	correct ancestry cert, from child to target, as well as
	patch_set.

2003-09-22  Graydon Hoare  <graydon@pobox.com>

	* depot_schema.sql, schema_migration.cc,
	schema_migration.hh: Add.
	* database.cc, depot.cc: Implement schema migration.
	* database.cc, commands.cc: Change to db ... cmd.
	* monotone.texi, monotone.1: Document command change.
	* depot.cc: Fix various query bugs.

2003-09-21  Nathaniel Smith  <njs@codesourcery.com>

	* depot.cc (depot_schema): Remove unique constraint on (contents),
	replace with unique constraint on (groupname, contents).

2003-09-21  Nathaniel Smith  <njs@codesourcery.com>

	* commands.cc (diff): Take manifest ids as arguments.  Add
	explanatory text on files added, removed, modified.

2003-09-19  Tom Tromey  <tromey@redhat.com>

	* commands.cc (genkey): Use all-caps for meta-syntactic variable.
	(cert, tag, approve, disapprove, comment, add, drop, commit,
	update, revert, cat, checkout, co, propagate, complete, list, ls,
	mdelta, fdelta, mdata, fdata, mcerts, fcerts, pubkey, privkey,
	fetch, post, rcs_import, rcs): Likewise.
	(explain_usage): Indent explanatory text past the command names.

2003-09-17  Tom Tromey  <tromey@redhat.com>

	* commands.cc (list): Don't compute or use "subname".

	* commands.cc (revert): Handle case where argument is a
	directory.
	* tests/t_revert.at: Test for revert of directory.

	* testsuite.at (MONOTONE_SETUP): Use "monotone initdb".
	* monotone.1: Document "initdb".
	* monotone.texi (Commands): Document initdb.
	(Creating a Database): New node.
	(Getting Started): Refer to it.
	* commands.cc (initdb): New command.
	* database.cc (database::sql): New argument `init'.
	(database::initialize): New method.
	* database.hh (database::initalize): Declare.
	(database::sql): New argument `init'.

2003-09-17  Tom Tromey  <tromey@redhat.com>

	* tests/t_persist_phrase.at: Use "ls certs".
	* tests/t_nntp.at: Use "ls certs".
	* tests/t_genkey.at: Use "ls keys" and "ls certs".

2003-09-16  Tom Tromey  <tromey@redhat.com>

	* monotone.1: Document "list branches".
	* commands.cc (ls_certs): New function, from `lscerts' command.
	(ls_keys): New function, from `lskeys' command.
	(ls_branches): New function.
	(list): New command.
	(ls): New alias.
	(explain_usage): Split parameter info at \n.
	* monotone.texi (Adding Files): Use "list certs".
	(Committing Changes): Likewise.
	(Forking and Merging): Likewise.
	(Commands): Likewise.
	(Generating Keys): Use "list keys".
	(Commands): Likewise.
	(Commands): Mention "list branches".
	(Branches): Likewise.

2003-09-15  Graydon Hoare  <graydon@redhat.com>

	* http_tasks.cc: Fix networking to handle long input.

	* ui.cc, ui.hh: Only pad with blanks enough to cover old output
	when ticking.

	* update.cc, cert.cc, commands.cc: Fix cert fetching functions to
	remove bogus certs.

2003-09-15  Tom Tromey  <tromey@redhat.com>

	* monotone.1: Don't mention MT_KEY or MT_BRANCH.

	* monotone.texi (Getting Started): Don't mention MT_DB or
	MT_BRANCH.
	(Adding Files): Explicitly use --db and --branch.
	* app_state.hh (app_state): New fields options, options_changed.
	Declare new methods.  Include work.hh.
	* work.cc (work_file_name): New constant.
	(add_to_options_map): New structure.
	(get_options_path): New function.
	(read_options_map, write_options_map): Likewise.
	* work.hh (options_map): New type.
	(get_options_path, read_options_map, write_options_map): Declare.
	* commands.cc (add, drop, commit, update, revert, checkout,
	merge): Write options file.
	* app_state.cc (database_option, branch_option): New constants.
	(app_state::app_state): Read options file.
	(app_state::set_database): New method.
	(app_state::set_branch): Likewise.
	(app_state::write_options): Likewise.
	Include work.hh.
	* monotone.cc (cpp_main): Don't set initial database name on
	app.  Use new settor methods.  Don't look at MT_BRANCH or MT_DB.

2003-09-14  Graydon Hoare  <graydon@pobox.com>

	* vocab.cc, vocab.hh: Add streamers for vocab terms in preparation
	for switch to formatter.

	* cert.cc (check_signature): Treat missing key as failed check.
	* commands.cc (lscerts): Warn when keys are missing.

	* rcs_import.cc, nntp_tasks.cc, http_tasks.cc: Tick progress.

	* sanity.cc, monotone.cc: Tidy up output a bit.

	* xdelta.cc: Add code to handle empty files. Maybe correct?

	* ui.cc, ui.hh: Add.

2003-09-13  Tom Tromey  <tromey@redhat.com>

	* tests/t_nntp.at: If we can't find tcpserver or snntpd, skip the
	test.
	* tests/t_http.at: If we can't find boa or depot.cgi, skip the
	test.

2003-09-12  Graydon Hoare  <graydon@pobox.com>

	* update.cc (pick_update_target): Only insert base rev as update
	candidate if it actually exists in db.

	* commands.cc, database.cc, database.hh: Implement id completion
	command, and general id completion in all other commands.

2003-09-12  Tom Tromey  <tromey@redhat.com>

	* commands.cc (revert): A deleted file always appears in the
	manifest.
	* tests/t_revert.at: Check reverting a change plus a delete; also
	test reverting by file name.

	* work.cc (deletion_builder::visit_file): Check for file in
	working add set before looking in manifest.
	* tests/t_drop.at: Added add-then-drop test.

	* testsuite.at: Include t_drop.at.
	* tests/t_drop.at: New test.
	* work.cc (visit_file): Check for file in working delete set
	before looking in manifest.

2003-09-12  Tom Tromey  <tromey@redhat.com>

	* Makefile.am ($(srcdir)/testsuite): tests/atconfig and
	tests/atlocal are not in srcdir.

	* Makefile.am (TESTS): unit_tests is not in srcdir.

2003-09-11  Graydon Hoare  <graydon@pobox.com>

	* commands.cc: Check for MT directory in status.
	* commands.cc: Require directory for checkout.
	* commands.cc: Delete MT/work file after checkout.
	* commands.cc: Implement 'revert', following tromey's lead.
	* commands.cc: Print base, working manifest ids in status.

	* diff_patch.cc: Further merge corrections.
	* diff_patch.cc (unidiff): Compensate for occasional miscalculation
	of LCS.

	* tests/t_merge.at: Check that heads works after a merge.
	* tests/t_fork.at:  Check that heads works after a fork.
	* tests/t_genkey.at: Remove use of 'import'.
	* tests/t_cwork.at: Check deletion of work file on checkout.
	* tests/t_revert.at: Check that revert works.

	* commands.cc, monotone.cc: Report unknown commands nicely.

2003-09-08  Graydon Hoare  <graydon@pobox.com>

	* tests/merge.at: Accept tromey's non-error case for update.

	* commands.cc(try_one_merge): Write merged version to packet
	writer, not directly to db.
	(merge): Write branch, changelog cert on merged version to db.

	* std_hooks.lua(merge3): Open result in mode "r", not "w+".

2003-09-06  Tom Tromey  <tromey@redhat.com>

	* update.cc (pick_update_target): Not an error if nothing to
	update.

	* monotone.texi: Use VERSION; include version.texi.

	* monotone.1: Document "co".
	* monotone.texi (Commands): Document "co".
	* commands.cc (ALIAS): New macro.
	(co): New alias.

	* README: Updated.

	* txt2c.cc: Added missing file.

	* texinfo.tex, INSTALL, Makefile.in, aclocal.m4, compile, depcomp,
	install-sh, missing, mkinstalldirs: Removed generated files.

2003-09-04  Graydon Hoare  <graydon@pobox.com>

	* Makefile.am, depot.cc, http_tasks.cc, http_tasks.hh,
	lua.cc, lua.hh, monotone.texi, network.cc, tests/t_http.at,
	vocab_terms.hh:

	Use public key signatures to talk to depot, not mac keys.

	* commands.cc, file_io.cc, monotone.texi, monotone.1,
	tests/t_scan.at, tests/t_import.at, work.cc, work.hh:

	Remove the 'import' and 'scan' commands, in favour of generalized
	'add' which chases subdirectories.

	* configure.ac, NEWS:

	Release point (v 0.4).

2003-09-03  Graydon Hoare  <graydon@pobox.com>

	* monotone.texi: Expand notes about setting up depot.

	* update.cc: Update by ancestry. Duh.

2003-09-02  Graydon Hoare  <graydon@pobox.com>

	* boost/socket/streambuf.hpp: Bump ppos on overflow.

	* packet.cc, transforms.cc, transforms.hh: Add function for
	canonicalization of base64 encoded strings. Use on incoming cert
	packet values.

	* commands.cc: Change fetch and post to take URL/groupname params
	rather than branchname.

	* network.cc, network.hh, depot.cc, http_tasks.cc: Fix URL parser,
	improve logging, change signatures to match needs of commands.cc

	* Makefile.am: Don't install txt2c or unit_tests.

	* Makefile.am: Build depot.cgi not depot.

	* database.cc, database.hh: Add "all known sources" fetching support.

	* patch_set.cc: Sort in a path-lexicographic order for nicer summaries.

	* monotone.texi: Expand coverage of packets and networking.

	* tests/t_nntp.at, tests/t_http.at: Update to provide URL/groupname
	pairs.

2003-09-02  Tom Tromey  <tromey@redhat.com>

	* aclocal.m4, monotone.info: Removed generated files.

2003-08-31  Nathaniel Smith  <njs@codesourcery.com>

	* configure.ac: Check for lua40/lua.h, lua40/lualib.h and -llua40,
	-lliblua40.
	* config.h.in: Add LUA_H, LIBLUA_H templates, remove HAVE_LIBLUA,
	HAVE_LIBLUALIB templates.
	* lua.cc: Include config.h.  Use LUA_H, LIBLUA_H macros.

2003-08-29  Graydon Hoare  <graydon@pobox.com>

	* Makefile.am, txt2c.cc, lua.cc, database.cc:
	Use a C constant-building converter rather than objcopy.

	* cert.cc, cert.hh, packet.cc, packet.hh, diff_patch.cc,
	rcs_import.cc:
	Modify cert functions to require a packet consumer, do no implicit
	database writing.

	* commands.cc, database.cc, database.hh, schema.sql, network.cc:
	Modify packet queueing strategy to select ancestors from known
	network server content, rather than most recent edge.

2003-08-25  Graydon Hoare  <graydon@pobox.com>

	* AUTHORS, ChangeLog, Makefile.am, NEWS, configure.ac,
	tests/t_http.at: Release point (v 0.3)

2003-08-24  Graydon Hoare  <graydon@pobox.com>

	* nntp_tasks.cc: Measure success from postlines state.
	* network.cc: Print summary counts of transmissions.
	* packet.cc: Count packets into database.
	* depot.cc: Add administrative commands, fix a bunch of
	little bugs.
	* t_http.at: Testcase for depot-driven communication.
	* monotone.texi: Update to reflect depot existence.
	* http_tasks.cc: Pick bugs out.

2003-08-24  Graydon Hoare  <graydon@pobox.com>

	* commands.cc: Wash certs before output.
	* *.cc,*.hh: Adjust cert packet format to
	be more readable, avoid superfluous gzipping.

2003-08-24  Graydon Hoare  <graydon@pobox.com>

	* configure, Makefile.in: Remove generated files, oops.
	* commands.cc: Implement 'propagate'.
	* lua.cc, lua.hh, network.cc, network.hh: Remove
	'aggregate posting' stuff.
	* network.cc: Batch postings into larger articles.
	* diff_patch.hh, diff_patch.cc: Implement basic
	merge2-on-manifest.

2003-08-23  Graydon Hoare  <graydon@pobox.com>

	* monotone.cc: Handle user-defined lua hooks as
	overriding internal / .monotonerc hooks no matter
	where on cmd line they occur.
	* update.cc: Made failures more user-friendly.
	* lua.cc: Improve logging a bit.
	* testsuite.at, tests/*.{at,in}, testsuite/: Rewrite tests in
	autotest framework, move to tests/ directory.
	* boost/io/*, cryptopp/hmac.h: Add missing files.

2003-08-23  Tom Tromey  <tromey@redhat.com>

	* monotone.cc (OPT_VERSION): New macro.
	(cpp_main): Handle OPT_VERSION.
	(options): Added `version' entry.
	Include config.h.

2003-08-21  Tom Tromey  <tromey@redhat.com>

	* database.cc: Include "sqlite/sqlite.h", not <sqlite.h>.

2003-08-20  Graydon Hoare  <graydon@pobox.com>

	* boost/*:
	incorporate boost sandbox bits, for now.

	* Makefile.am, Makefile.in, configure, configure.ac, diff_patch.cc,
	http_tasks.cc, http_tasks.hh, network.cc, nntp_machine.cc,
	nntp_machine.hh, nntp_tasks.cc, nntp_tasks.hh, testsuite/t_nntp.sh:

	fix up networking layer to pass nntp tests again

2003-08-19  Graydon Hoare  <graydon@pobox.com>

	* Makefile.am, Makefile.in, app_state.hh, cert.cc, commands.cc,
	constants.hh, cryptopp/misc.h, database.cc, depot.cc,
	http_tasks.cc, http_tasks.hh, keys.cc, lua.cc, lua.hh, monotone.cc,
	network.cc, network.hh, nntp_machine.cc, nntp_machine.hh,
	nntp_tasks.cc, nntp_tasks.hh, packet.cc, packet.hh, rcs_import.cc,
	sanity.cc, sanity.hh, schema.sql, test_hooks.lua,
	testsuite/runtest.sh, testsuite/t_null.sh, vocab_terms.hh:

	major surgery time
	- move to multi-protocol posting and fetching.
	- implement nicer failure modes for sanity.
	- redo commands to print nicer, fail nicer.

2003-08-18  Graydon Hoare  <graydon@pobox.com>

	* Makefile.am, Makefile.in, adler32.hh, database.cc, depot.cc,
	mac.hh, xdelta.cc, Makefile.am, Makefile.in:

	first pass at a depot (CGI-based packet service)

2003-08-08  Graydon Hoare  <graydon@pobox.com>

	* Makefile.am, Makefile.in AUTHORS, ChangeLog, Makefile.am,
	Makefile.in, NEWS, monotone.1, monotone.info, monotone.texi:

	release point (v 0.2)

2003-08-08  Graydon Hoare  <graydon@pobox.com>

	* cert.cc, cert.hh, interner.hh, rcs_import.cc:

	auxilliary certs

	* cert.cc, cert.hh, cycle_detector.hh, interner.hh, patch_set.cc,
	rcs_import.cc:

	improvements to cycle detection stuff

2003-08-05  Graydon Hoare  <graydon@pobox.com>

	* rcs_import.cc:

	almost even more seemingly correct CVS graph reconstruction (still slow)

	* sqlite/* cryptopp/* Makefile.am, Makefile.in, aclocal.m4,
	config.h.in, configure, configure.ac, file_io.cc, keys.cc,
	sanity.cc, sanity.hh, transforms.cc:

	minimizing dependencies on 3rd party libs by importing the
	necessary bits and rewriting others.

	* cert.cc, cert.hh, rcs_import.cc:

	cvs import seems to be working, but several linear algorithms need
	replacement

2003-07-28  Graydon Hoare  <graydon@pobox.com>

	* Makefile.am, Makefile.in, cert.cc, commands.cc, database.cc,
	database.hh, manifest.cc, rcs_file.cc, rcs_import.cc,
	rcs_import.hh, vocab.cc, xdelta.cc:

	cvs graph reconstruction hobbling along.

2003-07-21  Graydon Hoare  <graydon@pobox.com>

	* database.cc, xdelta.cc, xdelta.hh:

	piecewise xdelta; improves speed a fair bit.

2003-07-11  Graydon Hoare  <graydon@pobox.com>

	* Makefile.am, Makefile.in, config.h.in, configure, configure.ac,
	transforms.cc, xdelta.cc, xdelta.hh:

	implement xdelta by hand, forget 3rd party delta libs.

2003-07-02  Graydon Hoare  <graydon@pobox.com>

	* database.cc, rcs_import.cc, transforms.cc, transforms.hh:

	speedups all around in the storage system

2003-07-01  Graydon Hoare  <graydon@pobox.com>

	* database.hh, rcs_import.cc, transforms.cc, transforms.hh: speed

	improvements to RCS import

2003-06-30  Graydon Hoare  <graydon@pobox.com>

	* rcs_import.cc, transforms.cc:

	some speed improvements to RCS import

2003-06-29  Graydon Hoare  <graydon@pobox.com>

	* commands.cc, database.hh, rcs_import.cc, transforms.cc:

	RCS file import successfully (albeit slowly) pulls in some pretty
	large (multi-hundred revision, >1MB) test cases from GCC CVS

	* Makefile.in, commands.cc, rcs_file.cc, rcs_file.hh,
	rcs_import.cc, rcs_import.hh,

	Makefile.am: preliminary support for reading and walking RCS files

2003-04-09  Graydon Hoare  <graydon@pobox.com>

	* autogen.sh: oops
	* */*: savannah import

2003-04-06  Graydon Hoare  <graydon@pobox.com>

	* initial release.

