comparison mercurial/commands.py @ 3828:28134d82db9b

Add notes about diff/merge asymmetry to export, diff, and log
author Matt Mackall <mpm@selenic.com>
date Fri, 08 Dec 2006 13:04:10 -0600
parents e3ba19ec8c48
children 08c169cbd9e1 531c116b2028
comparison
equal deleted inserted replaced
3825:158fce02dc40 3828:28134d82db9b
854 854
855 Show differences between revisions for the specified files. 855 Show differences between revisions for the specified files.
856 856
857 Differences between files are shown using the unified diff format. 857 Differences between files are shown using the unified diff format.
858 858
859 NOTE: diff may generate unexpected results for merges, as it will
860 default to comparing against the working directory's first parent
861 changeset if no revisions are specified.
862
859 When two revision arguments are given, then changes are shown 863 When two revision arguments are given, then changes are shown
860 between those revisions. If only one revision is specified then 864 between those revisions. If only one revision is specified then
861 that revision is compared to the working directory, and, when no 865 that revision is compared to the working directory, and, when no
862 revisions are specified, the working directory files are compared 866 revisions are specified, the working directory files are compared
863 to its parent. 867 to its parent.
877 """dump the header and diffs for one or more changesets 881 """dump the header and diffs for one or more changesets
878 882
879 Print the changeset header and diffs for one or more revisions. 883 Print the changeset header and diffs for one or more revisions.
880 884
881 The information shown in the changeset header is: author, 885 The information shown in the changeset header is: author,
882 changeset hash, parent and commit comment. 886 changeset hash, parent(s) and commit comment.
887
888 NOTE: export may generate unexpected diff output for merge changesets,
889 as it will compare the merge changeset against its first parent only.
883 890
884 Output may be to a file, in which case the name of the file is 891 Output may be to a file, in which case the name of the file is
885 given using a format string. The formatting rules are as follows: 892 given using a format string. The formatting rules are as follows:
886 893
887 %% literal "%" character 894 %% literal "%" character
1475 1482
1476 By default this command outputs: changeset id and hash, tags, 1483 By default this command outputs: changeset id and hash, tags,
1477 non-trivial parents, user, date and time, and a summary for each 1484 non-trivial parents, user, date and time, and a summary for each
1478 commit. When the -v/--verbose switch is used, the list of changed 1485 commit. When the -v/--verbose switch is used, the list of changed
1479 files and full commit message is shown. 1486 files and full commit message is shown.
1487
1488 NOTE: log -p may generate unexpected diff output for merge
1489 changesets, as it will compare the merge changeset against its
1490 first parent only. Also, the files: list will only reflect files
1491 that are different from BOTH parents.
1492
1480 """ 1493 """
1481 1494
1482 get = util.cachefunc(lambda r: repo.changectx(r).changeset()) 1495 get = util.cachefunc(lambda r: repo.changectx(r).changeset())
1483 changeiter, matchfn = cmdutil.walkchangerevs(ui, repo, pats, get, opts) 1496 changeiter, matchfn = cmdutil.walkchangerevs(ui, repo, pats, get, opts)
1484 1497
2171 """show changed files in the working directory 2184 """show changed files in the working directory
2172 2185
2173 Show status of files in the repository. If names are given, only 2186 Show status of files in the repository. If names are given, only
2174 files that match are shown. Files that are clean or ignored, are 2187 files that match are shown. Files that are clean or ignored, are
2175 not listed unless -c (clean), -i (ignored) or -A is given. 2188 not listed unless -c (clean), -i (ignored) or -A is given.
2189
2190 NOTE: status may appear to disagree with diff if permissions have
2191 changed or a merge has occurred. The standard diff format does not
2192 report permission changes and diff only reports changes relative
2193 to one merge parent.
2176 2194
2177 If one revision is given, it is used as the base revision. 2195 If one revision is given, it is used as the base revision.
2178 If two revisions are given, the difference between them is shown. 2196 If two revisions are given, the difference between them is shown.
2179 2197
2180 The codes used to show the status of files are: 2198 The codes used to show the status of files are: