[ 
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)

Reply via email to