This is an initial attempt at adding an unshelve command to git-p4. For those not familiar with it, p4 shelve creates a "pending" changelist, which isn't committed into the central repo but is nonetheless visible to other develoeprs. The "unshelve" command takes one of these pending changelists and applies it to your repo. It is used quite a lot for code review.
git-p4 learned about shelving changelists recently; this completes the picture by letting you unshelve them as well. This was inspired by the stackoverflow answer here: https://stackoverflow.com/questions/41841917/git-p4-how-to-fetch-a-changelist The secret is to use the "p4 print file@=N" syntax to get the contents of a shelved changelist, which has long perplexed me. I haven't used this a great deal, so it may still have a few rough edges. In particular, it currently puts the unshelved commit into refs/remotes/p4/unshelved/<N> where <N> is the changelist being unshelved. That might not be the best way to do this. Luke Diamand (1): git-p4: add unshelve command Documentation/git-p4.txt | 22 ++++++++ git-p4.py | 128 +++++++++++++++++++++++++++++++++++------------ t/t9832-unshelve.sh | 67 +++++++++++++++++++++++++ 3 files changed, 186 insertions(+), 31 deletions(-) create mode 100755 t/t9832-unshelve.sh -- 22.214.171.1242.gc310869385