mirror of
https://github.com/facebook/sapling.git
synced 2024-10-12 01:39:21 +03:00
a52d7e5744
The generation of cache files like tags.cache and branchheads.cache is not an actual reflection of things changing in the whole of the .hg directory (like eg a commit or a rebase or something) but instead these cache files are just part of bookkeeping. As such its convienant to allow various clients to ignore file events to do with these cache files which would otherwise cause a double refresh. Eg one refresh might occur after a commit, but the act of refreshing after the commit would cause Mercurial to generate a new branchheads.cache which would then cause a second refresh, for clients. However if these cache files are moved into a directory like eg .hg/cache/ then GUI clients on OSX (and possibly other platforms) can happily ignore file events in this cache directory.
158 lines
4.1 KiB
Perl
158 lines
4.1 KiB
Perl
|
|
$ cp "$TESTDIR"/printenv.py .
|
|
$ hg clone http://localhost:$HGPORT/ copy
|
|
abort: error: Connection refused
|
|
[255]
|
|
$ test -d copy
|
|
[1]
|
|
|
|
This server doesn't do range requests so it's basically only good for
|
|
one pull
|
|
|
|
$ cat > dumb.py <<EOF
|
|
> import BaseHTTPServer, SimpleHTTPServer, os, signal, sys
|
|
>
|
|
> def run(server_class=BaseHTTPServer.HTTPServer,
|
|
> handler_class=SimpleHTTPServer.SimpleHTTPRequestHandler):
|
|
> server_address = ('localhost', int(os.environ['HGPORT']))
|
|
> httpd = server_class(server_address, handler_class)
|
|
> httpd.serve_forever()
|
|
>
|
|
> signal.signal(signal.SIGTERM, lambda x, y: sys.exit(0))
|
|
> run()
|
|
> EOF
|
|
$ python dumb.py 2>/dev/null &
|
|
$ echo $! >> $DAEMON_PIDS
|
|
$ mkdir remote
|
|
$ cd remote
|
|
$ hg init
|
|
$ echo foo > bar
|
|
$ echo c2 > '.dotfile with spaces'
|
|
$ hg add
|
|
adding .dotfile with spaces
|
|
adding bar
|
|
$ hg commit -m"test"
|
|
$ hg tip
|
|
changeset: 0:02770d679fb8
|
|
tag: tip
|
|
user: test
|
|
date: Thu Jan 01 00:00:00 1970 +0000
|
|
summary: test
|
|
|
|
$ cd ..
|
|
$ hg clone static-http://localhost:$HGPORT/remote local
|
|
requesting all changes
|
|
adding changesets
|
|
adding manifests
|
|
adding file changes
|
|
added 1 changesets with 2 changes to 2 files
|
|
updating to branch default
|
|
2 files updated, 0 files merged, 0 files removed, 0 files unresolved
|
|
$ cd local
|
|
$ hg verify
|
|
checking changesets
|
|
checking manifests
|
|
crosschecking files in changesets and manifests
|
|
checking files
|
|
2 files, 1 changesets, 2 total revisions
|
|
$ cat bar
|
|
foo
|
|
$ cd ../remote
|
|
$ echo baz > quux
|
|
$ hg commit -A -mtest2
|
|
adding quux
|
|
|
|
check for HTTP opener failures when cachefile does not exist
|
|
|
|
$ rm .hg/cache/*
|
|
$ cd ../local
|
|
$ echo '[hooks]' >> .hg/hgrc
|
|
$ echo 'changegroup = python ../printenv.py changegroup' >> .hg/hgrc
|
|
$ hg pull
|
|
changegroup hook: HG_NODE=4ac2e3648604439c580c69b09ec9d93a88d93432 HG_SOURCE=pull HG_URL=http://localhost:$HGPORT/remote
|
|
pulling from static-http://localhost:$HGPORT/remote
|
|
searching for changes
|
|
adding changesets
|
|
adding manifests
|
|
adding file changes
|
|
added 1 changesets with 1 changes to 1 files
|
|
(run 'hg update' to get a working copy)
|
|
|
|
trying to push
|
|
|
|
$ hg update
|
|
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
|
|
$ echo more foo >> bar
|
|
$ hg commit -m"test"
|
|
$ hg push
|
|
pushing to static-http://localhost:$HGPORT/remote
|
|
abort: cannot lock static-http repository
|
|
[255]
|
|
|
|
trying clone -r
|
|
|
|
$ cd ..
|
|
$ hg clone -r donotexist static-http://localhost:$HGPORT/remote local0
|
|
abort: unknown revision 'donotexist'!
|
|
[255]
|
|
$ hg clone -r 0 static-http://localhost:$HGPORT/remote local0
|
|
adding changesets
|
|
adding manifests
|
|
adding file changes
|
|
added 1 changesets with 2 changes to 2 files
|
|
updating to branch default
|
|
2 files updated, 0 files merged, 0 files removed, 0 files unresolved
|
|
|
|
test with "/" URI (issue 747)
|
|
|
|
$ hg init
|
|
$ echo a > a
|
|
$ hg add a
|
|
$ hg ci -ma
|
|
$ hg clone static-http://localhost:$HGPORT/ local2
|
|
requesting all changes
|
|
adding changesets
|
|
adding manifests
|
|
adding file changes
|
|
added 1 changesets with 1 changes to 1 files
|
|
updating to branch default
|
|
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
|
|
$ cd local2
|
|
$ hg verify
|
|
checking changesets
|
|
checking manifests
|
|
crosschecking files in changesets and manifests
|
|
checking files
|
|
1 files, 1 changesets, 1 total revisions
|
|
$ cat a
|
|
a
|
|
$ hg paths
|
|
default = static-http://localhost:$HGPORT/
|
|
|
|
test with empty repo (issue965)
|
|
|
|
$ cd ..
|
|
$ hg init remotempty
|
|
$ hg clone static-http://localhost:$HGPORT/remotempty local3
|
|
no changes found
|
|
updating to branch default
|
|
0 files updated, 0 files merged, 0 files removed, 0 files unresolved
|
|
$ cd local3
|
|
$ hg verify
|
|
checking changesets
|
|
checking manifests
|
|
crosschecking files in changesets and manifests
|
|
checking files
|
|
0 files, 0 changesets, 0 total revisions
|
|
$ hg paths
|
|
default = static-http://localhost:$HGPORT/remotempty
|
|
|
|
test with non-repo
|
|
|
|
$ cd ..
|
|
$ mkdir notarepo
|
|
$ hg clone static-http://localhost:$HGPORT/notarepo local3
|
|
abort: 'http://localhost:$HGPORT/notarepo' does not appear to be an hg repository!
|
|
[255]
|
|
$ kill $!
|