view tests/test-narrow-copies.t @ 46386:d6fa9fbd375d stable

commit: reorder if-else conditional to give mergestate info priority Looking at the code now, I was unable to find a good reason as why we only rely on mergestate extras info after checking whether a filelog parent is ancestor of other or not. I mean if we have stored in mergestate that `other` was chosed, we should blindly pick that one. This cleanup will also help introduce more cases when both `fparent1` and `fparent2` are non-null but using info from mergestate, we can fastpath. The test change actually demonstrates the point of the patch. During merge we were getting the other side of the file but on commit we were marking that as merged. Differential Revision: https://phab.mercurial-scm.org/D10147
author Pulkit Goyal <7895pulkit@gmail.com>
date Thu, 04 Mar 2021 17:35:58 +0530
parents f90a5c211251
children
line wrap: on
line source


  $ . "$TESTDIR/narrow-library.sh"

create full repo

  $ hg init master
  $ cd master

  $ mkdir inside
  $ echo inside > inside/f1
  $ mkdir outside
  $ echo outside > outside/f2
  $ hg ci -Aqm 'initial'

  $ hg mv outside/f2 inside/f2
  $ hg ci -qm 'move f2 from outside'

  $ echo modified > inside/f2
  $ hg ci -qm 'modify inside/f2'

  $ mkdir outside
  $ echo new > outside/f3
  $ hg ci -Aqm 'add outside/f3'
  $ cd ..

  $ hg clone --narrow ssh://user@dummy/master narrow --include inside -r 2
  adding changesets
  adding manifests
  adding file changes
  added 3 changesets with 3 changes to 2 files
  new changesets *:* (glob)
  updating to branch default
  2 files updated, 0 files merged, 0 files removed, 0 files unresolved
  $ cd narrow

  $ hg co 'desc("move f2")'
  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
  $ hg status
  $ hg diff
  $ hg diff --change . --git
  diff --git a/inside/f2 b/inside/f2
  new file mode 100644
  --- /dev/null
  +++ b/inside/f2
  @@ -0,0 +1,1 @@
  +outside

  $ hg log --follow inside/f2 -r tip
  changeset:   2:bcfb756e0ca9
  tag:         tip
  user:        test
  date:        Thu Jan 01 00:00:00 1970 +0000
  summary:     modify inside/f2
  
  changeset:   1:5a016133b2bb
  user:        test
  date:        Thu Jan 01 00:00:00 1970 +0000
  summary:     move f2 from outside
  
  $ echo new > inside/f4
  $ hg ci -Aqm 'add inside/f4'
  $ hg pull -q
  $ hg --config extensions.rebase= rebase -d tip
  rebasing 3:4f84b666728c "add inside/f4"
  saved backup bundle to $TESTTMP/narrow/.hg/strip-backup/4f84b666728c-4269b76e-rebase.hg

  $ hg co -q 0
  $ echo modified > inside/f1
  $ hg ci -qm 'modify inside/f1'
  $ echo new > inside/f5
  $ hg ci -Aqm 'add inside/f5'
  $ hg --config extensions.rebase= rebase -d 'public()' -r .
  rebasing 6:610b60178c28 tip "add inside/f5"
  saved backup bundle to $TESTTMP/narrow/.hg/strip-backup/610b60178c28-65716a78-rebase.hg