2

Hi I have two p4 clients, say client_a and client_b.

I made a shelf in client_a by:

$> p4 shelve ...

and I got a shelf CL 123456.

Then I want to unshelve the changes in client_b, but I want to keep the same CL# there.

The following command doesn't work:

$> p4 unshelve -s 123456 -c 123456
Change 123456 belongs to client client_a

How can I achieve that?

(FWIW, the reason I want to keep the CL# is because if I make further changes in client_b, I want to be able to archive the changes in the same CL# by

$> p4 shelve -r -c 123456

because multiple people are relying on the same CL# to get their work done. I don't want to create a new CL# and pass it around among many collaborators.)

Hope I made myself clear enough. Thanks in advance.

yzhang
  • 104
  • 1
  • 5
  • I don't think you can keep the same changelist but you can carry your shelve as described here: https://stackoverflow.com/questions/20948905/how-to-unshelve-a-shelved-changelist-to-another-branch-prior-to-perforce-2013 – Ricky Levi Feb 20 '22 at 11:09

1 Answers1

2

While it is technically possible to accomplish this by changing ownership of the shelf, it's the wrong tool for the job, like using the butt end of a screwdriver to pound a nail in. You almost might as well give up using version control and just email the files to each other.

Submit this change to a branch that all of the collaborators can access. This will allow everyone's work to be versioned. Shelves are not versioned and are generally only suitable for workflows that involve a single author and little or no iteration (e.g. reviewing or backing up a one-off change).

Samwise
  • 68,105
  • 3
  • 30
  • 44