tests/test-hgwebdirsym.t
author Gregory Szorc <gregory.szorc@gmail.com>
Sun, 06 Mar 2016 13:26:37 -0800
changeset 28488 437c32dcec7d
parent 25472 4d2b9b304ad0
permissions -rw-r--r--
context: use changelogrevision Upcoming patches will make the changelogrevision object perform lazy parsing. Let's switch to it. Because we're switching from a tuple to an object, everthing that accesses the internal cached attribute needs to be updated to access via attributes. A nice side-effect is this makes the code easier to read! Surprisingly, this appears to make revsets accessing this data slightly faster (values are before series, p1, this patch): author(mpm) 0.896565 0.929984 0.914234 desc(bug) 0.887169 0.935642 0.921073 date(2015) 0.878797 0.908094 0.891980 extra(rebase_source) 0.865446 0.922624 0.912514 author(mpm) or author(greg) 1.801832 1.902112 1.860402 author(mpm) or desc(bug) 1.812438 1.860977 1.844850 date(2015) or branch(default) 0.968276 1.005824 0.994673 author(mpm) or desc(bug) or date(2015) or extra(rebase_source) 3.656193 3.743381 3.721032

#require serve symlink

Tests whether or not hgwebdir properly handles various symlink topologies.

hide outer repo
  $ hg init

  $ hg init a
  $ echo a > a/a
  $ hg --cwd a ci -Ama -d'1 0'
  adding a
  $ mkdir webdir
  $ cd webdir
  $ hg init b
  $ echo b > b/b
  $ hg --cwd b ci -Amb -d'2 0'
  adding b
  $ hg init c
  $ echo c > c/c
  $ hg --cwd c ci -Amc -d'3 0'
  adding c
  $ ln -s ../a al
  $ ln -s ../webdir circle
  $ root=`pwd`
  $ cd ..
  $ cat > collections.conf <<EOF
  > [collections]
  > $root=$root
  > EOF
  $ hg serve -p $HGPORT -d --pid-file=hg.pid --webdir-conf collections.conf \
  >     -A access-collections.log -E error-collections.log
  $ cat hg.pid >> $DAEMON_PIDS

should succeed

  $ get-with-headers.py localhost:$HGPORT '?style=raw'
  200 Script output follows
  
  
  /al/
  /b/
  /c/
  
  $ get-with-headers.py localhost:$HGPORT 'al/file/tip/a?style=raw'
  200 Script output follows
  
  a
  $ get-with-headers.py localhost:$HGPORT 'b/file/tip/b?style=raw'
  200 Script output follows
  
  b
  $ get-with-headers.py localhost:$HGPORT 'c/file/tip/c?style=raw'
  200 Script output follows
  
  c

should fail

  $ get-with-headers.py localhost:$HGPORT 'circle/al/file/tip/a?style=raw'
  404 Not Found
  
  
  error: repository circle/al/file/tip/a not found
  [1]
  $ get-with-headers.py localhost:$HGPORT 'circle/b/file/tip/a?style=raw'
  404 Not Found
  
  
  error: repository circle/b/file/tip/a not found
  [1]
  $ get-with-headers.py localhost:$HGPORT 'circle/c/file/tip/a?style=raw'
  404 Not Found
  
  
  error: repository circle/c/file/tip/a not found
  [1]

collections errors

  $ cat error-collections.log