tests/test-remotefilelog-strip.t
author Pierre-Yves David <pierre-yves.david@octobus.net>
Thu, 16 Feb 2023 00:33:15 +0100
changeset 50072 a99dcf53eebd
parent 46847 47a9527731c3
permissions -rw-r--r--
dirstate-guard: remove the feature The dirstate guard duplicated some of the logic already implemented in the transaction (and now the changing_* context). However the feature was incomplete, for example, living only in memory meant we could not recover from the hardest crash. In addition this duplicated with the transaction logic meant things could go out of sync or step on each other. Removing the feature now that we no longer needs it seems the safest.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
46846
2819df466cae tests: add test-remotefilelog-strip.t to demonstrate an issue with linknodes
Kyle Lippincott <spectral@google.com>
parents:
diff changeset
     1
#require no-windows
2819df466cae tests: add test-remotefilelog-strip.t to demonstrate an issue with linknodes
Kyle Lippincott <spectral@google.com>
parents:
diff changeset
     2
2819df466cae tests: add test-remotefilelog-strip.t to demonstrate an issue with linknodes
Kyle Lippincott <spectral@google.com>
parents:
diff changeset
     3
  $ . "$TESTDIR/remotefilelog-library.sh"
2819df466cae tests: add test-remotefilelog-strip.t to demonstrate an issue with linknodes
Kyle Lippincott <spectral@google.com>
parents:
diff changeset
     4
2819df466cae tests: add test-remotefilelog-strip.t to demonstrate an issue with linknodes
Kyle Lippincott <spectral@google.com>
parents:
diff changeset
     5
  $ hg init master
2819df466cae tests: add test-remotefilelog-strip.t to demonstrate an issue with linknodes
Kyle Lippincott <spectral@google.com>
parents:
diff changeset
     6
  $ cd master
2819df466cae tests: add test-remotefilelog-strip.t to demonstrate an issue with linknodes
Kyle Lippincott <spectral@google.com>
parents:
diff changeset
     7
  $ cat >> .hg/hgrc <<EOF
2819df466cae tests: add test-remotefilelog-strip.t to demonstrate an issue with linknodes
Kyle Lippincott <spectral@google.com>
parents:
diff changeset
     8
  > [remotefilelog]
2819df466cae tests: add test-remotefilelog-strip.t to demonstrate an issue with linknodes
Kyle Lippincott <spectral@google.com>
parents:
diff changeset
     9
  > server=True
2819df466cae tests: add test-remotefilelog-strip.t to demonstrate an issue with linknodes
Kyle Lippincott <spectral@google.com>
parents:
diff changeset
    10
  > EOF
2819df466cae tests: add test-remotefilelog-strip.t to demonstrate an issue with linknodes
Kyle Lippincott <spectral@google.com>
parents:
diff changeset
    11
  $ echo x > x
2819df466cae tests: add test-remotefilelog-strip.t to demonstrate an issue with linknodes
Kyle Lippincott <spectral@google.com>
parents:
diff changeset
    12
  $ hg commit -qAm x
2819df466cae tests: add test-remotefilelog-strip.t to demonstrate an issue with linknodes
Kyle Lippincott <spectral@google.com>
parents:
diff changeset
    13
2819df466cae tests: add test-remotefilelog-strip.t to demonstrate an issue with linknodes
Kyle Lippincott <spectral@google.com>
parents:
diff changeset
    14
  $ cd ..
2819df466cae tests: add test-remotefilelog-strip.t to demonstrate an issue with linknodes
Kyle Lippincott <spectral@google.com>
parents:
diff changeset
    15
2819df466cae tests: add test-remotefilelog-strip.t to demonstrate an issue with linknodes
Kyle Lippincott <spectral@google.com>
parents:
diff changeset
    16
  $ hgcloneshallow ssh://user@dummy/master shallow -q
2819df466cae tests: add test-remotefilelog-strip.t to demonstrate an issue with linknodes
Kyle Lippincott <spectral@google.com>
parents:
diff changeset
    17
  1 files fetched over 1 fetches - (1 misses, 0.00% hit ratio) over *s (glob)
2819df466cae tests: add test-remotefilelog-strip.t to demonstrate an issue with linknodes
Kyle Lippincott <spectral@google.com>
parents:
diff changeset
    18
  $ cd shallow
2819df466cae tests: add test-remotefilelog-strip.t to demonstrate an issue with linknodes
Kyle Lippincott <spectral@google.com>
parents:
diff changeset
    19
2819df466cae tests: add test-remotefilelog-strip.t to demonstrate an issue with linknodes
Kyle Lippincott <spectral@google.com>
parents:
diff changeset
    20
  $ cat >> $TESTTMP/get_file_linknode.py <<EOF
2819df466cae tests: add test-remotefilelog-strip.t to demonstrate an issue with linknodes
Kyle Lippincott <spectral@google.com>
parents:
diff changeset
    21
  > from mercurial import node, registrar, scmutil
2819df466cae tests: add test-remotefilelog-strip.t to demonstrate an issue with linknodes
Kyle Lippincott <spectral@google.com>
parents:
diff changeset
    22
  > cmdtable = {}
2819df466cae tests: add test-remotefilelog-strip.t to demonstrate an issue with linknodes
Kyle Lippincott <spectral@google.com>
parents:
diff changeset
    23
  > command = registrar.command(cmdtable)
2819df466cae tests: add test-remotefilelog-strip.t to demonstrate an issue with linknodes
Kyle Lippincott <spectral@google.com>
parents:
diff changeset
    24
  > @command(b'debug-file-linknode', [(b'r', b'rev', b'.', b'rev')], b'hg debug-file-linknode FILE')
2819df466cae tests: add test-remotefilelog-strip.t to demonstrate an issue with linknodes
Kyle Lippincott <spectral@google.com>
parents:
diff changeset
    25
  > def debug_file_linknode(ui, repo, file, **opts):
2819df466cae tests: add test-remotefilelog-strip.t to demonstrate an issue with linknodes
Kyle Lippincott <spectral@google.com>
parents:
diff changeset
    26
  >   rflctx = scmutil.revsingle(repo.unfiltered(), opts['rev']).filectx(file)
2819df466cae tests: add test-remotefilelog-strip.t to demonstrate an issue with linknodes
Kyle Lippincott <spectral@google.com>
parents:
diff changeset
    27
  >   ui.status(b'%s\n' % node.hex(rflctx.ancestormap()[rflctx._filenode][2]))
2819df466cae tests: add test-remotefilelog-strip.t to demonstrate an issue with linknodes
Kyle Lippincott <spectral@google.com>
parents:
diff changeset
    28
  > EOF
2819df466cae tests: add test-remotefilelog-strip.t to demonstrate an issue with linknodes
Kyle Lippincott <spectral@google.com>
parents:
diff changeset
    29
2819df466cae tests: add test-remotefilelog-strip.t to demonstrate an issue with linknodes
Kyle Lippincott <spectral@google.com>
parents:
diff changeset
    30
  $ cat >> .hg/hgrc <<EOF
2819df466cae tests: add test-remotefilelog-strip.t to demonstrate an issue with linknodes
Kyle Lippincott <spectral@google.com>
parents:
diff changeset
    31
  > [ui]
2819df466cae tests: add test-remotefilelog-strip.t to demonstrate an issue with linknodes
Kyle Lippincott <spectral@google.com>
parents:
diff changeset
    32
  > interactive=1
2819df466cae tests: add test-remotefilelog-strip.t to demonstrate an issue with linknodes
Kyle Lippincott <spectral@google.com>
parents:
diff changeset
    33
  > [extensions]
2819df466cae tests: add test-remotefilelog-strip.t to demonstrate an issue with linknodes
Kyle Lippincott <spectral@google.com>
parents:
diff changeset
    34
  > strip=
2819df466cae tests: add test-remotefilelog-strip.t to demonstrate an issue with linknodes
Kyle Lippincott <spectral@google.com>
parents:
diff changeset
    35
  > get_file_linknode=$TESTTMP/get_file_linknode.py
2819df466cae tests: add test-remotefilelog-strip.t to demonstrate an issue with linknodes
Kyle Lippincott <spectral@google.com>
parents:
diff changeset
    36
  > [experimental]
2819df466cae tests: add test-remotefilelog-strip.t to demonstrate an issue with linknodes
Kyle Lippincott <spectral@google.com>
parents:
diff changeset
    37
  > evolution=createmarkers,allowunstable
2819df466cae tests: add test-remotefilelog-strip.t to demonstrate an issue with linknodes
Kyle Lippincott <spectral@google.com>
parents:
diff changeset
    38
  > EOF
2819df466cae tests: add test-remotefilelog-strip.t to demonstrate an issue with linknodes
Kyle Lippincott <spectral@google.com>
parents:
diff changeset
    39
  $ echo a > a
2819df466cae tests: add test-remotefilelog-strip.t to demonstrate an issue with linknodes
Kyle Lippincott <spectral@google.com>
parents:
diff changeset
    40
  $ hg commit -qAm msg1
2819df466cae tests: add test-remotefilelog-strip.t to demonstrate an issue with linknodes
Kyle Lippincott <spectral@google.com>
parents:
diff changeset
    41
  $ hg commit --amend 're:^$' -m msg2
2819df466cae tests: add test-remotefilelog-strip.t to demonstrate an issue with linknodes
Kyle Lippincott <spectral@google.com>
parents:
diff changeset
    42
  $ hg commit --amend 're:^$' -m msg3
2819df466cae tests: add test-remotefilelog-strip.t to demonstrate an issue with linknodes
Kyle Lippincott <spectral@google.com>
parents:
diff changeset
    43
  $ hg --hidden log -G -T '{rev} {node|short}'
2819df466cae tests: add test-remotefilelog-strip.t to demonstrate an issue with linknodes
Kyle Lippincott <spectral@google.com>
parents:
diff changeset
    44
  @  3 df91f74b871e
2819df466cae tests: add test-remotefilelog-strip.t to demonstrate an issue with linknodes
Kyle Lippincott <spectral@google.com>
parents:
diff changeset
    45
  |
2819df466cae tests: add test-remotefilelog-strip.t to demonstrate an issue with linknodes
Kyle Lippincott <spectral@google.com>
parents:
diff changeset
    46
  | x  2 70494d7ec5ef
2819df466cae tests: add test-remotefilelog-strip.t to demonstrate an issue with linknodes
Kyle Lippincott <spectral@google.com>
parents:
diff changeset
    47
  |/
2819df466cae tests: add test-remotefilelog-strip.t to demonstrate an issue with linknodes
Kyle Lippincott <spectral@google.com>
parents:
diff changeset
    48
  | x  1 1e423846dde0
2819df466cae tests: add test-remotefilelog-strip.t to demonstrate an issue with linknodes
Kyle Lippincott <spectral@google.com>
parents:
diff changeset
    49
  |/
2819df466cae tests: add test-remotefilelog-strip.t to demonstrate an issue with linknodes
Kyle Lippincott <spectral@google.com>
parents:
diff changeset
    50
  o  0 b292c1e3311f
2819df466cae tests: add test-remotefilelog-strip.t to demonstrate an issue with linknodes
Kyle Lippincott <spectral@google.com>
parents:
diff changeset
    51
  
2819df466cae tests: add test-remotefilelog-strip.t to demonstrate an issue with linknodes
Kyle Lippincott <spectral@google.com>
parents:
diff changeset
    52
  $ hg debug-file-linknode -r 70494d a
2819df466cae tests: add test-remotefilelog-strip.t to demonstrate an issue with linknodes
Kyle Lippincott <spectral@google.com>
parents:
diff changeset
    53
  df91f74b871e064c89afa1fe9e2f66afa2c125df
2819df466cae tests: add test-remotefilelog-strip.t to demonstrate an issue with linknodes
Kyle Lippincott <spectral@google.com>
parents:
diff changeset
    54
  $ hg --hidden strip -r 1 3
2819df466cae tests: add test-remotefilelog-strip.t to demonstrate an issue with linknodes
Kyle Lippincott <spectral@google.com>
parents:
diff changeset
    55
  0 files updated, 0 files merged, 1 files removed, 0 files unresolved
2819df466cae tests: add test-remotefilelog-strip.t to demonstrate an issue with linknodes
Kyle Lippincott <spectral@google.com>
parents:
diff changeset
    56
  saved backup bundle to $TESTTMP/shallow/.hg/strip-backup/df91f74b871e-c94d67be-backup.hg
2819df466cae tests: add test-remotefilelog-strip.t to demonstrate an issue with linknodes
Kyle Lippincott <spectral@google.com>
parents:
diff changeset
    57
2819df466cae tests: add test-remotefilelog-strip.t to demonstrate an issue with linknodes
Kyle Lippincott <spectral@google.com>
parents:
diff changeset
    58
  $ hg --hidden log -G -T '{rev} {node|short}'
2819df466cae tests: add test-remotefilelog-strip.t to demonstrate an issue with linknodes
Kyle Lippincott <spectral@google.com>
parents:
diff changeset
    59
  o  1 70494d7ec5ef
2819df466cae tests: add test-remotefilelog-strip.t to demonstrate an issue with linknodes
Kyle Lippincott <spectral@google.com>
parents:
diff changeset
    60
  |
2819df466cae tests: add test-remotefilelog-strip.t to demonstrate an issue with linknodes
Kyle Lippincott <spectral@google.com>
parents:
diff changeset
    61
  @  0 b292c1e3311f
2819df466cae tests: add test-remotefilelog-strip.t to demonstrate an issue with linknodes
Kyle Lippincott <spectral@google.com>
parents:
diff changeset
    62
  
46847
47a9527731c3 remotefilelog: include file contents in bundles produced during strip
Kyle Lippincott <spectral@google.com>
parents: 46846
diff changeset
    63
Demonstrate that the linknode points to a commit that is actually in the repo
47a9527731c3 remotefilelog: include file contents in bundles produced during strip
Kyle Lippincott <spectral@google.com>
parents: 46846
diff changeset
    64
after the strip operation. Otherwise remotefilelog has to search every commit in
47a9527731c3 remotefilelog: include file contents in bundles produced during strip
Kyle Lippincott <spectral@google.com>
parents: 46846
diff changeset
    65
the repository looking for a valid linkrev every time it's queried, such as
47a9527731c3 remotefilelog: include file contents in bundles produced during strip
Kyle Lippincott <spectral@google.com>
parents: 46846
diff changeset
    66
during push.
46846
2819df466cae tests: add test-remotefilelog-strip.t to demonstrate an issue with linknodes
Kyle Lippincott <spectral@google.com>
parents:
diff changeset
    67
  $ hg debug-file-linknode -r 70494d a
46847
47a9527731c3 remotefilelog: include file contents in bundles produced during strip
Kyle Lippincott <spectral@google.com>
parents: 46846
diff changeset
    68
  70494d7ec5ef6cd3cd6939a9fd2812f9956bf553