svn status (stat, st) — 打印工作副本文件和目录的状态。
svn status [PATH…]
Print the status of working copy files and directories. With no arguments, it prints only locally modified items (no repository access). With –show-updates (-u), it adds working revision and server out-of-date information. With –verbose (-v), it prints full revision information on every item. With –quiet (-q), it prints only summary information about locally modified items.
The first seven columns in the output are each one character wide, and each column gives you information about a different aspect of each working copy item.
Item has been replaced in your working copy. This means the file was scheduled for deletion, and then a new file with the same name was scheduled for addition in its place.
Item is missing (e.g., you moved or deleted it without using svn). This also indicates that a directory is incomplete (a checkout or update was interrupted).
Item is versioned as one kind of object (file, directory, link), but has been replaced by a different kind of object.
The second column tells the status of a file’s or directory’s properties:
The third column is populated only if the working copy directory is locked (see 第 6 节 “有时你只需要清理”):
The fourth column is populated only if the item is scheduled for addition-with-history:
The fifth column is populated only if the item is switched relative to its parent (see 第 5 节 “使用分支”):
The sixth column is populated with lock information:
When –show-updates (-u) is used, the file is not locked. If –show-updates (-u) is not used, this merely means that the file is not locked in this working copy.
File is locked either by another user or in another working copy. This appears only when –show-updates (-u) is used.
File was locked in this working copy, but the lock has been “stolen” and is invalid. The file is currently locked in the repository. This appears only when –show-updates (-u) is used.
File was locked in this working copy, but the lock has been “broken” and is invalid. The file is no longer locked. This appears only when –show-updates (-u) is used.
The seventh column is populated only if the item is the victim of a tree conflict:
The out-of-date information appears in the ninth column (only if you pass the –show-updates (-u) option):
The remaining fields are variable width and delimited by spaces. The working revision is the next field if the –show-updates (-u) or –verbose (-v) option is passed.
If the –verbose (-v) option is passed, the last committed revision and last committed author are displayed next.
$ svn status wc
A + wc/qax.c
If you want to find out what files in your working copy are out of date, pass the –show-updates (-u) option (this will not make any changes to your working copy). Here you can see that wc/foo.c has changed in the repository since we last updated our working copy:
$ svn status -u wc
M 965 wc/bar.c
* 965 wc/foo.c
A + 965 wc/qax.c
Status against revision: 981
–show-updates (-u) only places an asterisk next to items that are out of date (i.e., items that will be updated from the repository if you later use svn update). –show-updates (-u) does not cause the status listing to reflect the repository’s version of the item (although you can see the revision number in the repository by passing the –verbose (-v) option).
The most information you can get out of the status subcommand is as follows:
$ svn status -u -v wc
M 965 938 sally wc/bar.c
* 965 922 harry wc/foo.c
A + 965 687 harry wc/qax.c
965 687 harry wc/zig.c
Status against revision: 981
Lastly, you can get svn status output in XML format with the –xml option:
$ svn status –xml wc