tests/test-lfs-test-server.t
author Pulkit Goyal <7895pulkit@gmail.com>
Fri, 23 Feb 2018 18:12:20 +0530
changeset 36382 b4d1c09b754b
parent 35927 9b413478f261
child 36925 24e6342db1cb
permissions -rw-r--r--
py3: add missing b'' in test-arbitraryfilectx.t # skip-blame as just b'' prefix
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
35139
a2e927ded455 hghave: add a check for lfs-test-server
Matt Harbison <matt_harbison@yahoo.com>
parents: 35098
diff changeset
     1
#require lfs-test-server
35098
66c5a8cf2868 lfs: import the Facebook git-lfs client extension
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
     2
66c5a8cf2868 lfs: import the Facebook git-lfs client extension
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
     3
  $ LFS_LISTEN="tcp://:$HGPORT"
66c5a8cf2868 lfs: import the Facebook git-lfs client extension
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
     4
  $ LFS_HOST="localhost:$HGPORT"
66c5a8cf2868 lfs: import the Facebook git-lfs client extension
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
     5
  $ LFS_PUBLIC=1
66c5a8cf2868 lfs: import the Facebook git-lfs client extension
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
     6
  $ export LFS_LISTEN LFS_HOST LFS_PUBLIC
35141
32bb27dd5282 test-lfs: allow the test server to be killed on Windows
Matt Harbison <matt_harbison@yahoo.com>
parents: 35139
diff changeset
     7
#if no-windows
35098
66c5a8cf2868 lfs: import the Facebook git-lfs client extension
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
     8
  $ lfs-test-server &> lfs-server.log &
66c5a8cf2868 lfs: import the Facebook git-lfs client extension
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
     9
  $ echo $! >> $DAEMON_PIDS
35141
32bb27dd5282 test-lfs: allow the test server to be killed on Windows
Matt Harbison <matt_harbison@yahoo.com>
parents: 35139
diff changeset
    10
#else
32bb27dd5282 test-lfs: allow the test server to be killed on Windows
Matt Harbison <matt_harbison@yahoo.com>
parents: 35139
diff changeset
    11
  $ cat >> $TESTTMP/spawn.py <<EOF
32bb27dd5282 test-lfs: allow the test server to be killed on Windows
Matt Harbison <matt_harbison@yahoo.com>
parents: 35139
diff changeset
    12
  > import os
32bb27dd5282 test-lfs: allow the test server to be killed on Windows
Matt Harbison <matt_harbison@yahoo.com>
parents: 35139
diff changeset
    13
  > import subprocess
32bb27dd5282 test-lfs: allow the test server to be killed on Windows
Matt Harbison <matt_harbison@yahoo.com>
parents: 35139
diff changeset
    14
  > import sys
32bb27dd5282 test-lfs: allow the test server to be killed on Windows
Matt Harbison <matt_harbison@yahoo.com>
parents: 35139
diff changeset
    15
  > 
32bb27dd5282 test-lfs: allow the test server to be killed on Windows
Matt Harbison <matt_harbison@yahoo.com>
parents: 35139
diff changeset
    16
  > for path in os.environ["PATH"].split(os.pathsep):
32bb27dd5282 test-lfs: allow the test server to be killed on Windows
Matt Harbison <matt_harbison@yahoo.com>
parents: 35139
diff changeset
    17
  >     exe = os.path.join(path, 'lfs-test-server.exe')
32bb27dd5282 test-lfs: allow the test server to be killed on Windows
Matt Harbison <matt_harbison@yahoo.com>
parents: 35139
diff changeset
    18
  >     if os.path.exists(exe):
32bb27dd5282 test-lfs: allow the test server to be killed on Windows
Matt Harbison <matt_harbison@yahoo.com>
parents: 35139
diff changeset
    19
  >         with open('lfs-server.log', 'wb') as out:
32bb27dd5282 test-lfs: allow the test server to be killed on Windows
Matt Harbison <matt_harbison@yahoo.com>
parents: 35139
diff changeset
    20
  >             p = subprocess.Popen(exe, stdout=out, stderr=out)
32bb27dd5282 test-lfs: allow the test server to be killed on Windows
Matt Harbison <matt_harbison@yahoo.com>
parents: 35139
diff changeset
    21
  >             sys.stdout.write('%s\n' % p.pid)
32bb27dd5282 test-lfs: allow the test server to be killed on Windows
Matt Harbison <matt_harbison@yahoo.com>
parents: 35139
diff changeset
    22
  >             sys.exit(0)
32bb27dd5282 test-lfs: allow the test server to be killed on Windows
Matt Harbison <matt_harbison@yahoo.com>
parents: 35139
diff changeset
    23
  > sys.exit(1)
32bb27dd5282 test-lfs: allow the test server to be killed on Windows
Matt Harbison <matt_harbison@yahoo.com>
parents: 35139
diff changeset
    24
  > EOF
32bb27dd5282 test-lfs: allow the test server to be killed on Windows
Matt Harbison <matt_harbison@yahoo.com>
parents: 35139
diff changeset
    25
  $ $PYTHON $TESTTMP/spawn.py >> $DAEMON_PIDS
32bb27dd5282 test-lfs: allow the test server to be killed on Windows
Matt Harbison <matt_harbison@yahoo.com>
parents: 35139
diff changeset
    26
#endif
35098
66c5a8cf2868 lfs: import the Facebook git-lfs client extension
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    27
66c5a8cf2868 lfs: import the Facebook git-lfs client extension
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    28
  $ cat >> $HGRCPATH <<EOF
66c5a8cf2868 lfs: import the Facebook git-lfs client extension
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    29
  > [extensions]
66c5a8cf2868 lfs: import the Facebook git-lfs client extension
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    30
  > lfs=
66c5a8cf2868 lfs: import the Facebook git-lfs client extension
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    31
  > [lfs]
66c5a8cf2868 lfs: import the Facebook git-lfs client extension
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    32
  > url=http://foo:bar@$LFS_HOST/
35618
c780e0649e41 lfs: migrate most file filtering from threshold to custom filter
Matt Harbison <matt_harbison@yahoo.com>
parents: 35568
diff changeset
    33
  > track=all()
35098
66c5a8cf2868 lfs: import the Facebook git-lfs client extension
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    34
  > EOF
66c5a8cf2868 lfs: import the Facebook git-lfs client extension
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    35
66c5a8cf2868 lfs: import the Facebook git-lfs client extension
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    36
  $ hg init repo1
66c5a8cf2868 lfs: import the Facebook git-lfs client extension
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    37
  $ cd repo1
66c5a8cf2868 lfs: import the Facebook git-lfs client extension
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    38
  $ echo THIS-IS-LFS > a
66c5a8cf2868 lfs: import the Facebook git-lfs client extension
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    39
  $ hg commit -m a -A a
66c5a8cf2868 lfs: import the Facebook git-lfs client extension
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    40
35526
e8f80529abeb lfs: use the local store method for opening a blob
Matt Harbison <matt_harbison@yahoo.com>
parents: 35504
diff changeset
    41
A push can be serviced directly from the usercache if it isn't in the local
e8f80529abeb lfs: use the local store method for opening a blob
Matt Harbison <matt_harbison@yahoo.com>
parents: 35504
diff changeset
    42
store.
e8f80529abeb lfs: use the local store method for opening a blob
Matt Harbison <matt_harbison@yahoo.com>
parents: 35504
diff changeset
    43
35098
66c5a8cf2868 lfs: import the Facebook git-lfs client extension
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    44
  $ hg init ../repo2
35526
e8f80529abeb lfs: use the local store method for opening a blob
Matt Harbison <matt_harbison@yahoo.com>
parents: 35504
diff changeset
    45
  $ mv .hg/store/lfs .hg/store/lfs_
35098
66c5a8cf2868 lfs: import the Facebook git-lfs client extension
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    46
  $ hg push ../repo2 -v
66c5a8cf2868 lfs: import the Facebook git-lfs client extension
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    47
  pushing to ../repo2
66c5a8cf2868 lfs: import the Facebook git-lfs client extension
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    48
  searching for changes
66c5a8cf2868 lfs: import the Facebook git-lfs client extension
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    49
  lfs: uploading 31cf46fbc4ecd458a0943c5b4881f1f5a6dd36c53d6167d5b69ac45149b38e5b (12 bytes)
35433
f98fac24b757 lfs: using workers in lfs prefetch
Wojciech Lis <wlis@fb.com>
parents: 35280
diff changeset
    50
  lfs: processed: 31cf46fbc4ecd458a0943c5b4881f1f5a6dd36c53d6167d5b69ac45149b38e5b
35881
fa993c3c8462 lfs: emit a status message to indicate how many blobs were uploaded
Matt Harbison <matt_harbison@yahoo.com>
parents: 35666
diff changeset
    51
  lfs: uploaded 1 files (12 bytes)
35098
66c5a8cf2868 lfs: import the Facebook git-lfs client extension
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    52
  1 changesets found
66c5a8cf2868 lfs: import the Facebook git-lfs client extension
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    53
  uncompressed size of bundle content:
66c5a8cf2868 lfs: import the Facebook git-lfs client extension
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    54
       * (changelog) (glob)
66c5a8cf2868 lfs: import the Facebook git-lfs client extension
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    55
       * (manifests) (glob)
66c5a8cf2868 lfs: import the Facebook git-lfs client extension
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    56
       *  a (glob)
66c5a8cf2868 lfs: import the Facebook git-lfs client extension
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    57
  adding changesets
66c5a8cf2868 lfs: import the Facebook git-lfs client extension
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    58
  adding manifests
66c5a8cf2868 lfs: import the Facebook git-lfs client extension
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    59
  adding file changes
66c5a8cf2868 lfs: import the Facebook git-lfs client extension
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    60
  added 1 changesets with 1 changes to 1 files
35504
6bb940de4c4c lfs: add the 'lfs' requirement in the changegroup transaction introducing lfs
Matt Harbison <matt_harbison@yahoo.com>
parents: 35476
diff changeset
    61
  calling hook pretxnchangegroup.lfs: hgext.lfs.checkrequireslfs
35526
e8f80529abeb lfs: use the local store method for opening a blob
Matt Harbison <matt_harbison@yahoo.com>
parents: 35504
diff changeset
    62
  $ mv .hg/store/lfs_ .hg/store/lfs
35098
66c5a8cf2868 lfs: import the Facebook git-lfs client extension
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    63
35280
8e72f9152c4d lfs: introduce a user level cache for lfs files
Matt Harbison <matt_harbison@yahoo.com>
parents: 35141
diff changeset
    64
Clear the cache to force a download
8e72f9152c4d lfs: introduce a user level cache for lfs files
Matt Harbison <matt_harbison@yahoo.com>
parents: 35141
diff changeset
    65
  $ rm -rf `hg config lfs.usercache`
35098
66c5a8cf2868 lfs: import the Facebook git-lfs client extension
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    66
  $ cd ../repo2
66c5a8cf2868 lfs: import the Facebook git-lfs client extension
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    67
  $ hg update tip -v
66c5a8cf2868 lfs: import the Facebook git-lfs client extension
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    68
  resolving manifests
66c5a8cf2868 lfs: import the Facebook git-lfs client extension
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    69
  lfs: downloading 31cf46fbc4ecd458a0943c5b4881f1f5a6dd36c53d6167d5b69ac45149b38e5b (12 bytes)
35473
02f54a1ec9eb lfs: add note messages indicating what store holds the lfs blob
Matt Harbison <matt_harbison@yahoo.com>
parents: 35433
diff changeset
    70
  lfs: adding 31cf46fbc4ecd458a0943c5b4881f1f5a6dd36c53d6167d5b69ac45149b38e5b to the usercache
35433
f98fac24b757 lfs: using workers in lfs prefetch
Wojciech Lis <wlis@fb.com>
parents: 35280
diff changeset
    71
  lfs: processed: 31cf46fbc4ecd458a0943c5b4881f1f5a6dd36c53d6167d5b69ac45149b38e5b
35922
0b79f99fd7b0 lfs: prefetch lfs blobs when applying merge updates
Matt Harbison <matt_harbison@yahoo.com>
parents: 35881
diff changeset
    72
  getting a
35473
02f54a1ec9eb lfs: add note messages indicating what store holds the lfs blob
Matt Harbison <matt_harbison@yahoo.com>
parents: 35433
diff changeset
    73
  lfs: found 31cf46fbc4ecd458a0943c5b4881f1f5a6dd36c53d6167d5b69ac45149b38e5b in the local lfs store
35098
66c5a8cf2868 lfs: import the Facebook git-lfs client extension
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    74
  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
66c5a8cf2868 lfs: import the Facebook git-lfs client extension
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    75
66c5a8cf2868 lfs: import the Facebook git-lfs client extension
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    76
When the server has some blobs already
66c5a8cf2868 lfs: import the Facebook git-lfs client extension
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    77
66c5a8cf2868 lfs: import the Facebook git-lfs client extension
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    78
  $ hg mv a b
66c5a8cf2868 lfs: import the Facebook git-lfs client extension
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    79
  $ echo ANOTHER-LARGE-FILE > c
66c5a8cf2868 lfs: import the Facebook git-lfs client extension
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    80
  $ echo ANOTHER-LARGE-FILE2 > d
66c5a8cf2868 lfs: import the Facebook git-lfs client extension
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    81
  $ hg commit -m b-and-c -A b c d
66c5a8cf2868 lfs: import the Facebook git-lfs client extension
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    82
  $ hg push ../repo1 -v | grep -v '^  '
66c5a8cf2868 lfs: import the Facebook git-lfs client extension
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    83
  pushing to ../repo1
66c5a8cf2868 lfs: import the Facebook git-lfs client extension
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    84
  searching for changes
66c5a8cf2868 lfs: import the Facebook git-lfs client extension
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    85
  lfs: need to transfer 2 objects (39 bytes)
66c5a8cf2868 lfs: import the Facebook git-lfs client extension
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    86
  lfs: uploading 37a65ab78d5ecda767e8622c248b5dbff1e68b1678ab0e730d5eb8601ec8ad19 (20 bytes)
35433
f98fac24b757 lfs: using workers in lfs prefetch
Wojciech Lis <wlis@fb.com>
parents: 35280
diff changeset
    87
  lfs: processed: 37a65ab78d5ecda767e8622c248b5dbff1e68b1678ab0e730d5eb8601ec8ad19
35098
66c5a8cf2868 lfs: import the Facebook git-lfs client extension
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    88
  lfs: uploading d11e1a642b60813aee592094109b406089b8dff4cb157157f753418ec7857998 (19 bytes)
35433
f98fac24b757 lfs: using workers in lfs prefetch
Wojciech Lis <wlis@fb.com>
parents: 35280
diff changeset
    89
  lfs: processed: d11e1a642b60813aee592094109b406089b8dff4cb157157f753418ec7857998
35881
fa993c3c8462 lfs: emit a status message to indicate how many blobs were uploaded
Matt Harbison <matt_harbison@yahoo.com>
parents: 35666
diff changeset
    90
  lfs: uploaded 2 files (39 bytes)
35098
66c5a8cf2868 lfs: import the Facebook git-lfs client extension
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    91
  1 changesets found
66c5a8cf2868 lfs: import the Facebook git-lfs client extension
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    92
  uncompressed size of bundle content:
66c5a8cf2868 lfs: import the Facebook git-lfs client extension
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    93
  adding changesets
66c5a8cf2868 lfs: import the Facebook git-lfs client extension
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    94
  adding manifests
66c5a8cf2868 lfs: import the Facebook git-lfs client extension
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    95
  adding file changes
66c5a8cf2868 lfs: import the Facebook git-lfs client extension
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    96
  added 1 changesets with 3 changes to 3 files
66c5a8cf2868 lfs: import the Facebook git-lfs client extension
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    97
35280
8e72f9152c4d lfs: introduce a user level cache for lfs files
Matt Harbison <matt_harbison@yahoo.com>
parents: 35141
diff changeset
    98
Clear the cache to force a download
8e72f9152c4d lfs: introduce a user level cache for lfs files
Matt Harbison <matt_harbison@yahoo.com>
parents: 35141
diff changeset
    99
  $ rm -rf `hg config lfs.usercache`
35098
66c5a8cf2868 lfs: import the Facebook git-lfs client extension
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   100
  $ hg --repo ../repo1 update tip -v
66c5a8cf2868 lfs: import the Facebook git-lfs client extension
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   101
  resolving manifests
35922
0b79f99fd7b0 lfs: prefetch lfs blobs when applying merge updates
Matt Harbison <matt_harbison@yahoo.com>
parents: 35881
diff changeset
   102
  lfs: need to transfer 2 objects (39 bytes)
0b79f99fd7b0 lfs: prefetch lfs blobs when applying merge updates
Matt Harbison <matt_harbison@yahoo.com>
parents: 35881
diff changeset
   103
  lfs: downloading 37a65ab78d5ecda767e8622c248b5dbff1e68b1678ab0e730d5eb8601ec8ad19 (20 bytes)
0b79f99fd7b0 lfs: prefetch lfs blobs when applying merge updates
Matt Harbison <matt_harbison@yahoo.com>
parents: 35881
diff changeset
   104
  lfs: adding 37a65ab78d5ecda767e8622c248b5dbff1e68b1678ab0e730d5eb8601ec8ad19 to the usercache
0b79f99fd7b0 lfs: prefetch lfs blobs when applying merge updates
Matt Harbison <matt_harbison@yahoo.com>
parents: 35881
diff changeset
   105
  lfs: processed: 37a65ab78d5ecda767e8622c248b5dbff1e68b1678ab0e730d5eb8601ec8ad19
35098
66c5a8cf2868 lfs: import the Facebook git-lfs client extension
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   106
  lfs: downloading d11e1a642b60813aee592094109b406089b8dff4cb157157f753418ec7857998 (19 bytes)
35473
02f54a1ec9eb lfs: add note messages indicating what store holds the lfs blob
Matt Harbison <matt_harbison@yahoo.com>
parents: 35433
diff changeset
   107
  lfs: adding d11e1a642b60813aee592094109b406089b8dff4cb157157f753418ec7857998 to the usercache
35433
f98fac24b757 lfs: using workers in lfs prefetch
Wojciech Lis <wlis@fb.com>
parents: 35280
diff changeset
   108
  lfs: processed: d11e1a642b60813aee592094109b406089b8dff4cb157157f753418ec7857998
35922
0b79f99fd7b0 lfs: prefetch lfs blobs when applying merge updates
Matt Harbison <matt_harbison@yahoo.com>
parents: 35881
diff changeset
   109
  getting b
0b79f99fd7b0 lfs: prefetch lfs blobs when applying merge updates
Matt Harbison <matt_harbison@yahoo.com>
parents: 35881
diff changeset
   110
  lfs: found 31cf46fbc4ecd458a0943c5b4881f1f5a6dd36c53d6167d5b69ac45149b38e5b in the local lfs store
0b79f99fd7b0 lfs: prefetch lfs blobs when applying merge updates
Matt Harbison <matt_harbison@yahoo.com>
parents: 35881
diff changeset
   111
  getting c
35473
02f54a1ec9eb lfs: add note messages indicating what store holds the lfs blob
Matt Harbison <matt_harbison@yahoo.com>
parents: 35433
diff changeset
   112
  lfs: found d11e1a642b60813aee592094109b406089b8dff4cb157157f753418ec7857998 in the local lfs store
35098
66c5a8cf2868 lfs: import the Facebook git-lfs client extension
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   113
  getting d
35473
02f54a1ec9eb lfs: add note messages indicating what store holds the lfs blob
Matt Harbison <matt_harbison@yahoo.com>
parents: 35433
diff changeset
   114
  lfs: found 37a65ab78d5ecda767e8622c248b5dbff1e68b1678ab0e730d5eb8601ec8ad19 in the local lfs store
35098
66c5a8cf2868 lfs: import the Facebook git-lfs client extension
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   115
  3 files updated, 0 files merged, 0 files removed, 0 files unresolved
66c5a8cf2868 lfs: import the Facebook git-lfs client extension
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   116
35476
417e8e040102 lfs: verify lfs object content when transferring to and from the remote store
Matt Harbison <matt_harbison@yahoo.com>
parents: 35475
diff changeset
   117
Test a corrupt file download, but clear the cache first to force a download.
35474
16660fd4428d test-lfs: add tests around corrupted lfs objects
Matt Harbison <matt_harbison@yahoo.com>
parents: 35473
diff changeset
   118
16660fd4428d test-lfs: add tests around corrupted lfs objects
Matt Harbison <matt_harbison@yahoo.com>
parents: 35473
diff changeset
   119
  $ rm -rf `hg config lfs.usercache`
16660fd4428d test-lfs: add tests around corrupted lfs objects
Matt Harbison <matt_harbison@yahoo.com>
parents: 35473
diff changeset
   120
  $ cp $TESTTMP/lfs-content/d1/1e/1a642b60813aee592094109b406089b8dff4cb157157f753418ec7857998 blob
16660fd4428d test-lfs: add tests around corrupted lfs objects
Matt Harbison <matt_harbison@yahoo.com>
parents: 35473
diff changeset
   121
  $ echo 'damage' > $TESTTMP/lfs-content/d1/1e/1a642b60813aee592094109b406089b8dff4cb157157f753418ec7857998
16660fd4428d test-lfs: add tests around corrupted lfs objects
Matt Harbison <matt_harbison@yahoo.com>
parents: 35473
diff changeset
   122
  $ rm ../repo1/.hg/store/lfs/objects/d1/1e1a642b60813aee592094109b406089b8dff4cb157157f753418ec7857998
16660fd4428d test-lfs: add tests around corrupted lfs objects
Matt Harbison <matt_harbison@yahoo.com>
parents: 35473
diff changeset
   123
  $ rm ../repo1/*
35476
417e8e040102 lfs: verify lfs object content when transferring to and from the remote store
Matt Harbison <matt_harbison@yahoo.com>
parents: 35475
diff changeset
   124
35474
16660fd4428d test-lfs: add tests around corrupted lfs objects
Matt Harbison <matt_harbison@yahoo.com>
parents: 35473
diff changeset
   125
  $ hg --repo ../repo1 update -C tip -v
16660fd4428d test-lfs: add tests around corrupted lfs objects
Matt Harbison <matt_harbison@yahoo.com>
parents: 35473
diff changeset
   126
  resolving manifests
16660fd4428d test-lfs: add tests around corrupted lfs objects
Matt Harbison <matt_harbison@yahoo.com>
parents: 35473
diff changeset
   127
  lfs: downloading d11e1a642b60813aee592094109b406089b8dff4cb157157f753418ec7857998 (19 bytes)
35552
fd610befc37f lfs: use the localstore download method to transfer from remote stores
Matt Harbison <matt_harbison@yahoo.com>
parents: 35526
diff changeset
   128
  abort: corrupt remote lfs object: d11e1a642b60813aee592094109b406089b8dff4cb157157f753418ec7857998
35474
16660fd4428d test-lfs: add tests around corrupted lfs objects
Matt Harbison <matt_harbison@yahoo.com>
parents: 35473
diff changeset
   129
  [255]
16660fd4428d test-lfs: add tests around corrupted lfs objects
Matt Harbison <matt_harbison@yahoo.com>
parents: 35473
diff changeset
   130
35476
417e8e040102 lfs: verify lfs object content when transferring to and from the remote store
Matt Harbison <matt_harbison@yahoo.com>
parents: 35475
diff changeset
   131
The corrupted blob is not added to the usercache or local store
35474
16660fd4428d test-lfs: add tests around corrupted lfs objects
Matt Harbison <matt_harbison@yahoo.com>
parents: 35473
diff changeset
   132
35476
417e8e040102 lfs: verify lfs object content when transferring to and from the remote store
Matt Harbison <matt_harbison@yahoo.com>
parents: 35475
diff changeset
   133
  $ test -f ../repo1/.hg/store/lfs/objects/d1/1e1a642b60813aee592094109b406089b8dff4cb157157f753418ec7857998
417e8e040102 lfs: verify lfs object content when transferring to and from the remote store
Matt Harbison <matt_harbison@yahoo.com>
parents: 35475
diff changeset
   134
  [1]
417e8e040102 lfs: verify lfs object content when transferring to and from the remote store
Matt Harbison <matt_harbison@yahoo.com>
parents: 35475
diff changeset
   135
  $ test -f `hg config lfs.usercache`/d1/1e1a642b60813aee592094109b406089b8dff4cb157157f753418ec7857998
417e8e040102 lfs: verify lfs object content when transferring to and from the remote store
Matt Harbison <matt_harbison@yahoo.com>
parents: 35475
diff changeset
   136
  [1]
35474
16660fd4428d test-lfs: add tests around corrupted lfs objects
Matt Harbison <matt_harbison@yahoo.com>
parents: 35473
diff changeset
   137
  $ cp blob $TESTTMP/lfs-content/d1/1e/1a642b60813aee592094109b406089b8dff4cb157157f753418ec7857998
16660fd4428d test-lfs: add tests around corrupted lfs objects
Matt Harbison <matt_harbison@yahoo.com>
parents: 35473
diff changeset
   138
16660fd4428d test-lfs: add tests around corrupted lfs objects
Matt Harbison <matt_harbison@yahoo.com>
parents: 35473
diff changeset
   139
Test a corrupted file upload
16660fd4428d test-lfs: add tests around corrupted lfs objects
Matt Harbison <matt_harbison@yahoo.com>
parents: 35473
diff changeset
   140
16660fd4428d test-lfs: add tests around corrupted lfs objects
Matt Harbison <matt_harbison@yahoo.com>
parents: 35473
diff changeset
   141
  $ echo 'another lfs blob' > b
16660fd4428d test-lfs: add tests around corrupted lfs objects
Matt Harbison <matt_harbison@yahoo.com>
parents: 35473
diff changeset
   142
  $ hg ci -m 'another blob'
16660fd4428d test-lfs: add tests around corrupted lfs objects
Matt Harbison <matt_harbison@yahoo.com>
parents: 35473
diff changeset
   143
  $ echo 'damage' > .hg/store/lfs/objects/e6/59058e26b07b39d2a9c7145b3f99b41f797b6621c8076600e9cb7ee88291f0
16660fd4428d test-lfs: add tests around corrupted lfs objects
Matt Harbison <matt_harbison@yahoo.com>
parents: 35473
diff changeset
   144
  $ hg push -v ../repo1
16660fd4428d test-lfs: add tests around corrupted lfs objects
Matt Harbison <matt_harbison@yahoo.com>
parents: 35473
diff changeset
   145
  pushing to ../repo1
16660fd4428d test-lfs: add tests around corrupted lfs objects
Matt Harbison <matt_harbison@yahoo.com>
parents: 35473
diff changeset
   146
  searching for changes
16660fd4428d test-lfs: add tests around corrupted lfs objects
Matt Harbison <matt_harbison@yahoo.com>
parents: 35473
diff changeset
   147
  lfs: uploading e659058e26b07b39d2a9c7145b3f99b41f797b6621c8076600e9cb7ee88291f0 (17 bytes)
35476
417e8e040102 lfs: verify lfs object content when transferring to and from the remote store
Matt Harbison <matt_harbison@yahoo.com>
parents: 35475
diff changeset
   148
  abort: detected corrupt lfs object: e659058e26b07b39d2a9c7145b3f99b41f797b6621c8076600e9cb7ee88291f0
417e8e040102 lfs: verify lfs object content when transferring to and from the remote store
Matt Harbison <matt_harbison@yahoo.com>
parents: 35475
diff changeset
   149
  (run hg verify)
35474
16660fd4428d test-lfs: add tests around corrupted lfs objects
Matt Harbison <matt_harbison@yahoo.com>
parents: 35473
diff changeset
   150
  [255]
16660fd4428d test-lfs: add tests around corrupted lfs objects
Matt Harbison <matt_harbison@yahoo.com>
parents: 35473
diff changeset
   151
35925
533f04d4cb6d archive: call the storage prefetch hook
Matt Harbison <matt_harbison@yahoo.com>
parents: 35924
diff changeset
   152
Archive will prefetch blobs in a group
533f04d4cb6d archive: call the storage prefetch hook
Matt Harbison <matt_harbison@yahoo.com>
parents: 35924
diff changeset
   153
533f04d4cb6d archive: call the storage prefetch hook
Matt Harbison <matt_harbison@yahoo.com>
parents: 35924
diff changeset
   154
  $ rm -rf .hg/store/lfs `hg config lfs.usercache`
533f04d4cb6d archive: call the storage prefetch hook
Matt Harbison <matt_harbison@yahoo.com>
parents: 35924
diff changeset
   155
  $ hg archive -vr 1 ../archive
35927
9b413478f261 lfs: deduplicate oids in the transfer
Matt Harbison <matt_harbison@yahoo.com>
parents: 35926
diff changeset
   156
  lfs: need to transfer 3 objects (51 bytes)
35925
533f04d4cb6d archive: call the storage prefetch hook
Matt Harbison <matt_harbison@yahoo.com>
parents: 35924
diff changeset
   157
  lfs: downloading 31cf46fbc4ecd458a0943c5b4881f1f5a6dd36c53d6167d5b69ac45149b38e5b (12 bytes)
533f04d4cb6d archive: call the storage prefetch hook
Matt Harbison <matt_harbison@yahoo.com>
parents: 35924
diff changeset
   158
  lfs: adding 31cf46fbc4ecd458a0943c5b4881f1f5a6dd36c53d6167d5b69ac45149b38e5b to the usercache
533f04d4cb6d archive: call the storage prefetch hook
Matt Harbison <matt_harbison@yahoo.com>
parents: 35924
diff changeset
   159
  lfs: processed: 31cf46fbc4ecd458a0943c5b4881f1f5a6dd36c53d6167d5b69ac45149b38e5b
533f04d4cb6d archive: call the storage prefetch hook
Matt Harbison <matt_harbison@yahoo.com>
parents: 35924
diff changeset
   160
  lfs: downloading 37a65ab78d5ecda767e8622c248b5dbff1e68b1678ab0e730d5eb8601ec8ad19 (20 bytes)
533f04d4cb6d archive: call the storage prefetch hook
Matt Harbison <matt_harbison@yahoo.com>
parents: 35924
diff changeset
   161
  lfs: adding 37a65ab78d5ecda767e8622c248b5dbff1e68b1678ab0e730d5eb8601ec8ad19 to the usercache
533f04d4cb6d archive: call the storage prefetch hook
Matt Harbison <matt_harbison@yahoo.com>
parents: 35924
diff changeset
   162
  lfs: processed: 37a65ab78d5ecda767e8622c248b5dbff1e68b1678ab0e730d5eb8601ec8ad19
533f04d4cb6d archive: call the storage prefetch hook
Matt Harbison <matt_harbison@yahoo.com>
parents: 35924
diff changeset
   163
  lfs: downloading d11e1a642b60813aee592094109b406089b8dff4cb157157f753418ec7857998 (19 bytes)
533f04d4cb6d archive: call the storage prefetch hook
Matt Harbison <matt_harbison@yahoo.com>
parents: 35924
diff changeset
   164
  lfs: adding d11e1a642b60813aee592094109b406089b8dff4cb157157f753418ec7857998 to the usercache
533f04d4cb6d archive: call the storage prefetch hook
Matt Harbison <matt_harbison@yahoo.com>
parents: 35924
diff changeset
   165
  lfs: processed: d11e1a642b60813aee592094109b406089b8dff4cb157157f753418ec7857998
533f04d4cb6d archive: call the storage prefetch hook
Matt Harbison <matt_harbison@yahoo.com>
parents: 35924
diff changeset
   166
  lfs: found 31cf46fbc4ecd458a0943c5b4881f1f5a6dd36c53d6167d5b69ac45149b38e5b in the local lfs store
533f04d4cb6d archive: call the storage prefetch hook
Matt Harbison <matt_harbison@yahoo.com>
parents: 35924
diff changeset
   167
  lfs: found 31cf46fbc4ecd458a0943c5b4881f1f5a6dd36c53d6167d5b69ac45149b38e5b in the local lfs store
533f04d4cb6d archive: call the storage prefetch hook
Matt Harbison <matt_harbison@yahoo.com>
parents: 35924
diff changeset
   168
  lfs: found d11e1a642b60813aee592094109b406089b8dff4cb157157f753418ec7857998 in the local lfs store
533f04d4cb6d archive: call the storage prefetch hook
Matt Harbison <matt_harbison@yahoo.com>
parents: 35924
diff changeset
   169
  lfs: found 37a65ab78d5ecda767e8622c248b5dbff1e68b1678ab0e730d5eb8601ec8ad19 in the local lfs store
533f04d4cb6d archive: call the storage prefetch hook
Matt Harbison <matt_harbison@yahoo.com>
parents: 35924
diff changeset
   170
  $ find ../archive | sort
533f04d4cb6d archive: call the storage prefetch hook
Matt Harbison <matt_harbison@yahoo.com>
parents: 35924
diff changeset
   171
  ../archive
533f04d4cb6d archive: call the storage prefetch hook
Matt Harbison <matt_harbison@yahoo.com>
parents: 35924
diff changeset
   172
  ../archive/.hg_archival.txt
533f04d4cb6d archive: call the storage prefetch hook
Matt Harbison <matt_harbison@yahoo.com>
parents: 35924
diff changeset
   173
  ../archive/a
533f04d4cb6d archive: call the storage prefetch hook
Matt Harbison <matt_harbison@yahoo.com>
parents: 35924
diff changeset
   174
  ../archive/b
533f04d4cb6d archive: call the storage prefetch hook
Matt Harbison <matt_harbison@yahoo.com>
parents: 35924
diff changeset
   175
  ../archive/c
533f04d4cb6d archive: call the storage prefetch hook
Matt Harbison <matt_harbison@yahoo.com>
parents: 35924
diff changeset
   176
  ../archive/d
533f04d4cb6d archive: call the storage prefetch hook
Matt Harbison <matt_harbison@yahoo.com>
parents: 35924
diff changeset
   177
35926
264b90a060b7 cat: call the storage prefetch hook
Matt Harbison <matt_harbison@yahoo.com>
parents: 35925
diff changeset
   178
Cat will prefetch blobs in a group
264b90a060b7 cat: call the storage prefetch hook
Matt Harbison <matt_harbison@yahoo.com>
parents: 35925
diff changeset
   179
264b90a060b7 cat: call the storage prefetch hook
Matt Harbison <matt_harbison@yahoo.com>
parents: 35925
diff changeset
   180
  $ rm -rf .hg/store/lfs `hg config lfs.usercache`
264b90a060b7 cat: call the storage prefetch hook
Matt Harbison <matt_harbison@yahoo.com>
parents: 35925
diff changeset
   181
  $ hg cat -vr 1 a b c
35927
9b413478f261 lfs: deduplicate oids in the transfer
Matt Harbison <matt_harbison@yahoo.com>
parents: 35926
diff changeset
   182
  lfs: need to transfer 2 objects (31 bytes)
35926
264b90a060b7 cat: call the storage prefetch hook
Matt Harbison <matt_harbison@yahoo.com>
parents: 35925
diff changeset
   183
  lfs: downloading 31cf46fbc4ecd458a0943c5b4881f1f5a6dd36c53d6167d5b69ac45149b38e5b (12 bytes)
264b90a060b7 cat: call the storage prefetch hook
Matt Harbison <matt_harbison@yahoo.com>
parents: 35925
diff changeset
   184
  lfs: adding 31cf46fbc4ecd458a0943c5b4881f1f5a6dd36c53d6167d5b69ac45149b38e5b to the usercache
264b90a060b7 cat: call the storage prefetch hook
Matt Harbison <matt_harbison@yahoo.com>
parents: 35925
diff changeset
   185
  lfs: processed: 31cf46fbc4ecd458a0943c5b4881f1f5a6dd36c53d6167d5b69ac45149b38e5b
264b90a060b7 cat: call the storage prefetch hook
Matt Harbison <matt_harbison@yahoo.com>
parents: 35925
diff changeset
   186
  lfs: downloading d11e1a642b60813aee592094109b406089b8dff4cb157157f753418ec7857998 (19 bytes)
264b90a060b7 cat: call the storage prefetch hook
Matt Harbison <matt_harbison@yahoo.com>
parents: 35925
diff changeset
   187
  lfs: adding d11e1a642b60813aee592094109b406089b8dff4cb157157f753418ec7857998 to the usercache
264b90a060b7 cat: call the storage prefetch hook
Matt Harbison <matt_harbison@yahoo.com>
parents: 35925
diff changeset
   188
  lfs: processed: d11e1a642b60813aee592094109b406089b8dff4cb157157f753418ec7857998
264b90a060b7 cat: call the storage prefetch hook
Matt Harbison <matt_harbison@yahoo.com>
parents: 35925
diff changeset
   189
  lfs: found 31cf46fbc4ecd458a0943c5b4881f1f5a6dd36c53d6167d5b69ac45149b38e5b in the local lfs store
264b90a060b7 cat: call the storage prefetch hook
Matt Harbison <matt_harbison@yahoo.com>
parents: 35925
diff changeset
   190
  THIS-IS-LFS
264b90a060b7 cat: call the storage prefetch hook
Matt Harbison <matt_harbison@yahoo.com>
parents: 35925
diff changeset
   191
  lfs: found 31cf46fbc4ecd458a0943c5b4881f1f5a6dd36c53d6167d5b69ac45149b38e5b in the local lfs store
264b90a060b7 cat: call the storage prefetch hook
Matt Harbison <matt_harbison@yahoo.com>
parents: 35925
diff changeset
   192
  THIS-IS-LFS
264b90a060b7 cat: call the storage prefetch hook
Matt Harbison <matt_harbison@yahoo.com>
parents: 35925
diff changeset
   193
  lfs: found d11e1a642b60813aee592094109b406089b8dff4cb157157f753418ec7857998 in the local lfs store
264b90a060b7 cat: call the storage prefetch hook
Matt Harbison <matt_harbison@yahoo.com>
parents: 35925
diff changeset
   194
  ANOTHER-LARGE-FILE
264b90a060b7 cat: call the storage prefetch hook
Matt Harbison <matt_harbison@yahoo.com>
parents: 35925
diff changeset
   195
35924
d857cad588e4 lfs: prefetch lfs blobs during revert
Matt Harbison <matt_harbison@yahoo.com>
parents: 35922
diff changeset
   196
Revert will prefetch blobs in a group
d857cad588e4 lfs: prefetch lfs blobs during revert
Matt Harbison <matt_harbison@yahoo.com>
parents: 35922
diff changeset
   197
d857cad588e4 lfs: prefetch lfs blobs during revert
Matt Harbison <matt_harbison@yahoo.com>
parents: 35922
diff changeset
   198
  $ rm -rf .hg/store/lfs
d857cad588e4 lfs: prefetch lfs blobs during revert
Matt Harbison <matt_harbison@yahoo.com>
parents: 35922
diff changeset
   199
  $ rm -rf `hg config lfs.usercache`
d857cad588e4 lfs: prefetch lfs blobs during revert
Matt Harbison <matt_harbison@yahoo.com>
parents: 35922
diff changeset
   200
  $ rm *
d857cad588e4 lfs: prefetch lfs blobs during revert
Matt Harbison <matt_harbison@yahoo.com>
parents: 35922
diff changeset
   201
  $ hg revert --all -r 1 -v
d857cad588e4 lfs: prefetch lfs blobs during revert
Matt Harbison <matt_harbison@yahoo.com>
parents: 35922
diff changeset
   202
  adding a
d857cad588e4 lfs: prefetch lfs blobs during revert
Matt Harbison <matt_harbison@yahoo.com>
parents: 35922
diff changeset
   203
  reverting b
d857cad588e4 lfs: prefetch lfs blobs during revert
Matt Harbison <matt_harbison@yahoo.com>
parents: 35922
diff changeset
   204
  reverting c
d857cad588e4 lfs: prefetch lfs blobs during revert
Matt Harbison <matt_harbison@yahoo.com>
parents: 35922
diff changeset
   205
  reverting d
35927
9b413478f261 lfs: deduplicate oids in the transfer
Matt Harbison <matt_harbison@yahoo.com>
parents: 35926
diff changeset
   206
  lfs: need to transfer 3 objects (51 bytes)
35924
d857cad588e4 lfs: prefetch lfs blobs during revert
Matt Harbison <matt_harbison@yahoo.com>
parents: 35922
diff changeset
   207
  lfs: downloading 31cf46fbc4ecd458a0943c5b4881f1f5a6dd36c53d6167d5b69ac45149b38e5b (12 bytes)
d857cad588e4 lfs: prefetch lfs blobs during revert
Matt Harbison <matt_harbison@yahoo.com>
parents: 35922
diff changeset
   208
  lfs: adding 31cf46fbc4ecd458a0943c5b4881f1f5a6dd36c53d6167d5b69ac45149b38e5b to the usercache
d857cad588e4 lfs: prefetch lfs blobs during revert
Matt Harbison <matt_harbison@yahoo.com>
parents: 35922
diff changeset
   209
  lfs: processed: 31cf46fbc4ecd458a0943c5b4881f1f5a6dd36c53d6167d5b69ac45149b38e5b
d857cad588e4 lfs: prefetch lfs blobs during revert
Matt Harbison <matt_harbison@yahoo.com>
parents: 35922
diff changeset
   210
  lfs: downloading 37a65ab78d5ecda767e8622c248b5dbff1e68b1678ab0e730d5eb8601ec8ad19 (20 bytes)
d857cad588e4 lfs: prefetch lfs blobs during revert
Matt Harbison <matt_harbison@yahoo.com>
parents: 35922
diff changeset
   211
  lfs: adding 37a65ab78d5ecda767e8622c248b5dbff1e68b1678ab0e730d5eb8601ec8ad19 to the usercache
d857cad588e4 lfs: prefetch lfs blobs during revert
Matt Harbison <matt_harbison@yahoo.com>
parents: 35922
diff changeset
   212
  lfs: processed: 37a65ab78d5ecda767e8622c248b5dbff1e68b1678ab0e730d5eb8601ec8ad19
d857cad588e4 lfs: prefetch lfs blobs during revert
Matt Harbison <matt_harbison@yahoo.com>
parents: 35922
diff changeset
   213
  lfs: downloading d11e1a642b60813aee592094109b406089b8dff4cb157157f753418ec7857998 (19 bytes)
d857cad588e4 lfs: prefetch lfs blobs during revert
Matt Harbison <matt_harbison@yahoo.com>
parents: 35922
diff changeset
   214
  lfs: adding d11e1a642b60813aee592094109b406089b8dff4cb157157f753418ec7857998 to the usercache
d857cad588e4 lfs: prefetch lfs blobs during revert
Matt Harbison <matt_harbison@yahoo.com>
parents: 35922
diff changeset
   215
  lfs: processed: d11e1a642b60813aee592094109b406089b8dff4cb157157f753418ec7857998
d857cad588e4 lfs: prefetch lfs blobs during revert
Matt Harbison <matt_harbison@yahoo.com>
parents: 35922
diff changeset
   216
  lfs: found 31cf46fbc4ecd458a0943c5b4881f1f5a6dd36c53d6167d5b69ac45149b38e5b in the local lfs store
d857cad588e4 lfs: prefetch lfs blobs during revert
Matt Harbison <matt_harbison@yahoo.com>
parents: 35922
diff changeset
   217
  lfs: found d11e1a642b60813aee592094109b406089b8dff4cb157157f753418ec7857998 in the local lfs store
d857cad588e4 lfs: prefetch lfs blobs during revert
Matt Harbison <matt_harbison@yahoo.com>
parents: 35922
diff changeset
   218
  lfs: found 37a65ab78d5ecda767e8622c248b5dbff1e68b1678ab0e730d5eb8601ec8ad19 in the local lfs store
d857cad588e4 lfs: prefetch lfs blobs during revert
Matt Harbison <matt_harbison@yahoo.com>
parents: 35922
diff changeset
   219
  lfs: found 31cf46fbc4ecd458a0943c5b4881f1f5a6dd36c53d6167d5b69ac45149b38e5b in the local lfs store
d857cad588e4 lfs: prefetch lfs blobs during revert
Matt Harbison <matt_harbison@yahoo.com>
parents: 35922
diff changeset
   220
35098
66c5a8cf2868 lfs: import the Facebook git-lfs client extension
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   221
Check error message when the remote missed a blob:
66c5a8cf2868 lfs: import the Facebook git-lfs client extension
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   222
66c5a8cf2868 lfs: import the Facebook git-lfs client extension
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   223
  $ echo FFFFF > b
66c5a8cf2868 lfs: import the Facebook git-lfs client extension
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   224
  $ hg commit -m b -A b
66c5a8cf2868 lfs: import the Facebook git-lfs client extension
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   225
  $ echo FFFFF >> b
66c5a8cf2868 lfs: import the Facebook git-lfs client extension
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   226
  $ hg commit -m b b
66c5a8cf2868 lfs: import the Facebook git-lfs client extension
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   227
  $ rm -rf .hg/store/lfs
35280
8e72f9152c4d lfs: introduce a user level cache for lfs files
Matt Harbison <matt_harbison@yahoo.com>
parents: 35141
diff changeset
   228
  $ rm -rf `hg config lfs.usercache`
35098
66c5a8cf2868 lfs: import the Facebook git-lfs client extension
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   229
  $ hg update -C '.^'
35666
2c6ebd0c850e lfs: remove internal url in test
Jun Wu <quark@fb.com>
parents: 35618
diff changeset
   230
  abort: LFS server error. Remote object for "b" not found:(.*)! (re)
35098
66c5a8cf2868 lfs: import the Facebook git-lfs client extension
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   231
  [255]
66c5a8cf2868 lfs: import the Facebook git-lfs client extension
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   232
66c5a8cf2868 lfs: import the Facebook git-lfs client extension
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   233
Check error message when object does not exist:
66c5a8cf2868 lfs: import the Facebook git-lfs client extension
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   234
35666
2c6ebd0c850e lfs: remove internal url in test
Jun Wu <quark@fb.com>
parents: 35618
diff changeset
   235
  $ cd $TESTTMP
35098
66c5a8cf2868 lfs: import the Facebook git-lfs client extension
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   236
  $ hg init test && cd test
66c5a8cf2868 lfs: import the Facebook git-lfs client extension
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   237
  $ echo "[extensions]" >> .hg/hgrc
66c5a8cf2868 lfs: import the Facebook git-lfs client extension
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   238
  $ echo "lfs=" >> .hg/hgrc
66c5a8cf2868 lfs: import the Facebook git-lfs client extension
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   239
  $ echo "[lfs]" >> .hg/hgrc
66c5a8cf2868 lfs: import the Facebook git-lfs client extension
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   240
  $ echo "threshold=1" >> .hg/hgrc
66c5a8cf2868 lfs: import the Facebook git-lfs client extension
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   241
  $ echo a > a
66c5a8cf2868 lfs: import the Facebook git-lfs client extension
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   242
  $ hg add a
66c5a8cf2868 lfs: import the Facebook git-lfs client extension
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   243
  $ hg commit -m 'test'
66c5a8cf2868 lfs: import the Facebook git-lfs client extension
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   244
  $ echo aaaaa > a
66c5a8cf2868 lfs: import the Facebook git-lfs client extension
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   245
  $ hg commit -m 'largefile'
66c5a8cf2868 lfs: import the Facebook git-lfs client extension
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   246
  $ hg debugdata .hg/store/data/a.i 1 # verify this is no the file content but includes "oid", the LFS "pointer".
66c5a8cf2868 lfs: import the Facebook git-lfs client extension
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   247
  version https://git-lfs.github.com/spec/v1
66c5a8cf2868 lfs: import the Facebook git-lfs client extension
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   248
  oid sha256:bdc26931acfb734b142a8d675f205becf27560dc461f501822de13274fe6fc8a
66c5a8cf2868 lfs: import the Facebook git-lfs client extension
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   249
  size 6
66c5a8cf2868 lfs: import the Facebook git-lfs client extension
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   250
  x-is-binary 0
66c5a8cf2868 lfs: import the Facebook git-lfs client extension
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   251
  $ cd ..
35280
8e72f9152c4d lfs: introduce a user level cache for lfs files
Matt Harbison <matt_harbison@yahoo.com>
parents: 35141
diff changeset
   252
  $ rm -rf `hg config lfs.usercache`
35666
2c6ebd0c850e lfs: remove internal url in test
Jun Wu <quark@fb.com>
parents: 35618
diff changeset
   253
2c6ebd0c850e lfs: remove internal url in test
Jun Wu <quark@fb.com>
parents: 35618
diff changeset
   254
(Restart the server in a different location so it no longer has the content)
2c6ebd0c850e lfs: remove internal url in test
Jun Wu <quark@fb.com>
parents: 35618
diff changeset
   255
2c6ebd0c850e lfs: remove internal url in test
Jun Wu <quark@fb.com>
parents: 35618
diff changeset
   256
  $ $PYTHON $RUNTESTDIR/killdaemons.py $DAEMON_PIDS
2c6ebd0c850e lfs: remove internal url in test
Jun Wu <quark@fb.com>
parents: 35618
diff changeset
   257
  $ rm $DAEMON_PIDS
2c6ebd0c850e lfs: remove internal url in test
Jun Wu <quark@fb.com>
parents: 35618
diff changeset
   258
  $ mkdir $TESTTMP/lfs-server2
2c6ebd0c850e lfs: remove internal url in test
Jun Wu <quark@fb.com>
parents: 35618
diff changeset
   259
  $ cd $TESTTMP/lfs-server2
2c6ebd0c850e lfs: remove internal url in test
Jun Wu <quark@fb.com>
parents: 35618
diff changeset
   260
#if no-windows
2c6ebd0c850e lfs: remove internal url in test
Jun Wu <quark@fb.com>
parents: 35618
diff changeset
   261
  $ lfs-test-server &> lfs-server.log &
2c6ebd0c850e lfs: remove internal url in test
Jun Wu <quark@fb.com>
parents: 35618
diff changeset
   262
  $ echo $! >> $DAEMON_PIDS
2c6ebd0c850e lfs: remove internal url in test
Jun Wu <quark@fb.com>
parents: 35618
diff changeset
   263
#else
2c6ebd0c850e lfs: remove internal url in test
Jun Wu <quark@fb.com>
parents: 35618
diff changeset
   264
  $ $PYTHON $TESTTMP/spawn.py >> $DAEMON_PIDS
2c6ebd0c850e lfs: remove internal url in test
Jun Wu <quark@fb.com>
parents: 35618
diff changeset
   265
#endif
2c6ebd0c850e lfs: remove internal url in test
Jun Wu <quark@fb.com>
parents: 35618
diff changeset
   266
2c6ebd0c850e lfs: remove internal url in test
Jun Wu <quark@fb.com>
parents: 35618
diff changeset
   267
  $ cd $TESTTMP
2c6ebd0c850e lfs: remove internal url in test
Jun Wu <quark@fb.com>
parents: 35618
diff changeset
   268
  $ hg clone test test2
35098
66c5a8cf2868 lfs: import the Facebook git-lfs client extension
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   269
  updating to branch default
35568
ebf14075a5c1 lfs: improve the error message for a missing remote blob
Matt Harbison <matt_harbison@yahoo.com>
parents: 35552
diff changeset
   270
  abort: LFS server error. Remote object for "a" not found:(.*)! (re)
35098
66c5a8cf2868 lfs: import the Facebook git-lfs client extension
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   271
  [255]
35141
32bb27dd5282 test-lfs: allow the test server to be killed on Windows
Matt Harbison <matt_harbison@yahoo.com>
parents: 35139
diff changeset
   272
32bb27dd5282 test-lfs: allow the test server to be killed on Windows
Matt Harbison <matt_harbison@yahoo.com>
parents: 35139
diff changeset
   273
  $ $PYTHON $RUNTESTDIR/killdaemons.py $DAEMON_PIDS