Recently I have to work with perforce, and encounter some problem I never met in git. When I am using git, I will make commits corresponding to functional changes before pushing to the remote. I may later squash some commits and push, since the upstream may require a complete set of functional units.
However, when working with perforce, seems that I cannot achieve the above. Seems that a file can only exist in a pending changelist, while I want to store the changes in several pending changelists before submitting. For example, I want to have function A, B, C in a file staged into three commits in git. In perforce, I cannot find a way to do it unless I submit a changelist containing A first, and submit a changelist containing B, and then C.
My problem seems to be similar to this one, but it is already two years before and I am wondering if there is new or better approach to do it.
Update: Perforce website said that p4sandbox provides off-line work similar to git. Can I use this to achieve my goal?