On 6 June 2017 at 08:00, Luke Diamand <luke@xxxxxxxxxxx> wrote: > On 6 June 2017 at 00:29, Luke Diamand <luke@xxxxxxxxxxx> wrote: >> On 5 June 2017 at 19:50, Андрей Ефанов <1134togo@xxxxxxxxx> wrote: >>> 2017-06-04 14:09 GMT+03:00 Luke Diamand <luke@xxxxxxxxxxx>: >>>> >>>> >>>> > >>>> > The problem, as I see it, is that before syncing changes in the given >>>> > range, p4 task does not sync to cl1 version of the repo, and applies >>>> > commits to the empty repository. >>>> > Is it a bug or my misunderstanding of how git p4 should work? >>>> >>>> Possibly I'm misunderstanding what you're doing! Can you give a >>>> sequence of steps to show the problem? >>> >>> What I meant is: >>> >>> 1. Create p4 depot >>> 2. Add first.file (CL 2) >>> 3. Add second.file (at CL 3) >>> 4. Add third.file (at CL 4) >>> 5. Modify first.file (at CL 5) >>> 4. git-p4 clone //depot@3,5 >>> >>> In this case first.file, will not be represented in the repository. >> >> Hmmm, it's not working right for me. Although in my case I seem to be >> missing the second file. >> >> It's fine if I don't use the revision range "3,5". > > It's also fine if I do: > > git p4 sync //depot@3 > cd depot > git p4 rebase It seems to be something to do with the code around line 3395 that says: if self.changeRange == "@all": self.changeRange = "" elif ',' not in self.changeRange: It's finding a lower revision number with which to later call importHeadRevision(), but that only seems to be called if the revision range does *not* have a "," in it. As a result, we never actually call importHeadRevision() and so files end up missing. The obvious fix of fishing out the "@3" from the "@3,5" revision range works in this instance, but breaks some of the regression tests. Luke