What does the E status code in SVN mean?
Asked Answered
S

2

26

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
Stoddard answered 11/10, 2011 at 17:20 Comment(0)
M
20

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.

Mor answered 11/10, 2011 at 18:32 Comment(1)
Additionally, the E status will be seen during an update of a file external. In this case the E status is standard behaviour, no --force flag required.Dildo
M
6

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."

Melamie answered 11/10, 2011 at 18:30 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.