Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What does the E status code in SVN mean?

Tags:

svn

subclipse

I just got SVN's E status code for the first time. What does it mean? The update documentation says that it stands for "Existed," but gives no more detail than that.

Alternately, what is an "obstructing path"? The long help file states that "Obstructing paths are reported in the first column with code 'E'."

Some background: I deleted a file from my working copy that I shouldn't have deleted. Updating from SVN didn't restore it, so I created a new file with the same filename and copy-pasted the repo copy of the file into it.

I then added it to version control, but that gave it the "versioned file that needs to be added to the remote repository" status, not the "no local changes" status.

Using Subclipse, I selected Replace With > Latest from Repository on the parent folder, and this happened:

revert -N C:/foo/Bar.java
    Reverted C:/foo/Bar.java
update C:/foo/Bar.java -r HEAD --force
    E   C:/foo/Bar.java
    Updated to revision 396.
    ===== File Statistics: =====
    Existing: 1
like image 681
Pops Avatar asked Oct 11 '11 17:10

Pops


2 Answers

An "obstructing path" refers to an existing unversioned file or folder at a path where the update command needs to copy a versioned file or folder.

The E status only appears when the --force flag is used, without the flag the update would just fail. With the flag, it leaves the file alone and allows you to decide what to do with it.

The puzzling thing about this situation is how it ended up thinking the file was unversioned immediately after a successful revert.

Ref: svn help update

If the obstructing path is the same type (file or directory) as the corresponding path in the repository it becomes versioned but its contents are left 'as-is' in the working copy.

like image 196
Kevin Stricker Avatar answered Dec 09 '22 08:12

Kevin Stricker


E = File existed before the update.

http://plind.dk/2009/06/26/svn-status-cheatsheet/

"Unversioned obstructing paths in the working copy do not automatically cause a failure if the update attempts to add the same path. If the obstructing path is the same type (file or directory) as the corresponding path in the repository it becomes versioned but its contents are left 'as-is' in the working copy. This means that an obstructing directory's unversioned children may also obstruct and become versioned. For files, any content differences between the obstruction and the repository are treated like a local modification to the working copy. All properties from the repository are applied to the obstructing path. Obstructing paths are reported in the first column with code 'E'.

Use the --set-depth option to set a new working copy depth on the targets of this operation."

like image 39
Watermark Studios Avatar answered Dec 09 '22 09:12

Watermark Studios