tests/test-lfs-test-server.t
author Gregory Szorc <gregory.szorc@gmail.com>
Sun, 11 Feb 2018 16:16:43 -0800
changeset 36148 230489fc0b41
parent 35967 9b413478f261
child 36931 24e6342db1cb
permissions -rw-r--r--
py3: catch TypeError during template operations Two places in this code Python 3 changed from raising ValueError to TypeError. So catch the addition exceptions. IMO this code might be better off performing type sniffing. But I'm not sure the implications of changing that. Differential Revision: https://phab.mercurial-scm.org/D2156
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
35160
a2e927ded455 hghave: add a check for lfs-test-server
Matt Harbison <matt_harbison@yahoo.com>
parents: 35121
diff changeset
     1
#require lfs-test-server
35121
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
35162
32bb27dd5282 test-lfs: allow the test server to be killed on Windows
Matt Harbison <matt_harbison@yahoo.com>
parents: 35160
diff changeset
     7
#if no-windows
35121
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
35162
32bb27dd5282 test-lfs: allow the test server to be killed on Windows
Matt Harbison <matt_harbison@yahoo.com>
parents: 35160
diff changeset
    10
#else
32bb27dd5282 test-lfs: allow the test server to be killed on Windows
Matt Harbison <matt_harbison@yahoo.com>
parents: 35160
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: 35160
diff changeset
    12
  > import os
32bb27dd5282 test-lfs: allow the test server to be killed on Windows
Matt Harbison <matt_harbison@yahoo.com>
parents: 35160
diff changeset
    13
  > import subprocess
32bb27dd5282 test-lfs: allow the test server to be killed on Windows
Matt Harbison <matt_harbison@yahoo.com>
parents: 35160
diff changeset
    14
  > import sys
32bb27dd5282 test-lfs: allow the test server to be killed on Windows
Matt Harbison <matt_harbison@yahoo.com>
parents: 35160
diff changeset
    15
  > 
32bb27dd5282 test-lfs: allow the test server to be killed on Windows
Matt Harbison <matt_harbison@yahoo.com>
parents: 35160
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: 35160
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: 35160
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: 35160
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: 35160
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: 35160
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: 35160
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: 35160
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: 35160
diff changeset
    24
  > EOF
32bb27dd5282 test-lfs: allow the test server to be killed on Windows
Matt Harbison <matt_harbison@yahoo.com>
parents: 35160
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: 35160
diff changeset
    26
#endif
35121
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()
35121
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
35530
e8f80529abeb lfs: use the local store method for opening a blob
Matt Harbison <matt_harbison@yahoo.com>
parents: 35508
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: 35508
diff changeset
    42
store.
e8f80529abeb lfs: use the local store method for opening a blob
Matt Harbison <matt_harbison@yahoo.com>
parents: 35508
diff changeset
    43
35121
66c5a8cf2868 lfs: import the Facebook git-lfs client extension
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    44
  $ hg init ../repo2
35530
e8f80529abeb lfs: use the local store method for opening a blob
Matt Harbison <matt_harbison@yahoo.com>
parents: 35508
diff changeset
    45
  $ mv .hg/store/lfs .hg/store/lfs_
35121
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)
35437
f98fac24b757 lfs: using workers in lfs prefetch
Wojciech Lis <wlis@fb.com>
parents: 35289
diff changeset
    50
  lfs: processed: 31cf46fbc4ecd458a0943c5b4881f1f5a6dd36c53d6167d5b69ac45149b38e5b
35921
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)
35121
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
35508
6bb940de4c4c lfs: add the 'lfs' requirement in the changegroup transaction introducing lfs
Matt Harbison <matt_harbison@yahoo.com>
parents: 35480
diff changeset
    61
  calling hook pretxnchangegroup.lfs: hgext.lfs.checkrequireslfs
35530
e8f80529abeb lfs: use the local store method for opening a blob
Matt Harbison <matt_harbison@yahoo.com>
parents: 35508
diff changeset
    62
  $ mv .hg/store/lfs_ .hg/store/lfs
35121
66c5a8cf2868 lfs: import the Facebook git-lfs client extension
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    63
35289
8e72f9152c4d lfs: introduce a user level cache for lfs files
Matt Harbison <matt_harbison@yahoo.com>
parents: 35162
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: 35162
diff changeset
    65
  $ rm -rf `hg config lfs.usercache`
35121
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)
35477
02f54a1ec9eb lfs: add note messages indicating what store holds the lfs blob
Matt Harbison <matt_harbison@yahoo.com>
parents: 35437
diff changeset
    70
  lfs: adding 31cf46fbc4ecd458a0943c5b4881f1f5a6dd36c53d6167d5b69ac45149b38e5b to the usercache
35437
f98fac24b757 lfs: using workers in lfs prefetch
Wojciech Lis <wlis@fb.com>
parents: 35289
diff changeset
    71
  lfs: processed: 31cf46fbc4ecd458a0943c5b4881f1f5a6dd36c53d6167d5b69ac45149b38e5b
35962
0b79f99fd7b0 lfs: prefetch lfs blobs when applying merge updates
Matt Harbison <matt_harbison@yahoo.com>
parents: 35921
diff changeset
    72
  getting a
35477
02f54a1ec9eb lfs: add note messages indicating what store holds the lfs blob
Matt Harbison <matt_harbison@yahoo.com>
parents: 35437
diff changeset
    73
  lfs: found 31cf46fbc4ecd458a0943c5b4881f1f5a6dd36c53d6167d5b69ac45149b38e5b in the local lfs store
35121
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)
35437
f98fac24b757 lfs: using workers in lfs prefetch
Wojciech Lis <wlis@fb.com>
parents: 35289
diff changeset
    87
  lfs: processed: 37a65ab78d5ecda767e8622c248b5dbff1e68b1678ab0e730d5eb8601ec8ad19
35121
66c5a8cf2868 lfs: import the Facebook git-lfs client extension
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    88
  lfs: uploading d11e1a642b60813aee592094109b406089b8dff4cb157157f753418ec7857998 (19 bytes)
35437
f98fac24b757 lfs: using workers in lfs prefetch
Wojciech Lis <wlis@fb.com>
parents: 35289
diff changeset
    89
  lfs: processed: d11e1a642b60813aee592094109b406089b8dff4cb157157f753418ec7857998
35921
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)
35121
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
35289
8e72f9152c4d lfs: introduce a user level cache for lfs files
Matt Harbison <matt_harbison@yahoo.com>
parents: 35162
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: 35162
diff changeset
    99
  $ rm -rf `hg config lfs.usercache`
35121
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
35962
0b79f99fd7b0 lfs: prefetch lfs blobs when applying merge updates
Matt Harbison <matt_harbison@yahoo.com>
parents: 35921
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: 35921
diff changeset
   103
  lfs: downloading 37a65ab78d5ecda767e8622c248b5dbff1e68b1678ab0e730d5eb8601ec8ad19 (20 bytes)
0b79f99fd7b0 lfs: prefetch lfs blobs when applying merge updates
Matt Harbison <matt_harbison@yahoo.com>
parents: 35921
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: 35921
diff changeset
   105
  lfs: processed: 37a65ab78d5ecda767e8622c248b5dbff1e68b1678ab0e730d5eb8601ec8ad19
35121
66c5a8cf2868 lfs: import the Facebook git-lfs client extension
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   106
  lfs: downloading d11e1a642b60813aee592094109b406089b8dff4cb157157f753418ec7857998 (19 bytes)
35477
02f54a1ec9eb lfs: add note messages indicating what store holds the lfs blob
Matt Harbison <matt_harbison@yahoo.com>
parents: 35437
diff changeset
   107
  lfs: adding d11e1a642b60813aee592094109b406089b8dff4cb157157f753418ec7857998 to the usercache
35437
f98fac24b757 lfs: using workers in lfs prefetch
Wojciech Lis <wlis@fb.com>
parents: 35289
diff changeset
   108
  lfs: processed: d11e1a642b60813aee592094109b406089b8dff4cb157157f753418ec7857998
35962
0b79f99fd7b0 lfs: prefetch lfs blobs when applying merge updates
Matt Harbison <matt_harbison@yahoo.com>
parents: 35921
diff changeset
   109
  getting b
0b79f99fd7b0 lfs: prefetch lfs blobs when applying merge updates
Matt Harbison <matt_harbison@yahoo.com>
parents: 35921
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: 35921
diff changeset
   111
  getting c
35477
02f54a1ec9eb lfs: add note messages indicating what store holds the lfs blob
Matt Harbison <matt_harbison@yahoo.com>
parents: 35437
diff changeset
   112
  lfs: found d11e1a642b60813aee592094109b406089b8dff4cb157157f753418ec7857998 in the local lfs store
35121
66c5a8cf2868 lfs: import the Facebook git-lfs client extension
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   113
  getting d
35477
02f54a1ec9eb lfs: add note messages indicating what store holds the lfs blob
Matt Harbison <matt_harbison@yahoo.com>
parents: 35437
diff changeset
   114
  lfs: found 37a65ab78d5ecda767e8622c248b5dbff1e68b1678ab0e730d5eb8601ec8ad19 in the local lfs store
35121
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
35480
417e8e040102 lfs: verify lfs object content when transferring to and from the remote store
Matt Harbison <matt_harbison@yahoo.com>
parents: 35479
diff changeset
   117
Test a corrupt file download, but clear the cache first to force a download.
35478
16660fd4428d test-lfs: add tests around corrupted lfs objects
Matt Harbison <matt_harbison@yahoo.com>
parents: 35477
diff changeset
   118
16660fd4428d test-lfs: add tests around corrupted lfs objects
Matt Harbison <matt_harbison@yahoo.com>
parents: 35477
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: 35477
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: 35477
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: 35477
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: 35477
diff changeset
   123
  $ rm ../repo1/*
35480
417e8e040102 lfs: verify lfs object content when transferring to and from the remote store
Matt Harbison <matt_harbison@yahoo.com>
parents: 35479
diff changeset
   124
35478
16660fd4428d test-lfs: add tests around corrupted lfs objects
Matt Harbison <matt_harbison@yahoo.com>
parents: 35477
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: 35477
diff changeset
   126
  resolving manifests
16660fd4428d test-lfs: add tests around corrupted lfs objects
Matt Harbison <matt_harbison@yahoo.com>
parents: 35477
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: 35530
diff changeset
   128
  abort: corrupt remote lfs object: d11e1a642b60813aee592094109b406089b8dff4cb157157f753418ec7857998
35478
16660fd4428d test-lfs: add tests around corrupted lfs objects
Matt Harbison <matt_harbison@yahoo.com>
parents: 35477
diff changeset
   129
  [255]
16660fd4428d test-lfs: add tests around corrupted lfs objects
Matt Harbison <matt_harbison@yahoo.com>
parents: 35477
diff changeset
   130
35480
417e8e040102 lfs: verify lfs object content when transferring to and from the remote store
Matt Harbison <matt_harbison@yahoo.com>
parents: 35479
diff changeset
   131
The corrupted blob is not added to the usercache or local store
35478
16660fd4428d test-lfs: add tests around corrupted lfs objects
Matt Harbison <matt_harbison@yahoo.com>
parents: 35477
diff changeset
   132
35480
417e8e040102 lfs: verify lfs object content when transferring to and from the remote store
Matt Harbison <matt_harbison@yahoo.com>
parents: 35479
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: 35479
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: 35479
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: 35479
diff changeset
   136
  [1]
35478
16660fd4428d test-lfs: add tests around corrupted lfs objects
Matt Harbison <matt_harbison@yahoo.com>
parents: 35477
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: 35477
diff changeset
   138
16660fd4428d test-lfs: add tests around corrupted lfs objects
Matt Harbison <matt_harbison@yahoo.com>
parents: 35477
diff changeset
   139
Test a corrupted file upload
16660fd4428d test-lfs: add tests around corrupted lfs objects
Matt Harbison <matt_harbison@yahoo.com>
parents: 35477
diff changeset
   140
16660fd4428d test-lfs: add tests around corrupted lfs objects
Matt Harbison <matt_harbison@yahoo.com>
parents: 35477
diff changeset
   141
  $ echo 'another lfs blob' > b
16660fd4428d test-lfs: add tests around corrupted lfs objects
Matt Harbison <matt_harbison@yahoo.com>
parents: 35477
diff changeset
   142
  $ hg ci -m 'another blob'
16660fd4428d test-lfs: add tests around corrupted lfs objects
Matt Harbison <matt_harbison@yahoo.com>
parents: 35477
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: 35477
diff changeset
   144
  $ hg push -v ../repo1
16660fd4428d test-lfs: add tests around corrupted lfs objects
Matt Harbison <matt_harbison@yahoo.com>
parents: 35477
diff changeset
   145
  pushing to ../repo1
16660fd4428d test-lfs: add tests around corrupted lfs objects
Matt Harbison <matt_harbison@yahoo.com>
parents: 35477
diff changeset
   146
  searching for changes
16660fd4428d test-lfs: add tests around corrupted lfs objects
Matt Harbison <matt_harbison@yahoo.com>
parents: 35477
diff changeset
   147
  lfs: uploading e659058e26b07b39d2a9c7145b3f99b41f797b6621c8076600e9cb7ee88291f0 (17 bytes)
35480
417e8e040102 lfs: verify lfs object content when transferring to and from the remote store
Matt Harbison <matt_harbison@yahoo.com>
parents: 35479
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: 35479
diff changeset
   149
  (run hg verify)
35478
16660fd4428d test-lfs: add tests around corrupted lfs objects
Matt Harbison <matt_harbison@yahoo.com>
parents: 35477
diff changeset
   150
  [255]
16660fd4428d test-lfs: add tests around corrupted lfs objects
Matt Harbison <matt_harbison@yahoo.com>
parents: 35477
diff changeset
   151
35965
533f04d4cb6d archive: call the storage prefetch hook
Matt Harbison <matt_harbison@yahoo.com>
parents: 35964
diff changeset
   152
Archive will prefetch blobs in a group
533f04d4cb6d archive: call the storage prefetch hook
Matt Harbison <matt_harbison@yahoo.com>
parents: 35964
diff changeset
   153
533f04d4cb6d archive: call the storage prefetch hook
Matt Harbison <matt_harbison@yahoo.com>
parents: 35964
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: 35964
diff changeset
   155
  $ hg archive -vr 1 ../archive
35967
9b413478f261 lfs: deduplicate oids in the transfer
Matt Harbison <matt_harbison@yahoo.com>
parents: 35966
diff changeset
   156
  lfs: need to transfer 3 objects (51 bytes)
35965
533f04d4cb6d archive: call the storage prefetch hook
Matt Harbison <matt_harbison@yahoo.com>
parents: 35964
diff changeset
   157
  lfs: downloading 31cf46fbc4ecd458a0943c5b4881f1f5a6dd36c53d6167d5b69ac45149b38e5b (12 bytes)
533f04d4cb6d archive: call the storage prefetch hook
Matt Harbison <matt_harbison@yahoo.com>
parents: 35964
diff changeset
   158
  lfs: adding 31cf46fbc4ecd458a0943c5b4881f1f5a6dd36c53d6167d5b69ac45149b38e5b to the usercache
533f04d4cb6d archive: call the storage prefetch hook
Matt Harbison <matt_harbison@yahoo.com>
parents: 35964
diff changeset
   159
  lfs: processed: 31cf46fbc4ecd458a0943c5b4881f1f5a6dd36c53d6167d5b69ac45149b38e5b
533f04d4cb6d archive: call the storage prefetch hook
Matt Harbison <matt_harbison@yahoo.com>
parents: 35964
diff changeset
   160
  lfs: downloading 37a65ab78d5ecda767e8622c248b5dbff1e68b1678ab0e730d5eb8601ec8ad19 (20 bytes)
533f04d4cb6d archive: call the storage prefetch hook
Matt Harbison <matt_harbison@yahoo.com>
parents: 35964
diff changeset
   161
  lfs: adding 37a65ab78d5ecda767e8622c248b5dbff1e68b1678ab0e730d5eb8601ec8ad19 to the usercache
533f04d4cb6d archive: call the storage prefetch hook
Matt Harbison <matt_harbison@yahoo.com>
parents: 35964
diff changeset
   162
  lfs: processed: 37a65ab78d5ecda767e8622c248b5dbff1e68b1678ab0e730d5eb8601ec8ad19
533f04d4cb6d archive: call the storage prefetch hook
Matt Harbison <matt_harbison@yahoo.com>
parents: 35964
diff changeset
   163
  lfs: downloading d11e1a642b60813aee592094109b406089b8dff4cb157157f753418ec7857998 (19 bytes)
533f04d4cb6d archive: call the storage prefetch hook
Matt Harbison <matt_harbison@yahoo.com>
parents: 35964
diff changeset
   164
  lfs: adding d11e1a642b60813aee592094109b406089b8dff4cb157157f753418ec7857998 to the usercache
533f04d4cb6d archive: call the storage prefetch hook
Matt Harbison <matt_harbison@yahoo.com>
parents: 35964
diff changeset
   165
  lfs: processed: d11e1a642b60813aee592094109b406089b8dff4cb157157f753418ec7857998
533f04d4cb6d archive: call the storage prefetch hook
Matt Harbison <matt_harbison@yahoo.com>
parents: 35964
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: 35964
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: 35964
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: 35964
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: 35964
diff changeset
   170
  $ find ../archive | sort
533f04d4cb6d archive: call the storage prefetch hook
Matt Harbison <matt_harbison@yahoo.com>
parents: 35964
diff changeset
   171
  ../archive
533f04d4cb6d archive: call the storage prefetch hook
Matt Harbison <matt_harbison@yahoo.com>
parents: 35964
diff changeset
   172
  ../archive/.hg_archival.txt
533f04d4cb6d archive: call the storage prefetch hook
Matt Harbison <matt_harbison@yahoo.com>
parents: 35964
diff changeset
   173
  ../archive/a
533f04d4cb6d archive: call the storage prefetch hook
Matt Harbison <matt_harbison@yahoo.com>
parents: 35964
diff changeset
   174
  ../archive/b
533f04d4cb6d archive: call the storage prefetch hook
Matt Harbison <matt_harbison@yahoo.com>
parents: 35964
diff changeset
   175
  ../archive/c
533f04d4cb6d archive: call the storage prefetch hook
Matt Harbison <matt_harbison@yahoo.com>
parents: 35964
diff changeset
   176
  ../archive/d
533f04d4cb6d archive: call the storage prefetch hook
Matt Harbison <matt_harbison@yahoo.com>
parents: 35964
diff changeset
   177
35966
264b90a060b7 cat: call the storage prefetch hook
Matt Harbison <matt_harbison@yahoo.com>
parents: 35965
diff changeset
   178
Cat will prefetch blobs in a group
264b90a060b7 cat: call the storage prefetch hook
Matt Harbison <matt_harbison@yahoo.com>
parents: 35965
diff changeset
   179
264b90a060b7 cat: call the storage prefetch hook
Matt Harbison <matt_harbison@yahoo.com>
parents: 35965
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: 35965
diff changeset
   181
  $ hg cat -vr 1 a b c
35967
9b413478f261 lfs: deduplicate oids in the transfer
Matt Harbison <matt_harbison@yahoo.com>
parents: 35966
diff changeset
   182
  lfs: need to transfer 2 objects (31 bytes)
35966
264b90a060b7 cat: call the storage prefetch hook
Matt Harbison <matt_harbison@yahoo.com>
parents: 35965
diff changeset
   183
  lfs: downloading 31cf46fbc4ecd458a0943c5b4881f1f5a6dd36c53d6167d5b69ac45149b38e5b (12 bytes)
264b90a060b7 cat: call the storage prefetch hook
Matt Harbison <matt_harbison@yahoo.com>
parents: 35965
diff changeset
   184
  lfs: adding 31cf46fbc4ecd458a0943c5b4881f1f5a6dd36c53d6167d5b69ac45149b38e5b to the usercache
264b90a060b7 cat: call the storage prefetch hook
Matt Harbison <matt_harbison@yahoo.com>
parents: 35965
diff changeset
   185
  lfs: processed: 31cf46fbc4ecd458a0943c5b4881f1f5a6dd36c53d6167d5b69ac45149b38e5b
264b90a060b7 cat: call the storage prefetch hook
Matt Harbison <matt_harbison@yahoo.com>
parents: 35965
diff changeset
   186
  lfs: downloading d11e1a642b60813aee592094109b406089b8dff4cb157157f753418ec7857998 (19 bytes)
264b90a060b7 cat: call the storage prefetch hook
Matt Harbison <matt_harbison@yahoo.com>
parents: 35965
diff changeset
   187
  lfs: adding d11e1a642b60813aee592094109b406089b8dff4cb157157f753418ec7857998 to the usercache
264b90a060b7 cat: call the storage prefetch hook
Matt Harbison <matt_harbison@yahoo.com>
parents: 35965
diff changeset
   188
  lfs: processed: d11e1a642b60813aee592094109b406089b8dff4cb157157f753418ec7857998
264b90a060b7 cat: call the storage prefetch hook
Matt Harbison <matt_harbison@yahoo.com>
parents: 35965
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: 35965
diff changeset
   190
  THIS-IS-LFS
264b90a060b7 cat: call the storage prefetch hook
Matt Harbison <matt_harbison@yahoo.com>
parents: 35965
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: 35965
diff changeset
   192
  THIS-IS-LFS
264b90a060b7 cat: call the storage prefetch hook
Matt Harbison <matt_harbison@yahoo.com>
parents: 35965
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: 35965
diff changeset
   194
  ANOTHER-LARGE-FILE
264b90a060b7 cat: call the storage prefetch hook
Matt Harbison <matt_harbison@yahoo.com>
parents: 35965
diff changeset
   195
35964
d857cad588e4 lfs: prefetch lfs blobs during revert
Matt Harbison <matt_harbison@yahoo.com>
parents: 35962
diff changeset
   196
Revert will prefetch blobs in a group
d857cad588e4 lfs: prefetch lfs blobs during revert
Matt Harbison <matt_harbison@yahoo.com>
parents: 35962
diff changeset
   197
d857cad588e4 lfs: prefetch lfs blobs during revert
Matt Harbison <matt_harbison@yahoo.com>
parents: 35962
diff changeset
   198
  $ rm -rf .hg/store/lfs
d857cad588e4 lfs: prefetch lfs blobs during revert
Matt Harbison <matt_harbison@yahoo.com>
parents: 35962
diff changeset
   199
  $ rm -rf `hg config lfs.usercache`
d857cad588e4 lfs: prefetch lfs blobs during revert
Matt Harbison <matt_harbison@yahoo.com>
parents: 35962
diff changeset
   200
  $ rm *
d857cad588e4 lfs: prefetch lfs blobs during revert
Matt Harbison <matt_harbison@yahoo.com>
parents: 35962
diff changeset
   201
  $ hg revert --all -r 1 -v
d857cad588e4 lfs: prefetch lfs blobs during revert
Matt Harbison <matt_harbison@yahoo.com>
parents: 35962
diff changeset
   202
  adding a
d857cad588e4 lfs: prefetch lfs blobs during revert
Matt Harbison <matt_harbison@yahoo.com>
parents: 35962
diff changeset
   203
  reverting b
d857cad588e4 lfs: prefetch lfs blobs during revert
Matt Harbison <matt_harbison@yahoo.com>
parents: 35962
diff changeset
   204
  reverting c
d857cad588e4 lfs: prefetch lfs blobs during revert
Matt Harbison <matt_harbison@yahoo.com>
parents: 35962
diff changeset
   205
  reverting d
35967
9b413478f261 lfs: deduplicate oids in the transfer
Matt Harbison <matt_harbison@yahoo.com>
parents: 35966
diff changeset
   206
  lfs: need to transfer 3 objects (51 bytes)
35964
d857cad588e4 lfs: prefetch lfs blobs during revert
Matt Harbison <matt_harbison@yahoo.com>
parents: 35962
diff changeset
   207
  lfs: downloading 31cf46fbc4ecd458a0943c5b4881f1f5a6dd36c53d6167d5b69ac45149b38e5b (12 bytes)
d857cad588e4 lfs: prefetch lfs blobs during revert
Matt Harbison <matt_harbison@yahoo.com>
parents: 35962
diff changeset
   208
  lfs: adding 31cf46fbc4ecd458a0943c5b4881f1f5a6dd36c53d6167d5b69ac45149b38e5b to the usercache
d857cad588e4 lfs: prefetch lfs blobs during revert
Matt Harbison <matt_harbison@yahoo.com>
parents: 35962
diff changeset
   209
  lfs: processed: 31cf46fbc4ecd458a0943c5b4881f1f5a6dd36c53d6167d5b69ac45149b38e5b
d857cad588e4 lfs: prefetch lfs blobs during revert
Matt Harbison <matt_harbison@yahoo.com>
parents: 35962
diff changeset
   210
  lfs: downloading 37a65ab78d5ecda767e8622c248b5dbff1e68b1678ab0e730d5eb8601ec8ad19 (20 bytes)
d857cad588e4 lfs: prefetch lfs blobs during revert
Matt Harbison <matt_harbison@yahoo.com>
parents: 35962
diff changeset
   211
  lfs: adding 37a65ab78d5ecda767e8622c248b5dbff1e68b1678ab0e730d5eb8601ec8ad19 to the usercache
d857cad588e4 lfs: prefetch lfs blobs during revert
Matt Harbison <matt_harbison@yahoo.com>
parents: 35962
diff changeset
   212
  lfs: processed: 37a65ab78d5ecda767e8622c248b5dbff1e68b1678ab0e730d5eb8601ec8ad19
d857cad588e4 lfs: prefetch lfs blobs during revert
Matt Harbison <matt_harbison@yahoo.com>
parents: 35962
diff changeset
   213
  lfs: downloading d11e1a642b60813aee592094109b406089b8dff4cb157157f753418ec7857998 (19 bytes)
d857cad588e4 lfs: prefetch lfs blobs during revert
Matt Harbison <matt_harbison@yahoo.com>
parents: 35962
diff changeset
   214
  lfs: adding d11e1a642b60813aee592094109b406089b8dff4cb157157f753418ec7857998 to the usercache
d857cad588e4 lfs: prefetch lfs blobs during revert
Matt Harbison <matt_harbison@yahoo.com>
parents: 35962
diff changeset
   215
  lfs: processed: d11e1a642b60813aee592094109b406089b8dff4cb157157f753418ec7857998
d857cad588e4 lfs: prefetch lfs blobs during revert
Matt Harbison <matt_harbison@yahoo.com>
parents: 35962
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: 35962
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: 35962
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: 35962
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: 35962
diff changeset
   220
35121
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
35289
8e72f9152c4d lfs: introduce a user level cache for lfs files
Matt Harbison <matt_harbison@yahoo.com>
parents: 35162
diff changeset
   228
  $ rm -rf `hg config lfs.usercache`
35121
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)
35121
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
35121
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 ..
35289
8e72f9152c4d lfs: introduce a user level cache for lfs files
Matt Harbison <matt_harbison@yahoo.com>
parents: 35162
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
35121
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)
35121
66c5a8cf2868 lfs: import the Facebook git-lfs client extension
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
   271
  [255]
35162
32bb27dd5282 test-lfs: allow the test server to be killed on Windows
Matt Harbison <matt_harbison@yahoo.com>
parents: 35160
diff changeset
   272
32bb27dd5282 test-lfs: allow the test server to be killed on Windows
Matt Harbison <matt_harbison@yahoo.com>
parents: 35160
diff changeset
   273
  $ $PYTHON $RUNTESTDIR/killdaemons.py $DAEMON_PIDS