Jump to content


Reviving a child stream -- something went wrong or I need more sleep


  • Please log in to reply
3 replies to this topic

#1 Jeff Varga

Jeff Varga

    Member

  • Members
  • PipPip
  • 15 posts

Posted 11 October 2018 - 08:41 AM

We have two streams, let's call them "main" and "child".  "main" is a mainline, and "child" is a development branch, parented to "main".  Pretty simple.

"child" has existed for a while and was unused for about a year.  Due to many integrates across many streams, we decided to sync up "child" by doing a "p4 copy" from "main".  The command used to make "child" look like "main" was:

p4 copy -S //stream/child -r -F ...

And like magic, "child" looked exactly like "main", complete with proper integration history.

However, in preparation for opening the stream to the team I ran "p4 merge" and to my surprise, every file that was not touched by "p4 copy" (meaning: every file that was not touched between the last time the stream was active and now) suddenly spammed my console.  Super surprised, I reverted the merge and tried old faithful:

p4 integrate //stream/main/... //stream/child/...
All revision(s) already integrated.

p4 interchanges -r -S //stream/child
All revision(s) already integrated.

What am I missing?

#2 Sambwise

Sambwise

    Advanced Member

  • Members
  • PipPipPip
  • 664 posts

Posted 11 October 2018 - 07:27 PM

Are you positive that you reverted the "merge" operation in between those commands?  The pending integration records would count as credit for the subsequent "p4 integrate" command and make everything show as up to date.  And did you run the "merge" command with the same two filespec args you ran the "integrate" with, or did you use the stream syntax that you used for the copy (and could the stream view be more complex than what you provided to "p4 integrate"?)

That aside, the only thing I can think off offhand that'd be different between standard "integrate" and "merge" would be if you've set the configurable dm.integ.engine=2 (which IIRC "p4 merge" will ignore but "p4 integrate" will not).  The other integrate/merge differences shouldn't be a factor here.

Of course, a lot depends on your server version, the history of the files, knowing what exactly "p4 merge" produced, etc etc etc.

#3 Jeff Varga

Jeff Varga

    Member

  • Members
  • PipPip
  • 15 posts

Posted 12 October 2018 - 05:57 PM

100% positive the merge was reverted (p4 revert -w ...) -- I just left it out of my comments above.

I ended up just doing a "null integrate" to clean up the integrate relationships.  But i'm still paranoid about what went wrong.

dm.integ.engine is not set, so we're using 3.

#4 Sambwise

Sambwise

    Advanced Member

  • Members
  • PipPipPip
  • 664 posts

Posted 12 October 2018 - 07:00 PM

View PostJeff Varga, on 12 October 2018 - 05:57 PM, said:

I ended up just doing a "null integrate" to clean up the integrate relationships.  But i'm still paranoid about what went wrong.

First step for me in figuring out "why'd integrate do that?" is always to look at Revision Graph (well, ever since 2004 it has been -- prior to that I had to draw it on a whiteboard, but you get what I mean, pictures are helpful :) ).




0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users