mchr
mchr

Reputation: 6251

Svn revert all properties changes

I have a svn working copy which I attempted to reverse merge a couple of recent revisions into. I cancelled the merge before it completed as I changed my mind. Now my working copy has a couple of thousand "changes" from updates to the ancestry related properties on most of the files. I have about 10 files with real code changes mixed in which I don't want to have to seperate out by hand.

Is there a way for me to revert all of the property changes without affecting the content changes?

Upvotes: 32

Views: 15312

Answers (6)

TheJuice
TheJuice

Reputation: 4484

If you use the revert option --depth empty, you'll revert changes only to paths explicitly specified on the command line and not recursively. So if those changes are property changes, that will be the only thing you revert.

Example: if you have the directory foo with unwanted property changes, but its content has modifications, the following will revert the property changes, but keep the modifications of its content:

$ svn revert --depth empty foo

as is demonstrated here:

$ svn status foo
 M      foo
M       foo/bar
$ svn revert --depth empty foo
$ svn status foo
M       foo/bar

Upvotes: 22

Jerome Jaglale
Jerome Jaglale

Reputation: 1873

svn revert `svn status | grep '^ M' | sed 's/^ M \+//g'`

Upvotes: 33

Shaun Luttin
Shaun Luttin

Reputation: 141452

Revert all property changes with PowerShell.

> @(svn status) -match '^ M' | `
>>> % { ($_ -split 'M\s+')[1] } | `
>>> % { svn revert --depth empty $_ }

Credit to Jerome Jaglale and TheJuice for the general approach.

Note the backtick ` symbol indicates a new line.

Upvotes: 1

user5171304
user5171304

Reputation: 1

You can submit your changes and then revert the property changes from that revision:

svn merge -c -REV -depth empty

where REV is the revision where you want to revert the property changes

Upvotes: 0

mchr
mchr

Reputation: 6251

Turns out that Tortoise SVN can do this really nicely. In the commit dialog you can sort the "modified" files by "text status" or "properties status". I simply sorted by text status and then reverted all the "modified" files which had "normal" "text status".

Upvotes: 9

ryanprayogo
ryanprayogo

Reputation: 11817

I would just copy/backup the 10 files with the real code change somewhere else, and just svn revert -R the whole project, then copy back the 10 files.

Upvotes: -4

Related Questions