>> Oh, I wish that SVN could start supporting shelving of
>> changelists natively!
>May be i don't understand what you are talking about, but what exactly
>did you mean with "...shelving of changelists..." ?
I heard about the concept first from microsofts new source control server, team foundation server. Wikipedia defines shelving of changelists as "shelving is a way to save a set of pending changes without committing them to source control, while still making them available to other users". Technically microsofts solution is equivalent to a branch.
When I think about shelving changes, I mostly think about doing it locally.
For example:
You are working on some task in your WC, lets call it task A, but sudenly priotities change. You have to switch to another task now, lets call it task B, and finish task A first when task B is finished.
In SVN you can solve this in three ways (that I'm aware of):
1.) Create a branch from your WC. Revert your WC. Finish task B in WC. Switch WC to the branch. Finnish task A in WC. Reintegrate branch to trunk. Delete branch. Switch WC back.
2.) Check out a new WC for task B. Finish task B in new WC. Delete new WC. Finish task A in original WC.
3.) Create a patch from the changes in your WC. Revert your WC. Finish task B in WC. Apply patch to WC. Finnish task A in WC.
So, whats wrong with the present alternatives? Well, nr 1 is a bit overkill if the tasks are small. You will end up doing quite a few operations to manage your shelving until you are done. Nr 2 is simple if the WC:s are small. But if you have largish or potentially huge WC:s, it's a real pain. How about nr 3 then? I think that it's closest in terms of convenience, but it's still quite many steps, and you have to manually manage where you keep your patches and how you name the files so that you can find them again...
With shelving support, the workflow would look like this:
S.) Shelve changes in your WC. Finish task B in WC. Unshelve changes.
Much smoother.
If we ignore the part about sharing shelved data it would be enough if the shelved data was saved in the working copy, and technically it would be equivalent to the creating patch-solution described above, with all it's benefits.
When I think about it, I guess it would be possible to let TSVN have a patch-store right alongside the log-cache. The patch-store could contain patches, each with a description and a reference to what WC (and repo-path and revision) it was created from.
Hans-Emil
------------------------------------------------------
http://tortoisesvn.tigris.org/ds/viewMessage.do?dsForumId=757&dsMessageId=1893549
To unsubscribe from this discussion, e-mail: [dev-unsubscribe_at_tortoisesvn.tigris.org].
Received on 2009-04-24 17:03:27 CEST