tests/test-hgweb-bundle.t
author Gregory Szorc <gregory.szorc@gmail.com>
Mon, 18 Aug 2014 12:12:57 -0700
changeset 22223 c39d404f0eb0
child 23835 aa4a1672583e
permissions -rw-r--r--
hgweb: refresh repository using URL not path (issue4323) hgweb detects out-of-date repository instances (using a highly suspect mechanism that should probably be fixed) and obtains a new repository object if needed. This patch changes the repository object copy to use the repo URL (instead of path). This preserves more information about the source repository and allows bundles to be served through hgweb. A test verifying that bundles can now be served properly via `hg serve` has been added.

#require serve

  $ hg init server
  $ cd server
  $ cat >> .hg/hgrc << EOF
  > [extensions]
  > strip=
  > EOF

  $ echo 1 > foo
  $ hg commit -A -m 'first'
  adding foo
  $ echo 2 > bar
  $ hg commit -A -m 'second'
  adding bar

Produce a bundle to use

  $ hg strip -r 1
  0 files updated, 0 files merged, 1 files removed, 0 files unresolved
  saved backup bundle to $TESTTMP/server/.hg/strip-backup/ed602e697e0f-backup.hg (glob)

Serve from a bundle file

  $ hg serve -R .hg/strip-backup/ed602e697e0f-backup.hg -d -p $HGPORT --pid-file=hg.pid
  $ cat hg.pid >> $DAEMON_PIDS

Ensure we're serving from the bundle

  $ ("$TESTDIR/get-with-headers.py" localhost:$HGPORT 'file/tip/?style=raw')
  200 Script output follows
  
  
  -rw-r--r-- 2 bar
  -rw-r--r-- 2 foo