summaryrefslogtreecommitdiff
path: root/tests/test-init.t
diff options
context:
space:
mode:
Diffstat (limited to 'tests/test-init.t')
-rw-r--r--tests/test-init.t199
1 files changed, 199 insertions, 0 deletions
diff --git a/tests/test-init.t b/tests/test-init.t
new file mode 100644
index 0000000..aa4610b
--- /dev/null
+++ b/tests/test-init.t
@@ -0,0 +1,199 @@
+This test tries to exercise the ssh functionality with a dummy script
+
+ $ checknewrepo()
+ > {
+ > name=$1
+ > if [ -d "$name"/.hg/store ]; then
+ > echo store created
+ > fi
+ > if [ -f "$name"/.hg/00changelog.i ]; then
+ > echo 00changelog.i created
+ > fi
+ > cat "$name"/.hg/requires
+ > }
+
+creating 'local'
+
+ $ hg init local
+ $ checknewrepo local
+ store created
+ 00changelog.i created
+ revlogv1
+ fncache
+ store
+ dotencode
+ $ echo this > local/foo
+ $ hg ci --cwd local -A -m "init"
+ adding foo
+
+creating repo with format.usestore=false
+
+ $ hg --config format.usestore=false init old
+ $ checknewrepo old
+ revlogv1
+
+creating repo with format.usefncache=false
+
+ $ hg --config format.usefncache=false init old2
+ $ checknewrepo old2
+ store created
+ 00changelog.i created
+ revlogv1
+ store
+
+creating repo with format.dotencode=false
+
+ $ hg --config format.dotencode=false init old3
+ $ checknewrepo old3
+ store created
+ 00changelog.i created
+ revlogv1
+ fncache
+ store
+
+test failure
+
+ $ hg init local
+ abort: repository local already exists!
+ [255]
+
+init+push to remote2
+
+ $ hg init -e "python \"$TESTDIR/dummyssh\"" ssh://user@dummy/remote2
+ $ hg incoming -R remote2 local
+ comparing with local
+ changeset: 0:08b9e9f63b32
+ tag: tip
+ user: test
+ date: Thu Jan 01 00:00:00 1970 +0000
+ summary: init
+
+
+ $ hg push -R local -e "python \"$TESTDIR/dummyssh\"" ssh://user@dummy/remote2
+ pushing to ssh://user@dummy/remote2
+ searching for changes
+ remote: adding changesets
+ remote: adding manifests
+ remote: adding file changes
+ remote: added 1 changesets with 1 changes to 1 files
+
+clone to remote1
+
+ $ hg clone -e "python \"$TESTDIR/dummyssh\"" local ssh://user@dummy/remote1
+ searching for changes
+ remote: adding changesets
+ remote: adding manifests
+ remote: adding file changes
+ remote: added 1 changesets with 1 changes to 1 files
+
+init to existing repo
+
+ $ hg init -e "python \"$TESTDIR/dummyssh\"" ssh://user@dummy/remote1
+ abort: repository remote1 already exists!
+ abort: could not create remote repo!
+ [255]
+
+clone to existing repo
+
+ $ hg clone -e "python \"$TESTDIR/dummyssh\"" local ssh://user@dummy/remote1
+ abort: repository remote1 already exists!
+ abort: could not create remote repo!
+ [255]
+
+output of dummyssh
+
+ $ cat dummylog
+ Got arguments 1:user@dummy 2:hg init remote2
+ Got arguments 1:user@dummy 2:hg -R remote2 serve --stdio
+ Got arguments 1:user@dummy 2:hg -R remote2 serve --stdio
+ Got arguments 1:user@dummy 2:hg init remote1
+ Got arguments 1:user@dummy 2:hg -R remote1 serve --stdio
+ Got arguments 1:user@dummy 2:hg init remote1
+ Got arguments 1:user@dummy 2:hg init remote1
+
+comparing repositories
+
+ $ hg tip -q -R local
+ 0:08b9e9f63b32
+ $ hg tip -q -R remote1
+ 0:08b9e9f63b32
+ $ hg tip -q -R remote2
+ 0:08b9e9f63b32
+
+check names for repositories (clashes with URL schemes, special chars)
+
+ $ for i in bundle file hg http https old-http ssh static-http "with space"; do
+ > printf "hg init \"$i\"... "
+ > hg init "$i"
+ > test -d "$i" -a -d "$i/.hg" && echo "ok" || echo "failed"
+ > done
+ hg init "bundle"... ok
+ hg init "file"... ok
+ hg init "hg"... ok
+ hg init "http"... ok
+ hg init "https"... ok
+ hg init "old-http"... ok
+ hg init "ssh"... ok
+ hg init "static-http"... ok
+ hg init "with space"... ok
+#if eol-in-paths
+/* " " is not a valid name for a directory on Windows */
+ $ hg init " "
+ $ test -d " "
+ $ test -d " /.hg"
+#endif
+
+creating 'local/sub/repo'
+
+ $ hg init local/sub/repo
+ $ checknewrepo local/sub/repo
+ store created
+ 00changelog.i created
+ revlogv1
+ fncache
+ store
+ dotencode
+
+prepare test of init of url configured from paths
+
+ $ echo '[paths]' >> $HGRCPATH
+ $ echo "somewhere = `pwd`/url from paths" >> $HGRCPATH
+ $ echo "elsewhere = `pwd`/another paths url" >> $HGRCPATH
+
+init should (for consistency with clone) expand the url
+
+ $ hg init somewhere
+ $ checknewrepo "url from paths"
+ store created
+ 00changelog.i created
+ revlogv1
+ fncache
+ store
+ dotencode
+
+verify that clone also expand urls
+
+ $ hg clone somewhere elsewhere
+ updating to branch default
+ 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
+ $ checknewrepo "another paths url"
+ store created
+ 00changelog.i created
+ revlogv1
+ fncache
+ store
+ dotencode
+
+clone bookmarks
+
+ $ hg -R local bookmark test
+ $ hg -R local bookmarks
+ * test 0:08b9e9f63b32
+ $ hg clone -e "python \"$TESTDIR/dummyssh\"" local ssh://user@dummy/remote-bookmarks
+ searching for changes
+ remote: adding changesets
+ remote: adding manifests
+ remote: adding file changes
+ remote: added 1 changesets with 1 changes to 1 files
+ $ hg -R remote-bookmarks bookmarks
+ test 0:08b9e9f63b32