# # patch "ChangeLog" # from [c5935fbb7060f5ac9921eda41897564806270164] # to [a321dd0e463e1c53e4fbe10d2f596c346813c94d] # # patch "monotone.texi" # from [b616e44f5dba647ab024362f2524bee134e2c8e4] # to [de7980ee6d2c6321175f661d48d1d2e97fe53916] # --- ChangeLog +++ ChangeLog @@ -1,5 +1,13 @@ 2005-07-17 Nathaniel Smith + * 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 + * 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 --- monotone.texi +++ monotone.texi @@ -2425,12 +2425,6 @@ number of directories to descend. For example, @var{n}=0 disables recursion, @var{n}=1 means descend at most one directory, and so on. -One variant of the @command{diff} command takes two @option{--revision} -options and does not operate on a working copy, but instead compares two -arbitrary database revisions. In this form the @command{diff} command -does not currently support a restriction or optional @var{pathname...} -arguments. This may be changed in the future. - The @command{update} command does not allow for updates to a restricted set of files, which may be slightly different than other version control systems. Partial updates don't really make sense in @@ -3166,13 +3160,13 @@ @item @smallexample @group -$ cvs diff -r 1.2 -r 1.4 +$ cvs diff -r 1.2 -r 1.4 myfile @end group @end smallexample @tab @smallexample @group -$ monotone diff -r 3e7db -r 278df +$ monotone diff -r 3e7db -r 278df myfile @end group @end smallexample @end multitable @@ -3183,8 +3177,8 @@ @command{diff} accompanied by two revision numbers prints the difference between those two revisions. The major difference between CVS and monotone here is that monotone's revision numbers are address@hidden IDs}, so the @command{diff} command prints the -difference between the two entire trees. address@hidden IDs}, rather than file IDs. If one leaves off the file +argument, then diff can print the difference between two entire trees. @heading Showing Working Copy Status @@ -3862,7 +3856,9 @@ @end group @end smallexample address@hidden monotone diff address@hidden monotone diff address@hidden monotone diff --context address@hidden monotone diff --external address@hidden @itemx monotone diff @var{pathname...} @itemx monotone diff address@hidden @itemx monotone diff address@hidden @var{pathname...} @@ -3896,6 +3892,23 @@ copy. Specifying only the pathname "." will restrict @command{diff} to files changed within the current subdirectory of the working copy. +The output format of @command{diff} is controlled by the options address@hidden, @option{--context}, and @option{--external}. address@hidden requests the ``unified diff'' format, the default +(analogous to running the program @code{diff -u}). @option{--context} +request the ``context diff'' format (analogous to running the program address@hidden -c}). Both of these formats are generated directly by +monotone, using its built-in diff algorithm. + +Sometimes, you may want more flexibility in output formats; for these +cases, you can use @option{--external}, which causes monotone to invoke +an external program to generate the actual output. By default, the +external program is @code{diff}, and you can use the option address@hidden to pass additional arguments controlling +formatting. The actual invocation of @code{diff}, default arguments +passed to it, and so on, are controlled by the hook address@hidden; see @ref{Hooks} for more details. + @item monotone list certs @var{id} These commands will print out a list of certificates associated with