- <html>
- <head>
- <title>The Branching Papers -- Perforce FAQs</title>
- <head>
- <body bgcolor=#ffffff>
- <font size=-2><b><a href="branching.html#br02">[INDEX]</a></b></font>
- <p>
- <b>
- We tried to integrate a single change from one branch to
- another but in the resolve step we saw hundreds of deltas
- that weren't in this change. Why was this?
- </b>
- <blockquote>
- Assume @123 is a changelist that was a bug fix in //depot/6.0.
- And assume you used:
- <pre>
- p4 integ //depot/6.0/...@123,@123 //depot/6.0.1/...
- </pre>
- to propagate the bug fix from //depot/6.0 to //depot/6.0.1.
- <p>
- Using "@123,@123" as a revision spec in <b>p4 integrate</b>
- is saying "integrate
- from @123 to @123", which limits it to only the deltas associated with
- changelist @123.
- <p>
- However, if this is a "leapfrogging integration" (that is, there are
- changelists previous to @123 which are NOT being integrated) then the
- <b>p4 resolve</b> step can be confusing unless you know what's happening.
- <p>
- The thing you have to look out for is that <b>p4 resolve</b> always uses
- the rev previous to the "from rev" to do the 3-way merge.
- <p>
- I'm sure that didn't make any sense, so here's an illustration.
- Say //depot/6.0.1 is only integrated with //depot/6.0, up as far as @100
- in //depot/6.0. Now you do a
- <pre>
- p4 integ //depot/6.0/...@123,@123 //depot/6.0.1/...
- </pre>
- Let's see what
- happens to //depot/6.0/foo.c:
- <p>
- <ul>
- <p><li>
- //depot/6.0/foo.c is being integrated into //depot/6.0.1/foo.c
-
- <p><li>
- the 'yours' file in the <b>p4 resolve</b> will be //depot/6.0.1/foo.c at
- its current revision on your client
-
- <p><li>
- the 'theirs' file in the <b>resolve</b> will be //depot/6.0/foo.c@123
-
- <p><li>
- BUT LOOK: the 'base' file will be //depot/6.0/foo.c@122
-
- </ul>
- <p>
- This means that fixes in 6.0/foo.c after @100 and before @123 will appear
- as "backing out" diffs in the resolve step. When you look at the
- 'diff yours' output, all deltas from @101 to @122 will look like they're
- being backed out of the 6.0.1/foo.c file.
- <p>
- The thing is, even though the diffs LOOK like they're being backed out,
- they're not really, because they were never in the 6.0.1/foo.c file to begin
- with. But since they're in the base file, you see them in the resolve
- process.
- <p>
- As long as you expect this, it's not a problem, but most people are
- completely thrown the first time they see it. (That's why I usually try
- to discourage shops from doing leapfrogging integrations, but sometimes they
- just can't be avoided.)
- </blockquote>
- <p>
- <i>(March 1998)</i>
- <p>
- <font size=-2><b><a href="branching.html#br02">[INDEX]</a></b></font>
-
- <hr>
- <h6>This is file $Id: //guest/laura_wingerd/perforce/faq/br02.html#2 $ in the
- <a href="http://public.perforce.com/public/index.html">
- Perforce Public Depot</a></h6>
- </body>
- </html>