Jump to content


Why do files end up with open records of pending integrations even after resolve shows everything resolved

integrate

  • Please log in to reply
1 reply to this topic

#1 engr.vns

engr.vns

    Advanced Member

  • Members
  • PipPipPip
  • 37 posts

Posted 29 June 2020 - 08:09 AM

Assume the there is a donor project (projectD) and a receiver project (projectR)
Files have been integrated from projectD into projectR as -

sc integrate <projectD>/... <projectR>/...
sc resolve -at //Accept everything that has come from projectD

sc resolve -n //... check whether there is anything to resolve in projectR

Now, some of the files will need to have some custom changes that come from a shelf.

So in projectR the user does -
sc unshelve -s <shelf> //This should open up the files for edit and and overwrite the integration with changes from the shelf.
sc revert -a //... //Revert any unchanged files in projectR

Again check that there is nothing to resolve and submits it...(Clxxx)

To cross-check that everything is clean, the user in a new client refreshes the WA (which includes the changes he submitted earlier) and re-unshelves the same shelf..

The files that were unshelved are reported as "pending integration"?
And the changes from the shelf are missing in projectR.

In the sequence of operations above, why would this happen?
After-all resolve reported everything was clean...

Is the method to override the some of the integration with changes from the shelf the issue...?
What is wrong here...

Thanks,

#2 Sambwise

Sambwise

    Advanced Member

  • Members
  • PipPipPip
  • 1146 posts

Posted 29 June 2020 - 03:10 PM

Quote

sc unshelve -s <shelf> //This should open up the files for edit and and overwrite the integration with changes from the shelf.
sc revert -a //... //Revert any unchanged files in projectR

Again check that there is nothing to resolve and submits it...(Clxxx)

This sounds wrong.  If the shelf contains files that are already open (in this case they'd be open for integrate), a resolve should be required to merge the shelf's changes with the pending changes in the workspace.

If you wanted to make sure that the thing you just submitted includes the shelved changes, you could "p4 diff" vs the shelved revision before submitting (or for that matter "p4 diff -f" or "p4 diff2" after submitting).

Quote

To cross-check that everything is clean, the user in a new client refreshes the WA (which includes the changes he submitted earlier) and re-unshelves the same shelf..

What's a WA?  ("Work Area", i.e. workspace?)  Does "refresh" include syncing the head revision?

This workflow makes no sense, because the changes have already been submitted.  Why unshelve an old version of the changes to "cross-check" them?  After submitting the changes from a shelf, you'd usually just delete the shelf.  Syncing the submitted revision should be all you need to do to get those changes.

Run "p4 resolve -n" to see what it is that needs resolve.  I could make some guesses, but there's a lot that I don't know about what the user is doing.  It sounds like they may have opened the files before doing the unshelve, in which case they'd need to resolve the shelf vs their workspace in order to get those changes.  This does not explain why the changes wouldn't have been pulled down by a sync (unless the files were also open prior to the sync, in which case the sync itself would also schedule resolves for those files, so nothing would modify the workspace copies but you'd end up with two pending resolves per file that each contain the same changes), but I also don't actually know whether they even did a sync in the first place.  Too many variables to cover!  :)

Quote

Is the method to override the some of the integration with changes from the shelf the issue...?

Combining the copy with the unshelved changes (which could include anything) is definitely a potential source of complexity -- it in theory should all work, but if something goes wrong it's a lot harder to decipher the history when you have multiple operations mushed into one revision.  If at all possible I'd do the copy first, submit it, and THEN do the unshelve rather than squashing the two operations into one changelist.





Also tagged with one or more of these keywords: integrate

0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users