Your browser was unable to load all of the resources. They may have been blocked by your firewall, proxy or browser configuration.
Press Ctrl+F5 or Ctrl+Shift+R to have your browser try again.

Quickbuild Shelved Chanes Perforce #34

orgas002 ·

I have an interesting situation where a team member of mine is submitting a changelist but it pulls all other changelist as well. It then errors out the build b/c it says:

Failed to run command: p4 -p server:port -u username -P ****** -c qb-quickbuild submit -e 1097919
Command return code: 1
Command error output: Out of date files must be resolved or reverted.
Submit failed -- fix problems above then use 'p4 submit -e 1097919'.
1097919

When the changelist she submitted was a different number. Looking at the shelved changes it also displays changes that were old and weren't even modified.

Any help would be great.

Thanks.

  • solved #10
  • replies 9
  • views 2401
  • stars 0
orgas002 ·

So we got it down to this issue:

  1. If the user has has a changelist with shelved files that is an older revision of the changelist that he/she is submitting, it will error out this output.

Is this meant to be built like this? We shelve files to keep track of the projects that we have in mind and later put it off and i'm wondering if there is an option to only pull the direct changelist number instead of looking for files associated with what is being modified.

Thanks

robinshen ADMIN ·

The mentioned changelist "1097919" is either specified by the user or is detected by QB. For the latter case, user does not specify any change list for shelve build, and QB uses all available shelved change lists of that user.

Perforce complains this error while submitting the change, and I guess QB can not do anything here.

orgas002 ·

Ah, so to clarify:

  1. Quickbuild will grab all the Shelved Changelist a user has if we set up the repo to grab shelved files.
  2. Regardless if given a specified ChangeList and logic is given inside the build set up to only pull the specified change list given by the user, QuickBuild will still pull all the shelved files that the user has.

Correct me if i'm wrong, either way, clarifaction to this would be great.

Thanks

robinshen ADMIN ·
  1. When no shelved change list is specified, QB will apply all shelved changes to the workspace of the user (as specified in shelve support definition, and can be changed at run time via variables), and will submit all of them if submit condition matches
  2. When a specific change list is specified, QB will only operate on the specified change list (unshelve, submit etc)

Do you mean that QB operates on a different change list even if you specified a particular change list in shelve support definition?

orgas002 ·

Yes, QB Operates on all the change list, even if I specified a particular change list.

I have set it up where the user has to enter in the change list number from variable input, and then during checkout phase inside Repo tab of Quickbuild, I have set it up where it pulls the vars.ShelveChangeList that I have set up.

However, it pulls all shelved changes of the user, rather than just that singular change list.

robinshen ADMIN ·

Which QB version are you using?

orgas002 ·

Currently using: PMEase QuickBuild, 9.0.20, 2019-08-29, COMMUNITY LICENSE

Note that this only happens when we shelve changes of a file, then later submit the same file with different changes, keeping the older one shelved. It then pulls the older shelved change list, outputting the error:

Command return code: 1
Command error output: Out of date files must be resolved or reverted.
Submit failed -- fix problems above then use 'p4 submit -e 1097919'.
1097919

Also note that we didn't submit the changelist number for the above error, we submitted a different change list number, but for some reason, it pulled all shelved changes with modifications in it.

robinshen ADMIN ·

I tested here and it works fine. I am testing with QB 9.0.20 and Perforce 2016.2. Below is my procedure:

  1. Check out and edit a file say "myfile.txt", and add a line
  2. Shelve the change and get a change list, say 100
  3. After shelving, "myfile.txt" gets reverted. Now check it out again and edit to add another line
  4. Shelve above change again to get another change list, say 101
  5. Add a perforce repository in QB, and enable option "merge with shelve", and specify the change list 101 in shelved changes field.
  6. Add a step to checkout the repository
  7. Run build, and change list 101 will be submitted successfully after build completion. The build itself is also successful

Can you please test with this simple procedure to see if it works at your side?

orgas002 ·

Hi Robin,

Sorry for the late follow-up, busy over here.

Following your procedure, I realized that I forgot to provide: ${vars.getValue("shelvedChanges")} inside Merge with Changes.
Doing so, allowed the pull of the particular CL.

SOLUTION: Provide a variable value (${vars.getValue("shelvedChanges")}) inside the option if "Shelved Changes"

Thanks for your help :)