tests/test-clone-failure.t
author Sune Foldager <cryo@cyanite.org>
Sat, 14 May 2011 00:30:32 +0200
changeset 14323 a79fea6b3e77
parent 13956 ffb5c09ba822
child 15443 a1914d214579
permissions -rw-r--r--
debugindex etc.: add --changelog and --manifest options These open the changelog and manifest, respectively, directly so you don't need to specify the path. The options have been added to debugindex, debugdata and debugrevlog. The patch also fixes some minor usage-related bugs.

No local source

  $ hg clone a b
  abort: repository a not found!
  [255]

No remote source

  $ hg clone http://127.0.0.1:3121/a b
  abort: error: Connection refused
  [255]
  $ rm -rf b # work around bug with http clone

Inaccessible source

  $ mkdir a
  $ chmod 000 a
  $ hg clone a b
  abort: repository a not found!
  [255]

Inaccessible destination

  $ hg init b
  $ cd b
  $ hg clone . ../a
  abort: Permission denied: ../a
  [255]
  $ cd ..
  $ chmod 700 a
  $ rm -r a b

Source of wrong type

  $ if "$TESTDIR/hghave" -q fifo; then
  >     mkfifo a
  >     hg clone a b
  >     rm a
  > else
  >     echo "abort: repository a not found!"
  > fi
  abort: repository a not found!

Default destination, same directory

  $ hg init q
  $ hg clone q
  destination directory: q
  abort: destination 'q' is not empty
  [255]

destination directory not empty

  $ mkdir a 
  $ echo stuff > a/a
  $ hg clone q a
  abort: destination 'a' is not empty
  [255]

leave existing directory in place after clone failure

  $ hg init c
  $ cd c
  $ echo c > c
  $ hg commit -A -m test
  adding c
  $ chmod -rx .hg/store/data
  $ cd ..
  $ mkdir d
  $ hg clone c d 2> err
  [255]
  $ test -d d
  $ test -d d/.hg
  [1]

reenable perm to allow deletion

  $ chmod +rx c/.hg/store/data