Search code examples
svntortoisesvnshelving

TortoiseSVN shelve uploads data


Per the docs:

Shelves are purely a local client feature

Why then does it upload megabytes of data?

TortoiseSVN shelve upload progress dialog

217 MB transferred, even though my shelved files when Exported amount to 0.7 MB.

How does shelving work in svn? Does it create an invisible branch on the server?

I imagined shelve to be an equivalent of git stash. If that's not the case, is there a local-only equivalent in svn?


Solution

  • Documentation is right: shelving happens entirely inside your working copy. In current Subversion release (1.12.2) you can find the actual data at .svn\experimental\shelves\v3. The dialogue is not using the verb "to transfer" to imply networking.

    If you're unsure and want to verify it by yourself you just need to disconnect your PC from the network or disable access to the remote repository.

    As the path highlights it's still an experimental feature and in fact the format has been changing a lot. Currently it seems to be like a second working copy; in earlier releases it was like a patch collection. Today's format seem to contain a lot of duplicate information, thus the total size.


    Note: as of Subversion/1.13.0, svn help no longer lists experimental commands —such as shelving-related ones— by default; you need the -v flag:

    Use '-v' to show experimental subcommands