tests/test-narrow-debugcommands.t
author Matt Harbison <matt_harbison@yahoo.com>
Sat, 31 Mar 2018 15:20:43 -0400
changeset 37250 dfb38c4850a9
parent 36127 e14821b290eb
child 37284 009d0283de5f
permissions -rw-r--r--
lfs: add an experimental knob to disable blob serving The use case here is the server admin may want to store the blobs elsewhere. As it stands now, the `lfs.url` config on the client side is all that enforces this (the web.allow-* permissions aren't able to block LFS blobs without also blocking normal hg traffic). The real solution to this is to implement the 'verify' action on the client and server, but that's not a near term goal. Whether this is useful in its own right, and should be promoted out of experimental at some point is TBD. Since the other two tests that deal with LFS and `hg serve` are already complex and have #testcases, this seems like a good time to start a new test dedicated to access checks against the server. Instead of conditionally wrapping the wire protocol handler, I put this in the handler because I'd still like to bring the annotations in from the evolve extension in order to set up the wrapping. The 400 status probably isn't great, but that's what it would be for existing `hg serve` instances without support for serving blobs.

  $ . "$TESTDIR/narrow-library.sh"
  $ hg init repo
  $ cd repo
  $ cat << EOF > .hg/narrowspec
  > [includes]
  > path:foo
  > [excludes]
  > EOF
  $ echo treemanifest >> .hg/requires
  $ echo narrowhg-experimental >> .hg/requires
  $ mkdir -p foo/bar
  $ echo b > foo/f
  $ echo c > foo/bar/f
  $ hg commit -Am hi
  adding foo/bar/f
  adding foo/f
  $ hg debugindex -m
     rev    offset  length  delta linkrev nodeid       p1           p2
       0         0      47     -1       0 14a5d056d75a 000000000000 000000000000
  $ hg debugindex --dir foo
     rev    offset  length  delta linkrev nodeid       p1           p2
       0         0      77     -1       0 e635c7857aef 000000000000 000000000000
  $ hg debugindex --dir foo/
     rev    offset  length  delta linkrev nodeid       p1           p2
       0         0      77     -1       0 e635c7857aef 000000000000 000000000000
  $ hg debugindex --dir foo/bar
     rev    offset  length  delta linkrev nodeid       p1           p2
       0         0      44     -1       0 e091d4224761 000000000000 000000000000
  $ hg debugindex --dir foo/bar/
     rev    offset  length  delta linkrev nodeid       p1           p2
       0         0      44     -1       0 e091d4224761 000000000000 000000000000
  $ hg debugdata -m 0
  foo\x00e635c7857aef92ac761ce5741a99da159abbbb24t (esc)
  $ hg debugdata --dir foo 0
  bar\x00e091d42247613adff5d41b67f15fe7189ee97b39t (esc)
  f\x001e88685f5ddec574a34c70af492f95b6debc8741 (esc)
  $ hg debugdata --dir foo/ 0
  bar\x00e091d42247613adff5d41b67f15fe7189ee97b39t (esc)
  f\x001e88685f5ddec574a34c70af492f95b6debc8741 (esc)
  $ hg debugdata --dir foo/bar 0
  f\x00149da44f2a4e14f488b7bd4157945a9837408c00 (esc)
  $ hg debugdata --dir foo/bar/ 0
  f\x00149da44f2a4e14f488b7bd4157945a9837408c00 (esc)