# # # add_file "docs/Merge-Conflicts.html" # content [ad80fc4535b65c5f2000f1873a3e2edea37462d5] # # patch "NEWS" # from [f36c9a7ea8c52a74a822b2d2d248aa35c8259d0e] # to [b9034e67e73f60163830996df6020058d77a332c] # # patch "UPGRADE" # from [ef451e84d9d3c847f9d1fde2f470a9d20cdd19a9] # to [6052a50d43bd883a92d73daa17b0ec2909b6448a] # # patch "docs/Additional-Lua-Functions.html" # from [e8f257471f9a6518560cba09bc3d3ab2a6143ba0] # to [5c22e2f5d0b963c9af369381855eb5bd24c9a1de] # # patch "docs/Advanced-Uses.html" # from [a5a5438f8a86bcbcdc677673000a05cfa29a5190] # to [6118babc8bf465f006910584e31eadeda3db685c] # # patch "docs/Automation.html" # from [35bed8de0799c40422cc86ce6784e00e82d1667c] # to [6b134ea5f3c2d82793b95327288d0ce8aea0bb62] # # patch "docs/Branches.html" # from [478cd3e4a9b9ff7ed91a3d32d88aaa05050e030b] # to [75e3558c493ba581490a1d29238b686383f7417a] # # patch "docs/Command-Reference.html" # from [ac73891fbac9546afc4fcfdd53eaeca93f7f6c8b] # to [81528258f7efb52cac2afd98e507627ad46d55d7] # # patch "docs/Concepts.html" # from [0a0a28e84c6b2364c55a81596080a66438ee0498] # to [4de3d8b44350b0afe922b776fd224a1377661766] # # patch "docs/Creating-a-Database.html" # from [dd4d71928c1cfcd0bae494cf2f671ec5e14b7f10] # to [bc25e00f5402e3215da4915ab1a75e6aa64cc803] # # patch "docs/File-Attributes.html" # from [07a04b4dc5dd34222afc29ac756a3bee696cfe0c] # to [b3bbc4368b308b72b3456895d886ea1eb90a218c] # # patch "docs/General-Index.html" # from [4935e1b875af4cd6dcc2d04dfd692887c69e4c0a] # to [592fbda10b81fd727dd44f36ea52bd542fd56f7c] # # patch "docs/Hook-Reference.html" # from [ac7f505461c97439c2534cee928cf54168ef632b] # to [6a7c40e5e3e82e0d8bd8d4efbe6e903121141555] # # patch "docs/Hooks.html" # from [d32c0db23daf71b0884b9465b74fcd30f8e819de] # to [a76cb47c503fde7fe8b0002a8e5aec0f7a11049e] # # patch "docs/Importing-from-CVS.html" # from [f52c8fd7dd6784f50c00c456c74d6589a72ab15f] # to [9cad4a2003527573f0139431426aef261d5aa724] # # patch "docs/Inodeprints.html" # from [4e462bbef7cfa65afde05c0e51771a6c831ec672] # to [a6a0aa517d9a10827fa3bf102d0c11ed4173e3fd] # # patch "docs/Internationalization.html" # from [20915ed9d3412b0f53b5a5b6c7e3c28f8586fd94] # to [d9117d515402eb1aa5a34126bca14d3fb14845ce] # # patch "docs/Merging.html" # from [a29585476ae412228693aadcdc3a54985e0b655d] # to [b9438b9c86d390f5c2d85f49cb0e2b394b99753b] # # patch "docs/Migrating-and-Dumping.html" # from [10a5a0961bd67d70eb3ac97caf148bd39db6e06e] # to [0fba5f6828d5729411cede5035bb150ad7ecb977] # # patch "docs/Naming-Conventions.html" # from [e9dec1894d0cbd227f61f8500aff5f9934c6c784] # to [a283417e52445d6040ace6c13e7eb92d102f071b] # # patch "docs/Other-Transports.html" # from [7e68d9cd7cf332f1193ece40eac4ff845325f176] # to [4a0047e6f6556a6314755fad17c23408979235f1] # # patch "docs/Quality-Assurance.html" # from [a2c5b1325ef9d5176db2908061afa117f9239b14] # to [ab4a077b4917da4df82370dbedfb752a14ac195d] # # patch "docs/RCS.html" # from [b0bb87a5300ed953a29c02f00b3534a85d43e6f1] # to [091242b5882fd3f6764bccf55bdcf08c87b72dbe] # # patch "docs/Regexp-Summary.html" # from [cb5173340dc7d085bb9b31fee5beb7af838d7b23] # to [d606da29ec66f4bc1485ce4775241597d98c7825] # # patch "docs/Reserved-Certs.html" # from [d86b0c542ecf0fe616cfded24d4333b3c0dea012] # to [1a8774145f487f7841f097fc354528e3616b73c9] # # patch "docs/Reserved-Files.html" # from [dc28c3e5da252e42e708ade445183f430694b199] # to [c51b5a88b407ff178073ff6cade5bd3e4c1ee961] # # patch "docs/Tree.html" # from [b946d40b26991865e3db854d272f95addb6cd920] # to [7f516e36b33603b1da359d22e30e895611e1f507] # # patch "docs/Using-packets.html" # from [9541f5784c2449819b1db89a826ea8917db3a416] # to [e5f4d8fd31fdbef391cd32d0d746ec17850744b7] # # patch "docs/Vars.html" # from [7475e0311e505b2062aa865f3532d3ff83806b30] # to [64da0e9dff7cede66e49befe24a15eb90a322a99] # # patch "docs/Versions-of-files.html" # from [f3bf46039cd6085320e20be0a3e6bd8656eca3fc] # to [3a2297f49127b05ba0bd2bab0ba53742b332244a] # # patch "docs/Workspace-Collisions.html" # from [ad276f0c48026052f87c36ebf66f04491fe2a5da] # to [c8aa0df648a2d487de04346534dae239c79f466c] # # patch "docs/index.html" # from [90d19f0dee2f65ff5a94c152a3f80558fa56e6ee] # to [b80a3369aa08ede047371f36407d7e321c7a0b2c] # # patch "docs/texinfo.css" # from [875ac0427e05332b13348ed5a41a6926fc8401d6] # to [7df2014835ae4ed8fb49c72c42932f771a00b530] # # patch "monotone.html" # from [6fa6307fc17a8f9880a0e07f365d13e2180601a9] # to [f3620d6af7b59c2c8e08e80e473c8298b5f9dc95] # # patch "monotone.pdf" # from [7704a142016b4a9be4b027a5eb5f7010a6422ca1] # to [af9abc648e45e83c487d06ff496493b96517cf7d] # ============================================================ --- docs/Merge-Conflicts.html ad80fc4535b65c5f2000f1873a3e2edea37462d5 +++ docs/Merge-Conflicts.html ad80fc4535b65c5f2000f1873a3e2edea37462d5 @@ -0,0 +1,293 @@ + +
++ +Next: Workspace Collisions, +Previous: Inodeprints, +Up: Advanced Uses +
Several different types of conflicts may be encountered when merging +two revisions using the database merge commands merge, +explicit_merge, propagate and +merge_into_dir or when using the workspace merge commands +update, pluck and merge_into_workspace. +The show_conflicts command can be used to list conflicts +between database revisions which would be encountered by the database +merge commands. Unfortunately, this command can't yet list conflicts +between a database revision and the current workspace revision which +would be encountered by the workspace merge commands. + +
Monotone versions both files and directories explicitly and it tracks +individual file and directory identity from birth to death so that +name changes throughout the full life-cycle can be tracked exactly. +Partly because of these qualities, monotone also notices several types +of conflicts that other version control systems may not. + +
The two most common conflicts are described first, then all other +possible conflicts. + +
This type of conflict is generally the one encountered most commonly +and represents conflicting changes made to lines of text within two +versions of a single file. + +
Monotone does not generally use CVS style conflict markers for content
+conflicts. Instead it makes the content of both conflicting files and
+the content of their common ancestor available for use with your
+favorite merge tool. See the merge3
hook for more information.
+
+
Alternatively, rather than using a merge tool it is possible to make +further changes to one or both of the conflicting file versions so +that they will merge cleanly. This can also be a very helpful strategy +if the merge conflicts are due to sections of text in the file being +moved from one location to another. Rather than struggling to merge +such conflicting changes with a merge tool, similar rearrangements can +be made to one of the conflicting files before redoing the merge. + +
A duplicate name conflict occurs when two distinct files or +directories have been given the same name in the two merge parents. +This can occur when each of the merge parents adds a new file or +directory with the conflicting name, or when one parent adds a new +file or directory with the conflicting name and the other renames an +existing file or directory to the conflicting name, or when both +parents rename an existing file or directory to the conflicting name. + +
In earlier versions of monotone (before version 0.39) this type of +conflict was referred to as a rename target conflict although +it doesn't necessarily have anything to do with renames. + +
There are two main situations in which duplicate name conflicts occur: + +
These conflicts are reported when someone tries to merge the two +revisions containing the new files. + +
For the first case, the conflict is resolved by droping one +file. The contents should be manually merged first, in case they are +slightly different. Typically, a user will have one of the files in +their current workspace; the other can be retrieved via +automate get_file_of; the revision id is shown in the merge +error message. The process can be confusing; here's a detailed +example. + +
Suppose Beth and Abe each commit a new file checkout.sh. When +Beth attempts to merge the two heads, she gets a message like: + +
mtn: 2 heads on branch 'testbranch' + mtn: [left] ae94e6677b8e31692c67d98744dccf5fa9ccffe5 + mtn: [right] dfdf50b19fb971f502671b0cfa6d15d69a0d04bb + mtn: conflict: duplicate name 'checkout.sh' + mtn: added as a new file on the left + mtn: added as a new file on the right + mtn: error: merge failed due to unresolved conflicts ++
The file labeled right
is the file in Beth's workspace. To
+retrieve a copy of Abe's file, Beth executes:
+
+
mtn automate get_file_of checkout.sh \ + --revision=ae94e6677b8e31692c67d98744dccf5fa9ccffe5 \ + > checkout.sh-merge ++
Now Beth manually merges (using her favorite merge tool) +checkout.sh and checkout.sh-merge, leaving the results in +checkout.sh-merge (not in her copy). + +
Then Beth drops her copy, and commits that change: + +
mtn drop checkout.sh + mtn commit --message "resolving conflicting 'checkout.sh'" ++
Now Beth can merge the two heads, and update her workspace: + +
mtn merge + mtn update ++
This leaves a copy of Abe's original checkout.sh. Beth +overwrites it with her merged version, and commits again: + +
rm checkout.sh + mv checkout.sh-merge checkout.sh + mtn commit --message "resolving conflicting 'checkout.sh' - done" ++
When Abe later syncs and updates, he will get the merged version. + +
The second case, where two different files accidently have the same +name, is resolved by renaming one or both of them. + +
Suppose Beth and Abe each start working on different thermostat models +(say Honeywell and Westinghouse), but they both name the file +thermostat. When Beth attempts to merge, she will get the same +error message as in the first case. When she retrieves Abe's file, she +will see that they should be different files. So she renames her file, +merges, and updates: + +
mtn rename thermostat thermostat-honeywell + mtn merge + mtn update ++
Now she has her file in thermostat-honeywell, and Abe's in +thermostat. She may rename Abe's file to +thermostat-westinghouse, or ask Abe to do that. + +
If a project has a good file naming convention, this second case +should be rare. + +
Monotone's merge strategy is sometimes referred to as +die-die-die merge, with reference to the fact that when a file +or directory is deleted there is no means of resurrecting it. Merging +the deletion of a file or directory will always result in that +file or directory being deleted. + +
A missing root conflict occurs when some directory has been moved to +the root directory in one of the merge parents and has been deleted in +the other merge parent. Because of die-die-die merge the result will +not contain the directory that has been moved to the root. + +
Missing root conflicts should be very rare because it is unlikely that +a project's root directory will change. It is even more unlikely that +a project's root directory will be changed to some other directory in +one merge parent and that this directory will also be deleted in the +other merge parent. Even still, a missing root directory conflict can +be easily resolved by moving another directory to the root in the +merge parent where the root directory was previously changed. Because +of die-die-die merge, no change to resolve the conflict can be made to +the merge parent that deleted the directory which was moved to the +root in the other merge parent. + +
See the pivot_root command for more information on moving +another directory to the project root. + +
Monotone reserves the name _MTN in a workspace root directory +for internal use and treats this name as illegal for a +versioned file or directory in the project root. This name is +legal for a versioned file or directory as long as it is not in +the project root directory. + +
An invalid name conflict occurs when some directory is moved to the +project root in one of the merge parents and a file or directory that +exists in this new root directory is renamed to _MTN or a new +file or directory is added with the name _MTN to this directory +in the other merge parent. + +
Invalid name conflicts should be very rare because it is unlikely that +a project's root directory will change. It is even more unlikely that +a project's root directory will change and the new root directory will +contain a file or directory named _MTN. Even still, an invalid +name conflict can be easily resolved in several different ways. A +different root directory can be chosen, the offending _MTN file +or directory can be renamed or deleted, or it can be moved to some +other subdirectory in the project. + +
See the pivot_root command for more information on moving +another directory to the project root. + +
A directory loop conflict occurs when one directory is moved under a +second in one of the merge parents and the second directory is moved +under the first in the other merge parent. + +
Directory loop conflicts should be rare but can be easily resolved by +moving one of the conflicting directories out from under the other. + +
An orphaned node conflict occurs when a directory and all of its +contents are deleted in one of the merge parents and further files or +directories are added to this deleted directory, or renamed into it, +in the other merge parent. + +
Orphaned node conflicts do happen occasionally but can be easily +resolved by renaming the orphaned files or directories out of the +directory that has been deleted and into another directory that exists +in both merge parents, or that has been added in the revision +containing the orphaned files or directories. + +
A multiple name conflict occurs when a single file or directory has +been renamed to two different names in the two merge parents. +Monotone does not allow this and requires that each file and directory +has exactly one unique name. + +
Multiple name conflicts do happen occasionally but can be easily +resolved by renaming the conflicting file or directory in one or both +of the merge parents so that both agree on the name. + +
In earlier versions of monotone (those before version 0.39) this type +of conflict was referred to as a name conflict. + +
An attribute conflict occurs when a versioned attribute on a file or +directory is set to two different values by the two merge parents or +if one of the merge parents changes the attribute's value and the +other deletes the attribute entirely. + +
Attribute conflicts may happen occasionally but can be easily resolved +by ensuring that the attribute is set to the same value or is deleted +in both of the merge parents. Attributes are not merged using +the die-die-die rules and may be resurrected by simply setting their +values. + +
Resolving the different types of conflicts is accomplished by checking +out one of the conflicting revisions, making changes as described +above, committing these changes as a new revision and then running the +merge again using this new revision as one of the merge parents. This +process can be repeated as necessary to get two revisions into a state +where they will merge cleanly, or with a minimum of file content +conflicts. + + + ============================================================ --- NEWS f36c9a7ea8c52a74a822b2d2d248aa35c8259d0e +++ NEWS b9034e67e73f60163830996df6020058d77a332c @@ -1,3 +1,69 @@ +Mon Feb 25 15:55:36 UTC 2008 + + 0.39 release. + + Changes + + - 'mtn di' is now an alias for 'mtn diff'. + + - 'automate db_set' has been renamed to 'automate set_db_variable'. + + - 'automate db_get' has been replaced by 'automate get_db_variables' + which returns all database variables similar to 'list vars' in + basic_io format, optionally restricted by domain. + + - The REVID argument of 'automate get_revision' is now mandatory; + to retrieve the current workspace revision, use the new command + 'automate get_current_revision' + + - messages describing conflicts from all of the various merge commands + have been reworked and should be much more informative. + + - mtn show_conflicts now outputs much more detailed and descriptive + messages, however it may report content conflicts that will be + resolved automatically by the line merger. + + - The internal copy of PCRE has been updated to version 7.6. + If you use the '--with-system-pcre' configure switch, it + will insist on at least this version. + + - "emacs" has been removed from the list of dumb terminal types; + tickers should now default to --ticker=count with emacs terminals + + - extensive section on merge conflicts and ways to resolve them + added to the manual. + + Bugs fixed + + - for changes near the beginning of a file, mtn's unified diff + output sometimes contained too many leading context lines. + + - the path handling of 'mtn revert' was improved and fixed two bugs: + now a restricted revert on a node "dir1/file1" reverts only the + content changes in "file1", but leaves renames of any of its + ancestor nodes untouched; furthermore, if "dir0/" was renamed to + "dir1" and "dir1/file1" was dropped, mtn now re-creates file1 at the + proper place ("dir1/") and leaves no missing files around because + of the non-existing "dir0/". + + - a few changes needed to build with gcc 4.3. + + New features + + - 'automate drop_db_variables' which drops one database variable + (like the 'unset' command) or all variables within a given domain. + + - 'automate inventory' now accepts the options '--no-ignored', + '--no-unknown', '--no-unchanged' and '--no-corresponding-renames'. + Please consult the monotone documentation for more information about + these new options. + In addition, 'automate inventory' no longer recurses into ignored + directories. The typical case of listing files that need attention + now runs at least four times faster. + + - 'automate get_current_revision' which outputs the revision text of + changes in the current workspace + Wed Dec 12 21:21:15 UTC 2007 0.38 release. @@ -15,7 +81,7 @@ Wed Dec 12 21:21:15 UTC 2007 - mtn now checks for your key before a merge action takes place to ensure that any manually merged file isn't lost in an error case - + Bugs fixed - a bug introduced in 0.37 prevented an external merger from being @@ -23,8 +89,8 @@ Wed Dec 12 21:21:15 UTC 2007 - mtn read successfully reads revision data, and cert packets again - - mtn consistently supports certs with empty values - (fixed 'ls certs' and 'read') + - mtn consistently supports certs with empty values + (fixed 'ls certs' and 'read') Internal @@ -32,7 +98,7 @@ Wed Dec 12 21:21:15 UTC 2007 - Moved the gzip implementation out of the Botan directory. - Other + Other - Added the scripts of the following Lua-based contributed Monotone extension commands to contrib/command/: @@ -41,8 +107,8 @@ Wed Dec 12 21:21:15 UTC 2007 - Added a hooks version of the contributed ciabot script, contrib/ciabot_monotone_hookversion.lua - - The monotone manual is now licensed under the GPL rather than - the GFDL. + - The monotone manual is now licensed under the GPL rather than + the GFDL. Fri Oct 25 22:35:33 UTC 2007 @@ -1865,10 +1931,10 @@ Sun Apr 10 17:49:25 PDT 2005 Sun Apr 10 17:49:25 PDT 2005 0.18 release. performance improvements, features, and bug fixes. - This release is dedicated to Shweta Narayan. + This release is dedicated to Shweta Narayan. - most operations sped up by a factor of 2 or better; many sped up - by up several orders of magnitude. + by up several orders of magnitude. - special thanks to Matt Johnston
, Derek Scherger , Linus Torvalds . @@ -1888,12 +1954,12 @@ Sun Apr 10 17:49:25 PDT 2005 previously synced with, to prevent man-in-the-middle attacks. - several powerful new "automate" commands added. - - new command 'ls known', lists files that are under version - control. Thanks to Florian Weimer . - - preliminary "inodeprints" functionality -- speeds up diff, - status, etc. No UI or documentation yet -- in a working - copy, 'touch MT/inodeprints' to enable, then commit or - update to populate cache. + - new command 'ls known', lists files that are under version + control. Thanks to Florian Weimer . + - preliminary "inodeprints" functionality -- speeds up diff, + status, etc. No UI or documentation yet -- in a working + copy, 'touch MT/inodeprints' to enable, then commit or + update to populate cache. - UI improvements: - Added short options -r, -b, -k, -m. - default to 'dot' ticker-style when stderr is @@ -1915,9 +1981,9 @@ Sun Apr 10 17:49:25 PDT 2005 email notification, Bash completion. - 33 new integration tests. total line coverage: ~82%. - many bug fixes - - Special thanks to Matt Johnston , - for going above and beyond to track down the last - release blocker. + - Special thanks to Matt Johnston , + for going above and beyond to track down the last + release blocker. - upgrading from 0.17 requires only a 'db migrate'. @@ -1970,214 +2036,214 @@ Thu Dec 30 01:37:54 EST 2004 Thu Dec 30 01:37:54 EST 2004 - 0.16 release. bug fixes. + 0.16 release. bug fixes. - - 50+ new integration tests - - many NetBSD portability fixes - - release build on gcc 3.4 / FC3 - - masses of changeset bugs in 0.15 fixed + - 50+ new integration tests + - many NetBSD portability fixes + - release build on gcc 3.4 / FC3 + - masses of changeset bugs in 0.15 fixed - - some bogus changesets were generated - in the 0.16 development cycle. you will - need to rebuild revision graph. + - some bogus changesets were generated + in the 0.16 development cycle. you will + need to rebuild revision graph. Sun Nov 7 14:06:03 EST 2004 - 0.15 release. major changes. + 0.15 release. major changes. - - overhauled the internal representation of changes. see - README.changesets for details - - fixed bugs in merkle trie synchronization code - - fixed echoing and progress UI bugs - (helps when using in emacs) - - upgraded cryptopp to 5.2.1 - - fixed bug 8715, diff hunk coordinate reporting - - added figures, new tutorial to manual - - improve accuracy of log command - - several build, configure, and linkage fixes - - some OSX / PPC portability fixes + - overhauled the internal representation of changes. see + README.changesets for details + - fixed bugs in merkle trie synchronization code + - fixed echoing and progress UI bugs + (helps when using in emacs) + - upgraded cryptopp to 5.2.1 + - fixed bug 8715, diff hunk coordinate reporting + - added figures, new tutorial to manual + - improve accuracy of log command + - several build, configure, and linkage fixes + - some OSX / PPC portability fixes Sat Jul 31 15:38:02 EDT 2004 - 0.14 release. bug fixes. + 0.14 release. bug fixes. - - some compile fixes for g++ 3.4 - - made --dump=FILE option for saving traces, - otherwise failures just print reason (no trace) - - some things disabled, as scheduled for replacement - by upcoming changeset branch work - - disabled "disapprove" command due to bad semantics - - removed "bump" and .mt-nonce machinery - - several critical rename-merging bugs fixed - - renames vs. deletes - - renames vs. deltas - - parallel renames - - bugs fixed from savannah bug tracker: - - 9223 argv overflow - - 9075 empty commits - - 8919 rename --verbose to --debug - - 8958 rename debug to db execute - - 8920 empty passphrase message - - 8917 connection refused message - - 8913 testresult argument - - 8912 passphrase read on serve - - 8472 approve into branch - - 8428 duplicate key warning - - 8928 nonce uses too many bits + - some compile fixes for g++ 3.4 + - made --dump=FILE option for saving traces, + otherwise failures just print reason (no trace) + - some things disabled, as scheduled for replacement + by upcoming changeset branch work + - disabled "disapprove" command due to bad semantics + - removed "bump" and .mt-nonce machinery + - several critical rename-merging bugs fixed + - renames vs. deletes + - renames vs. deltas + - parallel renames + - bugs fixed from savannah bug tracker: + - 9223 argv overflow + - 9075 empty commits + - 8919 rename --verbose to --debug + - 8958 rename debug to db execute + - 8920 empty passphrase message + - 8917 connection refused message + - 8913 testresult argument + - 8912 passphrase read on serve + - 8472 approve into branch + - 8428 duplicate key warning + - 8928 nonce uses too many bits Thu May 20 22:26:27 EDT 2004 - 0.13 release. bug fixes. + 0.13 release. bug fixes. - - remove (file|manifest) in several commands - - "list missing" command - - fixed bugs: - - (critical) empty data netsync crash - - mkstemp, platform lua - - runtime error reporting chatter - - non-posix database names - - non-posix dirnames - - non-posix merge names - - 2-way merge algorithm and hook - - single-character filenames - - multiple password reads - - .svn ignore pattern + - remove (file|manifest) in several commands + - "list missing" command + - fixed bugs: + - (critical) empty data netsync crash + - mkstemp, platform lua + - runtime error reporting chatter + - non-posix database names + - non-posix dirnames + - non-posix merge names + - 2-way merge algorithm and hook + - single-character filenames + - multiple password reads + - .svn ignore pattern Sun May 2 21:03:38 EDT 2004 - 0.12 release. win32 port, bug fixes and optimizations. + 0.12 release. win32 port, bug fixes and optimizations. - - ported to native win32 (mingw) - - implemented human friendly version selectors - - added post-commit hook for change notification - - removed spirit-based parsers, reduced compile costs - - many netsync bugs removed, pipeline performance improved - - removed old, deprecated networking system - - several minor CVS import bugs fixed - - upgraded bundled netxx + - ported to native win32 (mingw) + - implemented human friendly version selectors + - added post-commit hook for change notification + - removed spirit-based parsers, reduced compile costs + - many netsync bugs removed, pipeline performance improved + - removed old, deprecated networking system + - several minor CVS import bugs fixed + - upgraded bundled netxx Sun Mar 28 12:41:07 EST 2004 - 0.11 release. bug fixes and optimizations. + 0.11 release. bug fixes and optimizations. - NOTE: this release expands the sqlite page size. YOU WILL NEED - to dump existing databases before upgrading and reload it - after upgrading, otherwise monotone will complain that the - database image appears malformed. this condition cannot - unfortunately be distinguished from a real malformed image on - disk. for example: + NOTE: this release expands the sqlite page size. YOU WILL NEED + to dump existing databases before upgrading and reload it + after upgrading, otherwise monotone will complain that the + database image appears malformed. this condition cannot + unfortunately be distinguished from a real malformed image on + disk. for example: - $ monotone --db=my.db db dump >dump.sql - $alias_command(
original,
alias)
alias_command(
original,
alias)
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.
-
mtn_automate( ... )
-
+
mtn_automate( ... )
-
The
mtn_automate
Lua function calls the Monotone
automate command passed in its arguments. The result of the
call is a pair consisting of a boolean return code, indicating whether
@@ -130,7 +130,7 @@ the Lua function register_command<
in ordinary Lua hooks, but rather for Lua based commands as defined by
the Lua function register_command
.
-
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
@@ -152,17 +152,17 @@ the arguments.
4 = { name = "frob", values = { 1 = "oops" } }
}
-
regex.search(
regexp,
string)
-
+
regex.search(
regexp,
string)
-
Returns true if a match for regexp is found in str, return
false otherwise. See Regexps, for the syntax of regexp.
-
register_command(
name,
params,
abstract,
description,
function)
-
+
register_command(
name,
params,
abstract,
description,
function)
-
Add a command named name to the user command group in monotone. This function is
normally called directly from a monotonerc file rather than a hook. When the user issues the
registered command, monotone will call the lua function name supplied. That function would
then normally use mtn_automate() calls to service the request.
-
server_request_sync(
what,
address,
include,
exclude)
-
+
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.
@@ -170,10 +170,10 @@ command, this function has no effect.
When called by a monotone instance which is not running the serve
command, this function has no effect.
-
sleep(
seconds)
-
+
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.
@@ -185,17 +185,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/Advanced-Uses.html a5a5438f8a86bcbcdc677673000a05cfa29a5190
+++ docs/Advanced-Uses.html 6118babc8bf465f006910584e31eadeda3db685c
@@ -40,22 +40,23 @@ familiarize yourself with its operation.
familiarize yourself with its operation.