This text is a work in progress—highly subject to change—and may not accurately describe any released version of the Apache™ Subversion® software. Bookmarking or otherwise referring others to this page is probably not such a smart idea. Please visit http://www.svnbook.com/ for stable versions of this book.
svn status (stat, st) — Print the status of working copy files and directories.
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.
The first column indicates that an item was added, deleted, or otherwise changed:
' '
No modifications.
'A'
Item is scheduled for addition.
'D'
Item is scheduled for deletion.
'M'
Item has been modified.
'R'
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.
'C'
The contents (as opposed to the properties) of the item conflict with updates received from the repository.
'X'
Item is present because of an externals definition.
'I'
Item is being ignored (e.g., with the
svn:ignore
property).
'?'
Item is not under version control.
'!'
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:
' '
No modifications.
'M'
Properties for this item have been modified.
'C'
Properties for this item are in conflict with property updates received from the repository.
The third column is populated only if the working copy directory is locked (see the section called “Sometimes You Just Need to Clean Up”):
' '
Item is not locked.
'L'
Item is locked.
The fourth column is populated only if the item is scheduled for addition-with-history:
' '
No history scheduled with commit.
'+'
History scheduled with commit.
The fifth column is populated only if the item is switched relative to its parent (see the section called “Traversing Branches”):
' '
Item is a child of its parent directory.
'S'
Item is switched.
The sixth column is populated with lock information:
' '
When --show-updates
(-u
) is used, this means 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.
'K'
File is locked in this working copy.
'O'
File is locked either by another user or in
another working copy. This appears only when
--show-updates
(-u
) is used.
'T'
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.
'B'
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:
' '
Item is not the victim of a tree conflict.
'C'
Item is the victim of a tree conflict.
The eighth column is always blank.
The out-of-date information appears in the ninth
column (only if you pass the
--show-updates
(-u
)
option):
' '
The item in your working copy is up to date.
'*'
A newer revision of the item exists on the server.
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.
The working copy path is always the final field, so it can include spaces.
This is the easiest way to find out what changes you have made to your working copy:
$ svn status wc M wc/bar.c 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
Note | |
---|---|
|
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 <?xml version="1.0"?> <status> <target path="wc"> <entry path="qax.c"> <wc-status props="none" item="added" revision="0"> </wc-status> </entry> <entry path="bar.c"> <wc-status props="normal" item="modified" revision="965"> <commit revision="965"> <author>sally</author> <date>2008-05-28T06:35:53.048870Z</date> </commit> </wc-status> </entry> </target> </status>
For many more examples of svn status, see the section called “See an overview of your changes”.