tests/test-lfs-largefiles.t
author Raphaël Gomès <rgomes@octobus.net>
Tue, 23 Jul 2024 12:12:03 +0200
changeset 51712 e153995011b7
parent 48661 9e11a06bbb63
permissions -rw-r--r--
heptapod-ci: move version prints closer to the start This makes debugging a lot easier if anything is to go wrong, and shows output earlier.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
38021
538e850ae737 tests: mark tests that fail when using chg as #require no-chg
Kyle Lippincott <spectral@google.com>
parents: 37348
diff changeset
     1
#require no-reposimplestore no-chg
37348
f4e84dfc06fd tests: skip largefiles and lfs tests when using simple store
Gregory Szorc <gregory.szorc@gmail.com>
parents: 36650
diff changeset
     2
35102
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
     3
This tests the interaction between the largefiles and lfs extensions, and
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
     4
conversion from largefiles -> lfs.
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
     5
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
     6
  $ cat >> $HGRCPATH << EOF
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
     7
  > [extensions]
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
     8
  > largefiles =
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
     9
  > 
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    10
  > [lfs]
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    11
  > # standin files are 41 bytes.  Stay bigger for clarity.
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    12
  > threshold = 42
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    13
  > EOF
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    14
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    15
Setup a repo with a normal file and a largefile, above and below the lfs
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    16
threshold to test lfconvert.  *.txt start life as a normal file; *.bin start as
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    17
an lfs/largefile.
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    18
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    19
  $ hg init largefiles
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    20
  $ cd largefiles
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    21
  $ echo 'normal' > normal.txt
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    22
  $ echo 'normal above lfs threshold 0000000000000000000000000' > lfs.txt
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    23
  $ hg ci -Am 'normal.txt'
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    24
  adding lfs.txt
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    25
  adding normal.txt
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    26
  $ echo 'largefile' > large.bin
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    27
  $ echo 'largefile above lfs threshold 0000000000000000000000' > lfs.bin
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    28
  $ hg add --large large.bin lfs.bin
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    29
  $ hg ci -m 'add largefiles'
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    30
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    31
  $ cat >> $HGRCPATH << EOF
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    32
  > [extensions]
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    33
  > lfs =
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    34
  > EOF
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    35
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    36
Add an lfs file and normal file that collide with files on the other branch.
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    37
large.bin is added as a normal file, and is named as such only to clash with the
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    38
largefile on the other branch.
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    39
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    40
  $ hg up -q '.^'
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    41
  $ echo 'below lfs threshold' > large.bin
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    42
  $ echo 'lfs above the lfs threshold for length 0000000000000' > lfs.bin
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    43
  $ hg ci -Am 'add with lfs extension'
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    44
  adding large.bin
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    45
  adding lfs.bin
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    46
  created new head
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    47
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    48
  $ hg log -G
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    49
  @  changeset:   2:e989d0fa3764
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    50
  |  tag:         tip
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    51
  |  parent:      0:29361292f54d
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    52
  |  user:        test
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    53
  |  date:        Thu Jan 01 00:00:00 1970 +0000
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    54
  |  summary:     add with lfs extension
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    55
  |
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    56
  | o  changeset:   1:6513aaab9ca0
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    57
  |/   user:        test
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    58
  |    date:        Thu Jan 01 00:00:00 1970 +0000
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    59
  |    summary:     add largefiles
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    60
  |
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    61
  o  changeset:   0:29361292f54d
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    62
     user:        test
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    63
     date:        Thu Jan 01 00:00:00 1970 +0000
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    64
     summary:     normal.txt
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    65
  
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    66
--------------------------------------------------------------------------------
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    67
Merge largefiles into lfs branch
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    68
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    69
The largefiles extension will prompt to use the normal or largefile when merged
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    70
into the lfs files.  `hg manifest` will show standins if present.  They aren't,
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    71
because largefiles merge doesn't merge content.  If it did, selecting (n)ormal
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    72
would convert to lfs on commit, if appropriate.
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    73
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    74
BUG: Largefiles isn't running the merge tool, like when two lfs files are
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    75
merged.  This is probably by design, but it should probably at least prompt if
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    76
content should be taken from (l)ocal or (o)ther as well.
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    77
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    78
  $ hg --config ui.interactive=True merge 6513aaab9ca0 <<EOF
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    79
  > n
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    80
  > n
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    81
  > EOF
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    82
  remote turned local normal file large.bin into a largefile
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    83
  use (l)argefile or keep (n)ormal file? n
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    84
  remote turned local normal file lfs.bin into a largefile
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    85
  use (l)argefile or keep (n)ormal file? n
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    86
  0 files updated, 0 files merged, 0 files removed, 0 files unresolved
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    87
  (branch merge, don't forget to commit)
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    88
  $ hg ci -m 'merge lfs with largefiles -> normal'
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    89
  $ hg manifest
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    90
  large.bin
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    91
  lfs.bin
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    92
  lfs.txt
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    93
  normal.txt
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    94
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    95
The merged lfs.bin resolved to lfs because the (n)ormal option was picked.  The
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    96
lfs.txt file is unchanged by the merge, because it was added before lfs was
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    97
enabled, and the content didn't change.
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    98
  $ hg debugdata lfs.bin 0
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    99
  version https://git-lfs.github.com/spec/v1
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   100
  oid sha256:81c7492b2c05e130431f65a87651b54a30c5da72c99ce35a1e9b9872a807312b
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   101
  size 53
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   102
  x-is-binary 0
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   103
  $ hg debugdata lfs.txt 0
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   104
  normal above lfs threshold 0000000000000000000000000
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   105
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   106
Another filelog entry is NOT made by the merge, so nothing is committed as lfs.
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   107
  $ hg log -r . -T '{join(lfs_files, ", ")}\n'
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   108
  
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   109
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   110
Replay the last merge, but pick (l)arge this time.  The manifest will show any
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   111
standins.
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   112
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   113
  $ hg up -Cq e989d0fa3764
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   114
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   115
  $ hg --config ui.interactive=True merge 6513aaab9ca0 <<EOF
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   116
  > l
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   117
  > l
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   118
  > EOF
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   119
  remote turned local normal file large.bin into a largefile
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   120
  use (l)argefile or keep (n)ormal file? l
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   121
  remote turned local normal file lfs.bin into a largefile
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   122
  use (l)argefile or keep (n)ormal file? l
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   123
  getting changed largefiles
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   124
  2 largefiles updated, 0 removed
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   125
  2 files updated, 0 files merged, 2 files removed, 0 files unresolved
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   126
  (branch merge, don't forget to commit)
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   127
  $ hg ci -m 'merge lfs with largefiles -> large'
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   128
  created new head
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   129
  $ hg manifest
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   130
  .hglf/large.bin
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   131
  .hglf/lfs.bin
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   132
  lfs.txt
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   133
  normal.txt
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   134
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   135
--------------------------------------------------------------------------------
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   136
Merge lfs into largefiles branch
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   137
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   138
  $ hg up -Cq 6513aaab9ca0
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   139
  $ hg --config ui.interactive=True merge e989d0fa3764 <<EOF
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   140
  > n
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   141
  > n
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   142
  > EOF
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   143
  remote turned local largefile large.bin into a normal file
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   144
  keep (l)argefile or use (n)ormal file? n
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   145
  remote turned local largefile lfs.bin into a normal file
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   146
  keep (l)argefile or use (n)ormal file? n
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   147
  getting changed largefiles
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   148
  0 largefiles updated, 0 removed
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   149
  2 files updated, 0 files merged, 2 files removed, 0 files unresolved
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   150
  (branch merge, don't forget to commit)
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   151
  $ hg ci -m 'merge largefiles with lfs -> normal'
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   152
  created new head
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   153
  $ hg manifest
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   154
  large.bin
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   155
  lfs.bin
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   156
  lfs.txt
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   157
  normal.txt
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   158
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   159
The merged lfs.bin got converted to lfs because the (n)ormal option was picked.
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   160
The lfs.txt file is unchanged by the merge, because it was added before lfs was
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   161
enabled.
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   162
  $ hg debugdata lfs.bin 0
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   163
  version https://git-lfs.github.com/spec/v1
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   164
  oid sha256:81c7492b2c05e130431f65a87651b54a30c5da72c99ce35a1e9b9872a807312b
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   165
  size 53
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   166
  x-is-binary 0
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   167
  $ hg debugdata lfs.txt 0
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   168
  normal above lfs threshold 0000000000000000000000000
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   169
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   170
Another filelog entry is NOT made by the merge, so nothing is committed as lfs.
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   171
  $ hg log -r . -T '{join(lfs_files, ", ")}\n'
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   172
  
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   173
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   174
Replay the last merge, but pick (l)arge this time.  The manifest will show the
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   175
standins.
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   176
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   177
  $ hg up -Cq 6513aaab9ca0
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   178
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   179
  $ hg --config ui.interactive=True merge e989d0fa3764 <<EOF
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   180
  > l
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   181
  > l
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   182
  > EOF
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   183
  remote turned local largefile large.bin into a normal file
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   184
  keep (l)argefile or use (n)ormal file? l
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   185
  remote turned local largefile lfs.bin into a normal file
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   186
  keep (l)argefile or use (n)ormal file? l
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   187
  0 files updated, 0 files merged, 0 files removed, 0 files unresolved
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   188
  (branch merge, don't forget to commit)
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   189
  $ hg ci -m 'merge largefiles with lfs -> large'
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   190
  created new head
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   191
  $ hg manifest
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   192
  .hglf/large.bin
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   193
  .hglf/lfs.bin
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   194
  lfs.txt
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   195
  normal.txt
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   196
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   197
--------------------------------------------------------------------------------
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   198
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   199
When both largefiles and lfs are configured to add by size, the tie goes to
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   200
largefiles since it hooks cmdutil.add() and lfs hooks the filelog write in the
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   201
commit.  By the time the commit occurs, the tracked file is smaller than the
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   202
threshold (assuming it is > 41, so the standins don't become lfs objects).
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   203
39707
5abc47d4ca6b tests: quote PYTHON usage
Matt Harbison <matt_harbison@yahoo.com>
parents: 38021
diff changeset
   204
  $ "$PYTHON" -c 'import sys ; sys.stdout.write("y\n" * 1048576)' > large_by_size.bin
35102
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   205
  $ hg --config largefiles.minsize=1 ci -Am 'large by size'
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   206
  adding large_by_size.bin as a largefile
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   207
  $ hg manifest
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   208
  .hglf/large.bin
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   209
  .hglf/large_by_size.bin
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   210
  .hglf/lfs.bin
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   211
  lfs.txt
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   212
  normal.txt
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   213
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   214
  $ hg rm large_by_size.bin
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   215
  $ hg ci -m 'remove large_by_size.bin'
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   216
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   217
Largefiles doesn't do anything special with diff, so it falls back to diffing
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   218
the standins.  Extdiff also is standin based comparison.  Diff and extdiff both
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   219
work on the original file for lfs objects.
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   220
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   221
Largefile -> lfs transition
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   222
  $ hg diff -r 1 -r 3
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   223
  diff -r 6513aaab9ca0 -r dcc5ce63e252 .hglf/large.bin
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   224
  --- a/.hglf/large.bin	Thu Jan 01 00:00:00 1970 +0000
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   225
  +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   226
  @@ -1,1 +0,0 @@
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   227
  -cef9a458373df9b0743a0d3c14d0c66fb19b8629
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   228
  diff -r 6513aaab9ca0 -r dcc5ce63e252 .hglf/lfs.bin
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   229
  --- a/.hglf/lfs.bin	Thu Jan 01 00:00:00 1970 +0000
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   230
  +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   231
  @@ -1,1 +0,0 @@
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   232
  -557fb6309cef935e1ac2c8296508379e4b15a6e6
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   233
  diff -r 6513aaab9ca0 -r dcc5ce63e252 large.bin
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   234
  --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   235
  +++ b/large.bin	Thu Jan 01 00:00:00 1970 +0000
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   236
  @@ -0,0 +1,1 @@
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   237
  +below lfs threshold
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   238
  diff -r 6513aaab9ca0 -r dcc5ce63e252 lfs.bin
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   239
  --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   240
  +++ b/lfs.bin	Thu Jan 01 00:00:00 1970 +0000
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   241
  @@ -0,0 +1,1 @@
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   242
  +lfs above the lfs threshold for length 0000000000000
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   243
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   244
lfs -> largefiles transition
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   245
  $ hg diff -r 2 -r 6
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   246
  diff -r e989d0fa3764 -r 95e1e80325c8 .hglf/large.bin
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   247
  --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   248
  +++ b/.hglf/large.bin	Thu Jan 01 00:00:00 1970 +0000
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   249
  @@ -0,0 +1,1 @@
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   250
  +cef9a458373df9b0743a0d3c14d0c66fb19b8629
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   251
  diff -r e989d0fa3764 -r 95e1e80325c8 .hglf/lfs.bin
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   252
  --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   253
  +++ b/.hglf/lfs.bin	Thu Jan 01 00:00:00 1970 +0000
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   254
  @@ -0,0 +1,1 @@
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   255
  +557fb6309cef935e1ac2c8296508379e4b15a6e6
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   256
  diff -r e989d0fa3764 -r 95e1e80325c8 large.bin
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   257
  --- a/large.bin	Thu Jan 01 00:00:00 1970 +0000
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   258
  +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   259
  @@ -1,1 +0,0 @@
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   260
  -below lfs threshold
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   261
  diff -r e989d0fa3764 -r 95e1e80325c8 lfs.bin
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   262
  --- a/lfs.bin	Thu Jan 01 00:00:00 1970 +0000
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   263
  +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   264
  @@ -1,1 +0,0 @@
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   265
  -lfs above the lfs threshold for length 0000000000000
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   266
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   267
A largefiles repo can be converted to lfs.  The lfconvert command uses the
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   268
convert extension under the hood with --to-normal.  So the --config based
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   269
parameters are available, but not --authormap, --branchmap, etc.
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   270
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   271
  $ cd ..
35199
80bb15769c73 test-lfs: drop a hack for ignoring convert devel-warnings
Matt Harbison <matt_harbison@yahoo.com>
parents: 35178
diff changeset
   272
  $ hg lfconvert --to-normal largefiles nolargefiles 2>&1
35102
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   273
  initializing destination nolargefiles
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   274
  0 additional largefiles cached
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   275
  scanning source...
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   276
  sorting...
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   277
  converting...
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   278
  8 normal.txt
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   279
  7 add largefiles
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   280
  6 add with lfs extension
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   281
  5 merge lfs with largefiles -> normal
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   282
  4 merge lfs with largefiles -> large
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   283
  3 merge largefiles with lfs -> normal
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   284
  2 merge largefiles with lfs -> large
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   285
  1 large by size
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   286
  0 remove large_by_size.bin
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   287
  $ cd nolargefiles
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   288
40368
fad6068249d9 lfs: don't add extension to hgrc after conversion (BC)
Matt Harbison <matt_harbison@yahoo.com>
parents: 39707
diff changeset
   289
The requirement is added to the destination repo.
35102
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   290
48661
9e11a06bbb63 test: simpler requirements matching in test-lfs-largefiles.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48464
diff changeset
   291
  $ hg debugrequires | grep lfs
35178
f8f939a2926c lfs: add a repo requirement for this extension when converting to lfs
Matt Harbison <matt_harbison@yahoo.com>
parents: 35104
diff changeset
   292
  lfs
f8f939a2926c lfs: add a repo requirement for this extension when converting to lfs
Matt Harbison <matt_harbison@yahoo.com>
parents: 35104
diff changeset
   293
35102
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   294
  $ hg log -r 'all()' -G -T '{rev} {join(lfs_files, ", ")} ({desc})\n'
35999
8c7d5e90e6bd lfs: teach '{lfs_files}' to handle removed files
Matt Harbison <matt_harbison@yahoo.com>
parents: 35215
diff changeset
   295
  o  8 large_by_size.bin (remove large_by_size.bin)
35102
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   296
  |
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   297
  o  7 large_by_size.bin (large by size)
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   298
  |
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   299
  o    6  (merge largefiles with lfs -> large)
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   300
  |\
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   301
  +---o  5  (merge largefiles with lfs -> normal)
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   302
  | |/
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   303
  +---o  4 lfs.bin (merge lfs with largefiles -> large)
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   304
  | |/
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   305
  +---o  3  (merge lfs with largefiles -> normal)
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   306
  | |/
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   307
  | o  2 lfs.bin (add with lfs extension)
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   308
  | |
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   309
  o |  1 lfs.bin (add largefiles)
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   310
  |/
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   311
  o  0 lfs.txt (normal.txt)
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   312
  
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   313
  $ hg debugdata lfs.bin 0
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   314
  version https://git-lfs.github.com/spec/v1
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   315
  oid sha256:2172a5bd492dd41ec533b9bb695f7691b6351719407ac797f0ccad5348c81e62
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   316
  size 53
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   317
  x-is-binary 0
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   318
  $ hg debugdata lfs.bin 1
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   319
  version https://git-lfs.github.com/spec/v1
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   320
  oid sha256:81c7492b2c05e130431f65a87651b54a30c5da72c99ce35a1e9b9872a807312b
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   321
  size 53
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   322
  x-is-binary 0
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   323
  $ hg debugdata lfs.bin 2
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   324
  version https://git-lfs.github.com/spec/v1
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   325
  oid sha256:2172a5bd492dd41ec533b9bb695f7691b6351719407ac797f0ccad5348c81e62
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   326
  size 53
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   327
  x-is-binary 0
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   328
  $ hg debugdata lfs.bin 3
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   329
  abort: invalid revision identifier 3
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   330
  [255]
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   331
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   332
No diffs when comparing merge and p1 that kept p1's changes.  Diff of lfs to
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   333
largefiles no longer operates in standin files.
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   334
36650
9318babff83b tests: prevent enormous output spew in test-lfs-largefiles.t
Augie Fackler <augie@google.com>
parents: 35999
diff changeset
   335
This `head -n 20` looks dumb (since we expect no output), but if something
9318babff83b tests: prevent enormous output spew in test-lfs-largefiles.t
Augie Fackler <augie@google.com>
parents: 35999
diff changeset
   336
breaks you can get 1048576 lines of +y in the output, which takes a looooooong
9318babff83b tests: prevent enormous output spew in test-lfs-largefiles.t
Augie Fackler <augie@google.com>
parents: 35999
diff changeset
   337
time to print.
9318babff83b tests: prevent enormous output spew in test-lfs-largefiles.t
Augie Fackler <augie@google.com>
parents: 35999
diff changeset
   338
  $ hg diff -r 2:3 | head -n 20
48376
ad5a64473840 tests: add missing `head` for when things go wrong
Raphaël Gomès <rgomes@octobus.net>
parents: 48321
diff changeset
   339
  $ hg diff -r 2:6 | head -n 20
35102
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   340
  diff -r e989d0fa3764 -r 752e3a0d8488 large.bin
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   341
  --- a/large.bin	Thu Jan 01 00:00:00 1970 +0000
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   342
  +++ b/large.bin	Thu Jan 01 00:00:00 1970 +0000
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   343
  @@ -1,1 +1,1 @@
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   344
  -below lfs threshold
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   345
  +largefile
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   346
  diff -r e989d0fa3764 -r 752e3a0d8488 lfs.bin
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   347
  --- a/lfs.bin	Thu Jan 01 00:00:00 1970 +0000
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   348
  +++ b/lfs.bin	Thu Jan 01 00:00:00 1970 +0000
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   349
  @@ -1,1 +1,1 @@
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   350
  -lfs above the lfs threshold for length 0000000000000
ec7f0bb95277 test-lfs: add tests demonstrating the interaction with largefiles
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   351
  +largefile above lfs threshold 0000000000000000000000