For partitioning a bigger commit into compilable portions, I decided
to shelve[1] all files but one unit (say A.cpp
and A.h
).
To get rid of trivial errors in a related file (say R.cpp
) that was also shelved, I made a few changes to it. After fixing the errors, I committed the first portion, including the minor changes
in R.cpp
.
I unshelved the remaining files as to get the next portion done. I got a file conflict in R.cpp
that I expected to be resolved by one click.
There are these options:
- Resolve conflict using 'theirs'
- Resolve conflict using 'mine'
TortoiseSVN explains mine as uncommitted changes in my working copy and theirs as committed changes in the repository (don't remember where).
Since I knew that I committed the changes in R.cpp
, I chose mine to get the shelved version. But this turned out to be wrong.
Is there an explanation that helps to prevent future confusion?
[1] TortoiseSVN (1.14.*) provides a working shelving feature, they explain:
The shelving feature is still marked as experimental.
That means that while shelving works as advertised, it is still in a stage where it's heavily improved and worked on. That also means that there's no guarantee that the shelves you create are upwards compatible and future versions might not be able to use them. And of course the UI might change as well in future versions to accommodate new features and behaviors.