view tests/test-remotefilelog-partial-shallow.t @ 48976:877d7e1a4223 stable

amend: fix amend with copies in extras If copy information is stored only in the commit extras and not in filelogs, then they get lost on amend if the file wasn't also modified in the working copy. That's because we create `filectx` object from the old commit in those cases, and the `.copysource()` of such objects read only from the filelog. This patch fixes it by always creating a new `memfilectx` in these cases, passing the calculated copy information to it. Differential Revision: https://phab.mercurial-scm.org/D12387
author Martin von Zweigbergk <martinvonz@google.com>
date Fri, 18 Mar 2022 21:15:54 -0700
parents 84a93fa7ecfd
children dcaa2df1f688
line wrap: on
line source

#require no-windows

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

  $ hg init master
  $ cd master
  $ cat >> .hg/hgrc <<EOF
  > [remotefilelog]
  > server=True
  > EOF
  $ echo x > foo
  $ echo y > bar
  $ hg commit -qAm one

  $ cd ..

# partial shallow clone

  $ hg clone --shallow ssh://user@dummy/master shallow --noupdate --config remotefilelog.includepattern=foo
  streaming all changes
  3 files to transfer, 336 bytes of data (no-zstd !)
  transferred 336 bytes in * seconds (* */sec) (glob) (no-zstd !)
  3 files to transfer, 338 bytes of data (zstd !)
  transferred 338 bytes in * seconds (* */sec) (glob) (zstd !)
  searching for changes
  no changes found
  $ cat >> shallow/.hg/hgrc <<EOF
  > [remotefilelog]
  > cachepath=$PWD/hgcache
  > debug=True
  > includepattern=foo
  > reponame = master
  > [extensions]
  > remotefilelog=
  > EOF
  $ ls shallow/.hg/store/data
  bar.i

# update partial clone

  $ cd shallow
  $ hg update
  2 files updated, 0 files merged, 0 files removed, 0 files unresolved
  1 files fetched over 1 fetches - (1 misses, 0.00% hit ratio) over *s (glob)
  $ cat foo
  x
  $ cat bar
  y
  $ cd ..

# pull partial clone

  $ cd master
  $ echo a >> foo
  $ echo b >> bar
  $ hg commit -qm two
  $ cd ../shallow
  $ hg pull
  pulling from ssh://user@dummy/master
  searching for changes
  adding changesets
  adding manifests
  adding file changes
  added 1 changesets with 0 changes to 0 files
  new changesets a9688f18cb91
  (run 'hg update' to get a working copy)
  $ hg update
  2 files updated, 0 files merged, 0 files removed, 0 files unresolved
  1 files fetched over 1 fetches - (1 misses, 0.00% hit ratio) over *s (glob)
  $ cat foo
  x
  a
  $ cat bar
  y
  b

  $ cd ..