[p4] Issue with edit on integrate
Albrecht, Matt
matt.albrecht at zilliant.com
Thu Jan 4 11:51:25 PST 2007
> First, a couple of questions. In (1) was there a submit at
> the end? In
> (5) when you say the file was modified, was this after a 'p4 edit' of
> the file or outside of any Perforce knowledge? Also, what version of
> client and server are you using?
Yes, step (1) was an integrate + submit. (2) was a submit in a separate
changelist from (1). For (5), the user essentially did this:
$ p4 change
(creates empty changelist # 1234)
$ p4 integrate -c 1234 //depot/branchB/... //depot/branchA/...
$ vi /home/user/workspace/branchB/foo.txt
(make some edits and save, and most probably ignoring the read-only
flag)
$ p4 submit -c 1234
> Files that are open for integrate but have not been re-opened for edit
> (whether add or merge) should be read-only on disk. The user or editor
> would have to make the file writable to make changes without
> performing a 'p4 edit'.
That's what I figured. I've been forgetting the ability to run 'p4
edit' after integrate, prior to submit.
Thanks for the help!
--Matt
> -----Original Message-----
> From: Stephen Vance [mailto:steve at vance.com]
> Sent: Thursday, January 04, 2007 1:40 PM
> To: Albrecht, Matt
> Cc: perforce-user at perforce.com
> Subject: Re: [p4] Issue with edit on integrate
>
> Matt --
>
> First, a couple of questions. In (1) was there a submit at
> the end? In
> (5) when you say the file was modified, was this after a 'p4 edit' of
> the file or outside of any Perforce knowledge? Also, what version of
> client and server are you using?
>
> The records for integrate with add (branch) and integrate for
> edit (copy
> or merge) only differ by a field value in the database. This
> value can
> affect the integration algorithm
>
> If Perforce knew the file was edited, then Perforce should
> have used the
> file contents from the disk. To do this, you should do a 'p4 edit' on
> the file after the integrate operation while it is still
> opened. If you
> did not do the 'p4 edit' then Perforce had no reason to copy the file
> from the disk. It would simply perform a lazy copy on the
> server which
> only uses a reference to the source file for the contents. Files that
> are open for integrate but have not been re-opened for edit
> (whether add
> or merge) should be read-only on disk. The user or editor
> would have to
> make the file writable to make changes without performing a 'p4 edit'.
>
> Steve
>
> Albrecht, Matt wrote:
> > One of my users reported a problem when they did an edit on
> a file that
> > was also marked for integrate. I've walked through the
> steps he made to
> > get a clear picture of what happened, and I think I have a good
> > understanding of the user's mistake, and what Perforce was
> doing to make
> > it look like Perforce screwed up.
> >
> > 1. integrated from "//depot/branchA/" to "//depot/branchB/", which
> > worked fine.
> > 2. created file "//depot/branchB/foo.txt" and submitted it for add.
> > 3. performed several edits on this file in branchB,
> bringing it up to
> > revision #5.
> > 4. integrated "//depot/branchB/..." to
> "//depot/branchA/..." into a new
> > changelist. This marked "//depot/branchA/foo.txt" as integrate with
> > add.
> > 5. modified "//depot/branchA/foo.txt" on his hard drive
> (adding several
> > lines)
> > 6. submitted the changelist.
> >
> > At this point, his hard drive contained a different version of
> > "//depot/branchA/foo.txt" than what Perforce reports as the depot
> > version of "//depot/branchA/foo.txt".
> >
> > He had done similar operations where
> "//depot/branchA/foo.txt" existed
> > in step 1, and Perforce did the right thing.
> >
> > My only guess is that Perforce uses a different record in
> the db files
> > to mark a file as "integrate for add" and "integrate for
> edit," and so
> > the server only put an entry linking to "//depot/branchB/foo.txt#5"
> > without also marking the edits that were made before integrate.
> >
> > So, besides slapping my users around with a limp salami, does anyone
> > know of a way to force users to "do the right thing," or is
> this bring
> > up a potential issue in how Perforce performs integrations?
> >
> > _______________________________________________
> > perforce-user mailing list - perforce-user at perforce.com
> > http://maillist.perforce.com/mailman/listinfo/perforce-user
> >
> >
>
More information about the perforce-user
mailing list