What does a TortoiseSVN cleanup actually do?

SvnTortoisesvn

Svn Problem Overview


What does a TortoiseSVN cleanup actually do?

I have not found a pattern, but I frequently get asked to do a "cleanup" while trying to commit code.

If TortoiseSVN knows when it's dirty, why doesn't it run a cleanup itself?

Svn Solutions


Solution 1 - Svn

Edit: I think it's not automatic as it needs to abort operations and unlock the working copy in /path.

Subversion book:

> Recursively clean up the working copy, > removing locks and resuming unfinished > operations. If you ever get a working > copy locked error, run this command to > remove stale locks and get your > working copy into a usable state > again. ” Note that in this context > lock refers to local filesystem > locking, not repository locking.

It's basically a way of trying to recover any errors that occur with SVN.

Documentation on cleanup:

http://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-dug-cleanup.html

> "If a Subversion command cannot > complete successfully, perhaps due to > server problems, your working copy can > be left in an inconsistent state. In > that case you need to use TortoiseSVN > → Cleanup on the folder. It is a good > idea to do this at the top level of > the working copy. > > Cleanup has another useful side > effect. If a file date changes but its > content doesn't, Subversion cannot > tell whether it has really changed > except by doing a byte-by-byte > comparison with the pristine copy. If > you have a lot of files in this state > it makes acquiring status very slow, > which will make many dialogs slow to > respond. Executing a Cleanup on your > working copy will repair these > “broken” timestamps and restore status > checks to full speed."

Solution 2 - Svn

It puts duct tape over bugs and a dumb architecture in SVN which allow the working copy to be corrupt.

It's not automatic for dumb architecture reasons and because it takes FOREVER. Of course, when SVN got popular its architecture was miles ahead of CVS.

Solution 3 - Svn

It looks for inconsistencies. From the docs:

> If a Subversion command cannot > complete successfully, perhaps due to > server problems, your working copy can > be left in an inconsistent state. In > that case you need to use TortoiseSVN > → Cleanup on the folder. It is a good > idea to do this at the top level of > the working copy. > > Cleanup has another useful side > effect. If a file date changes but its > content doesn't, Subversion cannot > tell whether it has really changed > except by doing a byte-by-byte > comparison with the pristine copy. If > you have a lot of files in this state > it makes acquiring status very slow, > which will make many dialogs slow to > respond. Executing a Cleanup on your > working copy will repair these > “broken” timestamps and restore status > checks to full speed.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionJohn BView Question on Stackoverflow
Solution 1 - SvnAndrewView Answer on Stackoverflow
Solution 2 - SvnDustin GetzView Answer on Stackoverflow
Solution 3 - SvnBen SView Answer on Stackoverflow