# # # patch "INSTALL" # from [4ba6492c71bd99721aff0612f1650ad0f70338f5] # to [83edc001e560d3122afd0e58dfe34b5682c7ee57] # # patch "NEWS" # from [5bc9ffb18ca66a50a8d76f8ab99defa364312977] # to [0dee337ea44af422a00dfacf962d088d5a5cb0c0] # # patch "UPGRADE" # from [d3d8c42e486ef104458fe758de268902a00ceae2] # to [dd53acd07dfebc6c40834f89af70696a6e6656a2] # # patch "docs/Additional-Lua-Functions.html" # from [003fcf003b671e91216a3e434b7b596c7600723a] # to [285e2b1228c364b9a93ae04192664a18fe95a8e7] # # patch "docs/Automation.html" # from [d79b6712901286af8b60661a8dfe33739c13ab1e] # to [aeef8408071b1a6a89c6030e08903f40fddfe1c9] # # patch "docs/General-Index.html" # from [ae33147ed4ebffbd2190121130bbf6cf7a5df848] # to [a11b038433091e40b0854bbaa127d19b76348dc8] # # patch "docs/Hooks.html" # from [49e2c1e72d3df417b91ed33ac673a2c054078544] # to [ea0cfac9c17a82b5e6c81c581b1fca4175e8c79f] # # patch "docs/RCS.html" # from [46f560f5bdc36fb04bef303611306f87e34f99b0] # to [eb5d2079dc0b1773126a6ba6af83107711b64d00] # # patch "docs/Rebuilding-ancestry.html" # from [6424f9076b7d8ea298d9d616b003948e024624f4] # to [9da65a984054c62eca74ebb2a49b4da5108e77c8] # # patch "docs/Versions-of-files.html" # from [ef657adad28e050daad568c6a40e338c8e7c2049] # to [4f859f5d77dce0db8caa488ed73f3e2d8bc473a3] # # patch "monotone.html" # from [42926ec93201942e790fdd706b7e5af4c92a9f3f] # to [187fc9e45bca3a1388b1854fb98036c92cd2b109] # # patch "monotone.pdf" # from [c3716597bf0fbe8178e49a457e9a3e130c7c5857] # to [76db467cd3e846e2f84fca406c3285c313bd032d] # ============================================================ --- INSTALL 4ba6492c71bd99721aff0612f1650ad0f70338f5 +++ INSTALL 83edc001e560d3122afd0e58dfe34b5682c7ee57 @@ -12,23 +12,37 @@ 1. prerequisites: * software prerequisites: + - autoconf. + - automake. + - gettext. - a supported C++ compiler: g++ 3.2 or later. - - an installed copy of boost 1.32.0 or later. + - an installed copy of boost 1.33.0 or later. - zlib 1.1.4 or later. + - libiconv if the iconv() function is missing. on debian: - apt-get install libboost-filesystem-dev + apt-get install autoconf + apt-get install automake + apt-get install gettext apt-get install libboost-regex-dev - apt-get install libboost-test-dev apt-get install libboost-dev + apt-get install libz-dev apt-get install g++ on fedora: + apt-get install autoconf + apt-get install automake + apt-get install gettext apt-get install boost-devel + apt-get install libz-devel apt-get install g++ + on Windows (incomplete): + + libiconv (http://gnuwin32.sourceforge.net/packages/libiconv.htm) + on other systems: check your system package repository, you may need to @@ -153,6 +167,10 @@ 4. testing monotone confirm monotone's functionality on your system. Do not run "make check" as root (Unix)! Doing so will cause the failure of some of the tests! + Also, make sure your testing process has enough memory. Experience + has shown that some tests may fail "mysteriously" when there is too + little memory. A possible hint is that 128MB was too little on + FreeBSD 6 on x86 while 256MB was enough. You might also like to try fetching monotone's sources from our monotone server. this process will transfer the complete development @@ -162,7 +180,7 @@ 4. testing monotone mtn --db=mt.mtn db init - mtn --db=mt.mtn pull venge.net "net.venge.monotone*" + mtn --db=mt.mtn pull monotone.ca "net.venge.monotone*" mtn --db=mt.mtn --branch=net.venge.monotone checkout monotone-sources ============================================================ --- NEWS 5bc9ffb18ca66a50a8d76f8ab99defa364312977 +++ NEWS 0dee337ea44af422a00dfacf962d088d5a5cb0c0 @@ -1,3 +1,104 @@ +Fri Aug 3 06:08:36 UTC 2007 + + 0.36 release. + + Changes + + - The help command is now able to show documentation on subcommands + (such as 'attr set'). + + - The help command now shows a brief abstract of each command, + instead of only listing their names. + + - The command `list changed` now outputs the new path of any + renamed item making it easier to copy and paste these paths + for external program usage. + + - `automate attributes` has been renamed to `automate get_attributes`, + also a bug has been fixed there so resurrected attributes are now + properly outputted as "new" and not "changed". + + New features + + - Two new commands to set and drop attributes over automate: + `automate set_attribute` and `automate drop_attribute` + + - There is a new function available to the lua hooks, + 'server_request_sync(what, address, include, exclude)', which will + initate a netsync connection to the server at "address", with the + given include and exclude patterns, and will sync, push, or pull, + as given in the "what" argument. If called from a monotone instance + which is not acting as a server, this function will do nothing. + + - There is a new hook available, + 'get_netsync_key(server, include, exclude)', which is called to + determine which key to use for netsync operations. Note that the + server calls this once at startup with the address it is listening + on, "*", and "" as arguments, rather than for each connection. + + Other + + - Giving the --confdir argument will automatically set the key store + directory to keys/ under that directory, unless --keydir is also + given. This is a bugfix. + + - Fixed a regression in 0.35 that resulted in some databases + becoming significantly larger when storing new revisions. Existing + databases with this problem can be fixed by pulling into a fresh + database using 0.36. + + - contrib/lua-mode.el, a Lua mode for GNU emacs. + + - contrib/monotone-buildbot-notification.lua, a netsync hook to have a + server notify a buildbot when new changes have arrived. Useful for + anyone who uses a buildbot with monotone as source. + + - contrib/monotone-cluster-push.lua, a netsync hook script to have + arriving changes be forwarded to other servers automatically. It + uses the new internal lua function 'server_request_sync'. + + - contrib/mtn_makepermissions, a simple script to create + read-permissions and write-permissions from files in the directories + read-permissions.d and write-permissions.d, Debian style. + + - contrib/Monotone.pm, a first attempt to write a Perl module to + interface with 'monotone automate stdio'. + + - contrib/monotone-import.pl has been removed since monotone now has + an internal import command. + + Internal + + - Commands are now defined as a tree of commands instead of a + plain list, which allows the help system to look up information + of a command at an level in the tree. + + - The command class, the automate class and all the associated + macros have been cleaned up. + + - All C++ files now depend on base.hh, which includes the few things + that are used virtually everywhere. 'make distcheck' will check for + the presence of base.hh in all source files and will protest if + it's not there. This is explained further in HACKING. + + - Update the internal SQLite to version 3.4.0. + + - Updated Visual C building system, which now also builds the test + programs. The script visualc/runtests.bat can be used to run the + tests. + + - Monotone can now be built successfully with Boost 1.34. Older + versions of monotone would sometimes seem to work depending on + the compiler used, but would have bugs in path normalization. + + - Monotone now requires Boost 1.33 or later. + + - The Boost filesystem library is no longer required. + + - The Boost unit test system is no longer required. + + + Mon May 7 14:08:44 UTC 2007 0.35 release. ============================================================ --- UPGRADE d3d8c42e486ef104458fe758de268902a00ceae2 +++ UPGRADE dd53acd07dfebc6c40834f89af70696a6e6656a2 @@ -1,4 +1,4 @@ -upgrading monotone to 0.35 +upgrading monotone to 0.36 ========================== How to read this file: ============================================================ --- docs/Additional-Lua-Functions.html 003fcf003b671e91216a3e434b7b596c7600723a +++ docs/Additional-Lua-Functions.html 285e2b1228c364b9a93ae04192664a18fe95a8e7 @@ -36,7 +36,7 @@ hook writers. hook writers.
existonpath(
possible_command)
existonpath(
possible_command)
existonpath
would search
for “xxdiff.exe”.
- get_confdir()
get_confdir()
get_ostype()
get_ostype()
guess_binary_file_contents(
filespec)
guess_binary_file_contents(
filespec)
0x00 thru 0x06 0x0E thru 0x1a 0x1c thru 0x1f-
include(
scriptfile)
include(
scriptfile)
includedir(
scriptpath)
includedir(
scriptpath)
includedirpattern(
scriptpath,
pattern)
includedirpattern(
scriptpath,
pattern)
is_executable(
filespec)
is_executable(
filespec)
kill(
pid [,
signal])
kill(
pid [,
signal])
make_executable(
filespec)
make_executable(
filespec)
match(
glob,
string)
match(
glob,
string)
mkstemp(
template)
mkstemp(
template)
temp_file()<
file in the standard TMP/TEMP directories.
For the definition of temp_file()
, see Default hooks.
-
parse_basic_io(
data)
-
+
parse_basic_io(
data)
-
Parse the string data, which should be in basic_io format. It returns nil
if it can't parse the string; otherwise it returns a table. This will be a list
of all statements, with each entry being a table having a "name" element that is
@@ -139,14 +139,22 @@ the arguments.
4 = { name = "frob", args = { 1 = "oops" } }
}
-
regex.search(
regexp,
string)
-
+
regex.search(
regexp,
string)
-
Returns true if a match for regexp is found in str, return
false otherwise.
-
sleep(
seconds)
-
+
server_request_sync(
what,
address,
include,
exclude)
-
+Initiate a netsync connection to the server at address, with the
+given include and exclude patterns, of type sync, push,
+or pull, as given by the what argument.
+
+
When called by a monotone instance which is not running the serve
+command, this function has no effect.
+
+
sleep(
seconds)
-
Makes the calling process sleep for the specified number of seconds.
-
spawn(
executable [,
args ...])
-
+
spawn(
executable [,
args ...])
-
Starts the named executable with the given arguments. Returns the
process PID on POSIX systems, the process handle on Win32 or -1 if
there was an error.
@@ -158,17 +166,17 @@ in a standardized way.
option.
execute()
builds on spawn()
and wait()
in a standardized way.
-
spawn_pipe(
executable [,
args ...])
-
+
spawn_pipe(
executable [,
args ...])
-
Like spawn(), but returns three values, where the first two are the
subprocess' standard input and standard output, and the last is the
process PID on POSIX systems, the process handle on Win32 or -1 if
there was an error.
-
spawn_redirected(
infile,
outfile,
errfile,
executable [,
args ...])
-
+
spawn_redirected(
infile,
outfile,
errfile,
executable [,
args ...])
-
Like spawn(), but with standard input, standard output and standard
error redirected to the given files.
-
wait(
pid)
-
+
wait(
pid)
-
Wait until the process with given PID (process handle on Win32) exits.
Returns two values: a result value and the exit code of the waited-for
process.
============================================================
--- docs/Automation.html d79b6712901286af8b60661a8dfe33739c13ab1e
+++ docs/Automation.html aeef8408071b1a6a89c6030e08903f40fddfe1c9
@@ -1275,14 +1275,17 @@ message to stderr and exits with status
accept_testresult_change (
old_results,
new_results)
: Hooksattr_functions [
attribute] (
filename,
value)
: Hooksattr_init_functions [
attribute] (
filename)
: Hooksedit_comment (
commentary,
user_log_message)
: Hooksexistonpath(
possible_command)
: Additional Lua Functionsexpand_date (
str)
: Hooksexpand_selector (
str)
: Hooksexternal_diff (
file_path,
old_data,
new_data,
is_binary,
: Hooksget_author (
branchname,
keypair_id)
: Hooksget_branch_key (
branchname)
: Hooksget_confdir()
: Additional Lua Functionsget_encloser_pattern (
file_path)
: Hooksget_mtn_command(
host)
: Hooksget_netsync_connect_command (
uri,
args)
: Hooksget_netsync_read_permitted (
branch,
identity)
: Hooksget_netsync_write_permitted (
identity)
: Hooksget_ostype()
: Additional Lua Functionsget_passphrase (
keypair_id)
: Hooksget_preferred_merge3_command(
tbl)
: Hooksget_revision_cert_trust (
signers,
id,
name,
val)
: Hooksguess_binary_file_contents(
filespec)
: Additional Lua Functionsignore_branch (
branchname)
: Hooksignore_file (
filename)
: Hooksinclude(
scriptfile)
: Additional Lua Functionsincludedir(
scriptpath)
: Additional Lua Functionsincludedirpattern(
scriptpath,
pattern)
: Additional Lua Functionsis_executable(
filespec)
: Additional Lua Functionskill(
pid [,
signal])
: Additional Lua Functionsmake_executable(
filespec)
: Additional Lua Functionsmatch(
glob,
string)
: Additional Lua Functionsmerge3 (
ancestor_path,
left_path,
right_path,
merged_path,
ancestor_text,
left_text,
right_text)
: Hooksmkstemp(
template)
: Additional Lua Functionsaccept_testresult_change (
old_results,
new_results)
: Hooksattr_functions [
attribute] (
filename,
value)
: Hooksattr_init_functions [
attribute] (
filename)
: Hooksedit_comment (
commentary,
user_log_message)
: Hooksexistonpath(
possible_command)
: Additional Lua Functionsexpand_date (
str)
: Hooksexpand_selector (
str)
: Hooksexternal_diff (
file_path,
old_data,
new_data,
is_binary,
: Hooksget_author (
branchname,
keypair_id)
: Hooksget_branch_key (
branchname)
: Hooksget_confdir()
: Additional Lua Functionsget_encloser_pattern (
file_path)
: Hooksget_mtn_command(
host)
: Hooksget_netsync_connect_command (
uri,
args)
: Hooksget_netsync_key(
server,
include,
exclude)
: Hooksget_netsync_read_permitted (
branch,
identity)
: Hooksget_netsync_write_permitted (
identity)
: Hooksget_ostype()
: Additional Lua Functionsget_passphrase (
keypair_id)
: Hooksget_preferred_merge3_command(
tbl)
: Hooksget_revision_cert_trust (
signers,
id,
name,
val)
: Hooksguess_binary_file_contents(
filespec)
: Additional Lua Functionsignore_branch (
branchname)
: Hooksignore_file (
filename)
: Hooksinclude(
scriptfile)
: Additional Lua Functionsincludedir(
scriptpath)
: Additional Lua Functionsincludedirpattern(
scriptpath,
pattern)
: Additional Lua Functionsis_executable(
filespec)
: Additional Lua Functionskill(
pid [,
signal])
: Additional Lua Functionsmake_executable(
filespec)
: Additional Lua Functionsmatch(
glob,
string)
: Additional Lua Functionsmerge3 (
ancestor_path,
left_path,
right_path,
merged_path,
ancestor_text,
left_text,
right_text)
: Hooksmkstemp(
template)
: Additional Lua Functionsmtn --branch=
branchname checkout
directory: Treemtn --branch=
branchname co
directory: Treemtn [--bookkeep-only] drop
pathname...: Workspacemtn approve
id: Certificate
mtn automate ancestors
rev1 [
rev2 [...]]
: Automationmtn automate ancestry_difference
new [
old1 [
old2 [...]]]
: Automationmtn automate attributes
file: Automationmtn automate branches
: Automationmtn automate cert
revision name value: Automationmtn automate cert
revision name value: Automationmtn automate certs
id: Automationmtn automate children
rev: Automationmtn automate common_ancestors
rev1 [
rev2 [...]]
: Automationmtn automate content_diff [--revision=
id1 [--revision=
id2]] [
files ...]
: Automationmtn automate db_get
domain name: Automationmtn automate db_put
domain name value: Automationmtn automate content_diff [--revision=
id1 [--revision=
id2]] [
files ...]
: Automationmtn automate db_get
domain name: Automationmtn automate db_put
domain name value: Automationmtn automate descendents
rev1 [
rev2 [...]]
: Automationmtn automate drop_attribute
path [
key]
: Automationmtn automate erase_ancestors [
rev1 [
rev2 [...]]]
: Automationmtn automate get_attributes
path: Automationmtn automate get_base_revision_id
: Automationmtn automate get_content_changed
id file: Automationmtn automate get_corresponding_path
source_id file target_id: Automationmtn automate get_content_changed
id file: Automationmtn automate get_corresponding_path
source_id file target_id: Automationmtn automate get_current_revision_id
: Automationmtn automate get_file
id: Automationmtn automate get_file_of
filename [--revision=
id]
: Automationmtn automate get_file
id: Automationmtn automate get_file_of
filename [--revision=
id]
: Automationmtn automate get_manifest_of
: Automationmtn automate get_manifest_of
revid: Automationmtn automate get_option
option: Automationmtn automate get_option
option: Automationmtn automate get_revision
: Automationmtn automate get_revision
id: Automationmtn automate graph
: Automationmtn automate identify
path: Automation
mtn automate interface_version
: Automationmtn automate inventory
: Automationmtn automate keys
: Automationmtn automate keys
: Automationmtn automate leaves
: Automationmtn automate packet_for_certs
id: Automationmtn automate packet_for_fdata
id: Automationmtn automate packet_for_certs
id: Automationmtn automate packet_for_fdata
id: Automationmtn automate packet_for_fdata
id: Packet I/Omtn automate packet_for_fdelta
from-id to-id: Automationmtn automate packet_for_fdelta
from-id to-id: Automationmtn automate packet_for_fdelta
id1 id2: Packet I/Omtn automate packet_for_rdata
id: Automationmtn automate packet_for_rdata
id: Automationmtn automate packet_for_rdata
id: Packet I/Omtn automate packets_for_certs
id: Packet I/Omtn automate parents
rev: Automationmtn automate put_file [
base-id]
contents: Automationmtn automate put_revision
revision-data: Automationmtn automate put_file [
base-id]
contents: Automationmtn automate put_revision
revision-data: Automationmtn automate roots
: Automationmtn automate select
selector: Automationmtn automate set_attribute
path key value: Automationmtn automate stdio
: Automationmtn automate tags [
branch_pattern]
: Automationmtn automate toposort [
rev1 [
rev2 [...]]]
: Automationmtn complete [--brief] key
partial-id: Informative
mtn complete [--brief] revision
partial-id: Informativemtn complete file
partial-id: Informativemtn cvs_import
pathname: RCSmtn cvs_import
pathname: RCSmtn db check --db=
dbfile: Databasemtn db dump --db=
dbfile: Databasemtn db execute
sql-statement: Databasemtn pubkey
keyid: Packet I/O
mtn pull [--set-default] [
uri-or-address] [
glob [...] [--exclude=
exclude-glob]]]
: Networkmtn push [--set-default] [
uri-or-address] [
glob [...] [--exclude=
exclude-glob]]]
: Networkmtn rcs_import
filename...: RCSmtn rcs_import
filename...: RCSmtn read
: Packet I/Omtn read
file1 file2...: Packet I/Omtn refresh_inodeprints
: Workspacemtn unset
domain name: Database
mtn update
: Workspacemtn update --revision=
revision: Workspacenote_commit (
new_id,
revision,
certs)
: Hooksnote_mtn_startup (...)
: Hooksnote_netsync_cert_received (
rev_id,
key,
name,
value,
session_id)
: Hooksnote_netsync_end (
session_id,
status,
: Hooksnote_netsync_pubkey_received (
keyname,
session_id)
: Hooksnote_netsync_revision_received (
new_id,
revision,
certs,
session_id)
: Hooksnote_netsync_start (
session_id,
my_role,
sync_type,
: Hooksparse_basic_io(
data)
: Additional Lua Functionspersist_phrase_ok ()
: Hooksregex.search(
regexp,
string)
: Additional Lua Functionssleep(
seconds)
: Additional Lua Functionsspawn(
executable [,
args ...])
: Additional Lua Functionsspawn_pipe(
executable [,
args ...])
: Additional Lua Functionsspawn_redirected(
infile,
outfile,
errfile,
executable [,
args ...])
: Additional Lua Functionsuse_inodeprints ()
: Hooksuse_transport_auth (
uri)
: Hooksvalidate_commit_message (
message,
revision_text,
branchname)
: Hookswait(
pid)
: Additional Lua Functionsnote_commit (
new_id,
revision,
certs)
: Hooksnote_mtn_startup (...)
: Hooksnote_netsync_cert_received (
rev_id,
key,
name,
value,
session_id)
: Hooksnote_netsync_end (
session_id,
status,
: Hooksnote_netsync_pubkey_received (
keyname,
session_id)
: Hooksnote_netsync_revision_received (
new_id,
revision,
certs,
session_id)
: Hooksnote_netsync_start (
session_id,
my_role,
sync_type,
: Hooksparse_basic_io(
data)
: Additional Lua Functionspersist_phrase_ok ()
: Hooksregex.search(
regexp,
string)
: Additional Lua Functionsserver_request_sync(
what,
address,
include,
exclude)
: Additional Lua Functionssleep(
seconds)
: Additional Lua Functionsspawn(
executable [,
args ...])
: Additional Lua Functionsspawn_pipe(
executable [,
args ...])
: Additional Lua Functionsspawn_redirected(
infile,
outfile,
errfile,
executable [,
args ...])
: Additional Lua Functionsuse_inodeprints ()
: Hooksuse_transport_auth (
uri)
: Hooksvalidate_commit_message (
message,
revision_text,
branchname)
: Hookswait(
pid)
: Additional Lua Functions