[jira] [Commented] (SVN-3625) Commit shelving
"Julian Foad (JIRA)" <[email protected]>
| Newsgroups | gmane.comp.version-control.subversion.issues |
|---|---|
| Message-ID | <[email protected]> |
[ https://issues.apache.org/jira/browse/SVN-3625?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16771224#comment-16771224 ]
Julian Foad commented on SVN-3625:
----------------------------------
Started: Shelving "v3", currently on "shelving-v3" branch.
Uses complete real WCs for storage, using the abstract "editor API" to transfer the modifications both ways. Thanks to this storage, shelf "diff" and "status" functions work properly "for free".
I'm currently working on a proper interface for copying the WC base state to the shelf.
> Commit shelving
> ---------------
>
> Key: SVN-3625
> URL: https://issues.apache.org/jira/browse/SVN-3625
> Project: Subversion
> Issue Type: Improvement
> Components: libsvn_client
> Affects Versions: trunk
> Reporter: C. Michael Pilato
> Assignee: Julian Foad
> Priority: Major
> Labels: api, needsdesign
> Fix For: unscheduled, 1.12.0
>
>
> (i) See the wiki pages: [Shelving and Checkpointing|https://cwiki.apache.org/confluence/display/SVN/Shelving+and+Checkpointing]
> Developers often need to temporarily put aside in-process working copy changes to begin some other usually-short-lived task. You know the routine. You're halfway through the implementation of a medium-sized feature when – stop the presses! A customer just found a mission-critical bug in the app!
> Current workarounds include:
> * create a branch; switch to branch; commit unfinished primary task code to branch; switch back; handle and commit secondary task; merge from branch; resume primary task.
> * use 'svn diff' to make a patchfile for primary task work; svn revert -R; handle and commit secondary task; use 'svn patch' to recreate local primary task mods; deal with all the stuff (copies and moves, directories, etc.) that 'patch' can't represent; resume primary task.
> A better approach that avoids the need to create server branches and to marshal/unmarshal changes away from Subversion would be to support 'svn shelve/unshelve' commands, where "shelve" means "squirrel away my changes into the working copy metadata and revert them from the WORKING tree " and "unshelve" means "merge the changes I previously squirreled away back into my WORKING tree".
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)