SVN status codes
Running the status command in the command line version of subversion returns a list of files with a one letter code in front of each file name. Here’s a list of those one letter codes and what they mean.
svn status
M src/index.php (etc)
The first six columns in the output are each one character wide, and each column gives you information about different aspects of each working copy item. With –show-updates, add working revision and server out-of-date information.
SVN Status first column: A, D, M, R, C, X, I, ?, !, ~
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 related to 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 different kind of object.
SVN Status second column: M, C
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.
SVN Status third column: L
The third column is populated only if the working copy directory is locked (an svn cleanup should normally be enough to clear it out)
- ‘ ‘
- Item is not locked.
- ‘L’
- Item is locked.
SVN Status fourth column: +
The fourth column is populated only if the item is scheduled for addition-with-history.
- ‘ ‘
- No history scheduled with commit.
- ‘+’
- History scheduled with commit.
SVN Status fifth column: S
The fifth column is populated only if the item’s working copy is switched relative to its parent
- ‘ ‘
- Item is a child of its parent directory.
- ‘S’
- Item is switched.
SVN Status sixth column: K, O, T, B
The sixth column is populated with lock information.
- ‘ ‘
- When –show-updates is used, the file is not locked. If –show-updates 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 only appears when –show-updates 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 only appears when –show-updates 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 only appears when –show-updates is used.
SVN Status seventh column: *
The out-of-date information appears in the seventh column (only if you pass the –show-updates switch).
- ‘ ‘
- The item in your working copy is up-to-date.
- ‘*’
- A newer revision of the item exists on the server.
Hello there, just an FYI. Your heading for the sixth columns says “SVN Status fifth column: K, O, T ,B” instead of “SVN sixth column: K, O, T, B”
Thanks Lars, fixed that!
It’s very good and with clarity
Came across this site when looking for information on the L status code. Great writeup. Just a small correction: it’s svn cleanup not svn clean.
Cheers!
And so it is! Thanks for pointing it out, fixed it now.
Thanks for the detailed list!
The heading “SVN Status seventh column: K, O, T, B” is still wrong.
And so it was, thanks for pointing it out.