1 message in com.perforce.perforce-user[p4] Does "Reverse Integration" reall...
FromSent OnAttachments
Rob Jellinghaus14 Jul 2000 14:06 
Subject:[p4] Does "Reverse Integration" really do anything?
From:Rob Jellinghaus (Rob.@quokka.com)
Date:07/14/2000 02:06:41 PM
List:com.perforce.perforce-user

OK, I have now established that I am definitely confused by Perforce's integration behavior.

I established one mainline test directory and one branch test directory: //depot/test_data/test/mainline/... //depot/test_data/test/branch/...

with a branch spec reading (of course) //depot/test_data/test/mainline/... //depot/test_data/test/branch/...

I created two files in mainline, foo.txt and bar.txt. Submitted. Integrated with the branch spec. Submitted. Edited foo.txt in the mainline, and bar.txt in the branch. Submitted.

Now, when I do an integrate (via p4win), *whether or not I have the "reverse integration" checkbox checked*, I get:

STATUS: Integrate preview: //depot/test_data/test/branch/foo.txt#1 - integrate from //depot/test_data/test/mainline/foo.txt#2 STATUS: Integrate preview: //depot/test_data/test/mainline/bar.txt#1 - integrate from //depot/test_data/test/branch/bar.txt#2

In other words, the setting of the "reverse integration" checkbox seems to make *no difference whatsoever* to the behavior of the integrate operation.

So, what am I missing here??? It seems that "integrate" effectively always means "bring all changes from one branch into the other, *and* vice versa." I naively always expected that a forward integrate would simply bring all changes from the source branch into the destination, but *not* the other way around; and likewise that a reverse integration would simply bring all changes from the destination branch to the source, but *not* the other way around.

The Perforce documentation is obtuse on this point, or else I haven't read the right section of it with the right pair of glasses on....

p4win gui transcript appended. All clues appreciated. Cheers, Rob

STATUS: add //depot/test_data/test/mainline/bar.txt#1 STATUS: add //depot/test_data/test/mainline/foo.txt#1 ===> Change 1514 submitted STATUS: //depot/test_data/test/branch/bar.txt#1 - branch/sync from //depot/test_data/test/mainline/bar.txt#1 STATUS: //depot/test_data/test/branch/foo.txt#1 - branch/sync from //depot/test_data/test/mainline/foo.txt#1 ===> Opened 2 files for integrate STATUS: Locking 2 files ... STATUS: branch //depot/test_data/test/branch/bar.txt#1 STATUS: branch //depot/test_data/test/branch/foo.txt#1 ===> Change 1515 submitted ===> Opened 1 files for edit ===> Opened 1 files for edit STATUS: Locking 2 files ... STATUS: edit //depot/test_data/test/branch/bar.txt#2 STATUS: edit //depot/test_data/test/mainline/foo.txt#2 ===> Change 1516 submitted STATUS: Integrate preview: //depot/test_data/test/branch/foo.txt#1 - integrate from //depot/test_data/test/mainline/foo.txt#2 STATUS: Integrate preview: //depot/test_data/test/mainline/bar.txt#1 - integrate from //depot/test_data/test/branch/bar.txt#2 ===> Integrate preview completed