1log: Show the log messages for a set of revision(s) and/or path(s).
2usage: 1. log [PATH][@REV]
3       2. log URL[@REV] [PATH...]
4
5  1. Print the log messages for the URL corresponding to PATH
6     (default: '.'). If specified, REV is the revision in which the
7     URL is first looked up, and the default revision range is REV:1.
8     If REV is not specified, the default revision range is BASE:1,
9     since the URL might not exist in the HEAD revision.
10
11  2. Print the log messages for the PATHs (default: '.') under URL.
12     If specified, REV is the revision in which the URL is first
13     looked up, and the default revision range is REV:1; otherwise,
14     the URL is looked up in HEAD, and the default revision range is
15     HEAD:1.
16
17  Multiple '-c' or '-r' options may be specified (but not a
18  combination of '-c' and '-r' options), and mixing of forward and
19  reverse ranges is allowed.
20
21  With -v, also print all affected paths with each log message.
22  Each changed path is preceded with a symbol describing the change:
23    A: The path was added or copied.
24    D: The path was deleted.
25    R: The path was replaced (deleted and re-added in the same revision).
26    M: The path's file and/or property content was modified.
27  If an added or replaced path was copied from somewhere else, the copy
28  source path and revision are shown in parentheses.
29  If a file or directory was moved from one path to another with 'svn move'
30  the old path will be listed as deleted and the new path will be listed
31  as copied from the old path at a prior revision.
32
33  With -q, don't print the log message body itself (note that this is
34  compatible with -v).
35
36  Each log message is printed just once, even if more than one of the
37  affected paths for that revision were explicitly requested.  Logs
38  follow copy history by default.  Use --stop-on-copy to disable this
39  behavior, which can be useful for determining branchpoints.
40
41  The --depth option is only valid in combination with the --diff option
42  and limits the scope of the displayed diff to the specified depth.
43
44  If the --search option is used, log messages are displayed only if the
45  provided search pattern matches any of the author, date, log message
46  text (unless --quiet is used), or, if the --verbose option is also
47  provided, a changed path.
48  The search pattern may include "glob syntax" wildcards:
49      ?      matches any single character
50      *      matches a sequence of arbitrary characters
51      [abc]  matches any of the characters listed inside the brackets
52  If multiple --search options are provided, a log message is shown if
53  it matches any of the provided search patterns. If the --search-and
54  option is used, that option's argument is combined with the pattern
55  from the previous --search or --search-and option, and a log message
56  is shown only if it matches the combined search pattern.
57  If --limit is used in combination with --search, --limit restricts the
58  number of log messages searched, rather than restricting the output
59  to a particular number of matching log messages.
60
61  Examples:
62
63    Show the latest 5 log messages for the current working copy
64    directory and display paths changed in each commit:
65      svn log -l 5 -v
66
67    Show the log for bar.c as of revision 42:
68      svn log bar.c@42
69
70    Show log messages and diffs for each commit to foo.c:
71      svn log --diff http://www.example.com/repo/project/foo.c
72    (Because the above command uses a full URL it does not require
73     a working copy.)
74
75    Show log messages for the children foo.c and bar.c of the directory
76    '/trunk' as it appeared in revision 50, using the ^/ URL shortcut:
77      svn log ^/trunk@50 foo.c bar.c
78
79    Show the log messages for any incoming changes to foo.c during the
80    next 'svn update':
81      svn log -r BASE:HEAD foo.c
82
83    Show the log message for the revision in which /branches/foo
84    was created:
85      svn log --stop-on-copy --limit 1 -r0:HEAD ^/branches/foo
86
87    Show all log messages for commits between the tags ^/tags/2.0 and
88    ^/tags/3.0; assuming that tag 2.0 was created in revision 100:
89      svn log -rHEAD:100 ^/tags/3.0
90
91    If ^/trunk/foo.c was moved to ^/trunk/bar.c' in revision 22, 'svn log -v'
92    shows a deletion and a copy in its changed paths list, such as:
93       D /trunk/foo.c
94       A /trunk/bar.c (from /trunk/foo.c:21)
95
96Valid options:
97  -r [--revision] ARG      : ARG (some commands also take ARG1:ARG2 range)
98                             A revision argument can be one of:
99                                NUMBER       revision number
100                                '{' DATE '}' revision at start of the date
101                                'HEAD'       latest in repository
102                                'BASE'       base rev of item's working copy
103                                'COMMITTED'  last commit at or before BASE
104                                'PREV'       revision just before COMMITTED
105  -c [--change] ARG        : the change made in revision ARG
106  -q [--quiet]             : do not print the log message
107  -v [--verbose]           : also print all affected paths
108  -g [--use-merge-history] : use/display additional information from merge
109                             history
110  --targets ARG            : pass contents of file ARG as additional args
111  --stop-on-copy           : do not cross copies while traversing history
112  --incremental            : give output suitable for concatenation
113  --xml                    : output in XML
114  -l [--limit] ARG         : maximum number of log entries
115  --with-all-revprops      : retrieve all revision properties
116  --with-no-revprops       : retrieve no revision properties
117  --with-revprop ARG       : retrieve revision property ARG
118  --depth ARG              : limit operation by depth ARG ('empty', 'files',
119                             'immediates', or 'infinity')
120  --diff                   : produce diff output
121  --diff-cmd ARG           : use ARG as diff command
122  --internal-diff          : override diff-cmd specified in config file
123  -x [--extensions] ARG    : Specify differencing options for external diff or
124                             internal diff or blame. Default: '-u'. Options are
125                             separated by spaces. Internal diff and blame take:
126                               -u, --unified: Show 3 lines of unified context
127                               -b, --ignore-space-change: Ignore changes in
128                                 amount of white space
129                               -w, --ignore-all-space: Ignore all white space
130                               --ignore-eol-style: Ignore changes in EOL style
131                               -U ARG, --context ARG: Show ARG lines of context
132                               -p, --show-c-function: Show C function name
133  --search ARG             : use ARG as search pattern (glob syntax, case-
134                             and accent-insensitive, may require quotation marks
135                             to prevent shell expansion)
136  --search-and ARG         : combine ARG with the previous search pattern
137
138(Use '-v' to show global and experimental options.)
139
140switch (sw): Update the working copy to a different URL within the same
141repository.
142usage: 1. switch URL[@PEGREV] [PATH]
143       2. switch --relocate FROM-PREFIX TO-PREFIX [PATH...]
144
145  1. Update the working copy to mirror a new URL within the repository.
146     This behavior is similar to 'svn update', and is the way to
147     move a working copy to a branch or tag within the same repository.
148     If specified, PEGREV determines in which revision the target is first
149     looked up.
150
151     If --force is used, unversioned obstructing paths in the working
152     copy do not automatically cause a failure if the switch attempts to
153     add the same path.  If the obstructing path is the same type (file
154     or directory) as the corresponding path in the repository it becomes
155     versioned but its contents are left 'as-is' in the working copy.
156     This means that an obstructing directory's unversioned children may
157     also obstruct and become versioned.  For files, any content differences
158     between the obstruction and the repository are treated like a local
159     modification to the working copy.  All properties from the repository
160     are applied to the obstructing path.
161
162     Use the --set-depth option to set a new working copy depth on the
163     targets of this operation.
164
165     By default, Subversion will refuse to switch a working copy path to
166     a new URL with which it shares no common version control ancestry.
167     Use the '--ignore-ancestry' option to override this sanity check.
168
169  2. The '--relocate' option is deprecated. This syntax is equivalent to
170     'svn relocate FROM-PREFIX TO-PREFIX [PATH]'.
171
172  See also 'svn help update' for a list of possible characters
173  reporting the action taken.
174
175  Examples:
176    svn switch ^/branches/1.x-release
177
178Valid options:
179  -r [--revision] ARG      : ARG (some commands also take ARG1:ARG2 range)
180                             A revision argument can be one of:
181                                NUMBER       revision number
182                                '{' DATE '}' revision at start of the date
183                                'HEAD'       latest in repository
184                                'BASE'       base rev of item's working copy
185                                'COMMITTED'  last commit at or before BASE
186                                'PREV'       revision just before COMMITTED
187  -N [--non-recursive]     : obsolete; same as --depth=files
188  --depth ARG              : limit operation by depth ARG ('empty', 'files',
189                             'immediates', or 'infinity')
190  --set-depth ARG          : set new working copy depth to ARG ('exclude',
191                             'empty', 'files', 'immediates', or 'infinity')
192  -q [--quiet]             : print nothing, or only summary information
193  --diff3-cmd ARG          : use ARG as merge command
194  --ignore-externals       : ignore externals definitions
195  --ignore-ancestry        : allow switching to a node with no common ancestor
196  --force                  : handle unversioned obstructions as changes
197  --accept ARG             : specify automatic conflict resolution action
198                             ('postpone', 'working', 'base', 'mine-conflict',
199                             'theirs-conflict', 'mine-full', 'theirs-full',
200                             'edit', 'launch', 'recommended') (shorthand:
201                             'p', 'mc', 'tc', 'mf', 'tf', 'e', 'l', 'r')
202  --relocate               : deprecated; use 'svn relocate'
203
204(Use '-v' to show global and experimental options.)
205
206