Given the case I made two independent changes in one file: eg. added a new method and changed another method.
I often don\'t want to commit
I have done this using TortoiseSVN.
The built in merge utility allows you to show a diff between the repository version and your working copy.
Use the create backup function of the diff utility
You should now have all your changes committed, using two separate commits.
I think an easier option than generating diff files, reverting, etc, would be to have two copies of the repository checked out, and use a visual diff tool like DeltaWalker to copy hunks from one to the other.
The first copy would be the one you actually work off of, and the second would just be for this purpose. Once you've made a ton of changes to the first, you can copy one section over to the second, commit it, copy another section, commit it, etc.
With git-svn you can make a local GIT repository of the remote SVN repository, work with it using the full GIT feature set (including partial commits) and then push it all back to the SVN repository.
git-svn (1)
Tortoise SVN 1.8 now supports this with it's "Restore after commit" feature. This allow you to make edits to a file, with all of the edits being undone after the commit
Per the documentation:
To commit only the parts of the file that relate to one specific issue:
- in the commit dialog, right-click on file, choose "restore after commit"
- edit the file in e.g. TortoiseMerge: undo the changes that you don't want to commit yet
- save the file
- commit the file
Try VisualSVN for Visual Studio. The latest 6.1 release introduces the QuickCommit feature. You can partially commit selected changes in a file using the new Commit this Block and Commit Selection context menu commands in the Visual Studio editor.