Perforce: moving unsubmitted changes to a different stream

perforce, perforce-stream

Solution

You can use the p4 unshelve command to remap the shelved files in a changelist to another stream using the -S option. Ex:

p4 unshelve -s <changlist#-with-shelved-files> -S //depot/streamname

Not sure if this is only available in a certain version or above or not. However, we were unable to find a way to do it through P4V.

Problem

Is there a good way in Perforce to move unsubmitted changes to a different stream before submitting them (equivalent of `git stash`, `git checkout otherbranch`, `git stash pop`)? I currently have the files checked out locally (non-exclusively) and edited. I've tried shelving them and then trying to unshelve them into the target stream, but I get "file(s) not in client view". When I view the changelist (shelved or not), the files all have paths that include the original stream. My target stream is one I just created, parented off the original stream. I'm using P4V. The version of Perforce Visual Components I have installed is 123.57.9578, and when I run p4 from the command line, it says "Server 2012.2/551823". I can add more info if necessary.

Original source