svn status prints all files that have local modifications. By default, the repository is not contacted. While this subcommand accepts a fair number of options, the following are the most commonly used ones:


Contact the repository to determine, and then display, out-of-dateness information.


Show all entries under version control.


Run non-recursively (do not descend into subdirectories).

The status command has two output formats. In the default “short” format, local modifications look like this:

$ svn status
M      foo.c
M      bar/baz.c

If you specify the --show-updates (-u) option, a longer output format is used:

$ svn status -u
M            1047   foo.c
       *     1045   faces.html
       *            bloo.png
M            1050   bar/baz.c
Status against revision:   1066

In this case, two new columns appear. The second column contains an asterisk if the file or directory is out-of-date. The third column shows the working-copy's revision number of the item. In the example above, the asterisk indicates that faces.html would be patched if we updated, and that bloo.png is a newly added file in the repository. (The absence of any revision number next to bloo.png means that it doesn't yet exist in the working copy.)

At this point, you should take a quick look at the list of all possible status codes in svn status. Here are a few of the more common status codes you'll see:

A    Resource is scheduled for Addition
D    Resource is scheduled for Deletion
M    Resource has local Modifications
C    Resource has Conflicts (changes have not been completely merged
       between the repository and working copy version)
X    Resource is eXternal to this working copy (may come from another
       repository).  See the section called “Externals Definitions”
?    Resource is not under version control
!    Resource is missing or incomplete (removed by another tool than

For a more detailed discussion of svn status, see the section called “See an overview of your changes”.