mirror of
https://github.com/facebook/sapling.git
synced 2024-10-07 07:17:55 +03:00
cf0ea44613
If the working dir parent was destroyed by rollback, then the old behaviour is perfectly reasonable: restore dirstate, branch, and bookmarks. That way the working dir moves back to an existing changeset rather than becoming an orphan. But if the working dir parent was unaffected -- say, you updated to an older changeset and then did rollback -- then it's silly to restore dirstate and branch. So don't do that. Leave the status of the working dir alone. (But always restore bookmarks, because that file refers to changeset IDs that may have been destroyed.)
119 lines
3.2 KiB
Turing
119 lines
3.2 KiB
Turing
|
|
$ hg init test
|
|
$ cd test
|
|
$ echo a > a
|
|
$ hg ci -Ama
|
|
adding a
|
|
$ cd ..
|
|
$ hg clone test test2
|
|
updating to branch default
|
|
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
|
|
$ cd test2
|
|
$ echo a >> a
|
|
$ hg ci -mb
|
|
$ req() {
|
|
> hg serve -p $HGPORT -d --pid-file=hg.pid -E errors.log
|
|
> cat hg.pid >> $DAEMON_PIDS
|
|
> hg --cwd ../test2 push http://localhost:$HGPORT/
|
|
> "$TESTDIR/killdaemons.py"
|
|
> echo % serve errors
|
|
> cat errors.log
|
|
> }
|
|
$ cd ../test
|
|
|
|
expect ssl error
|
|
|
|
$ req
|
|
pushing to http://localhost:$HGPORT/
|
|
searching for changes
|
|
remote: ssl required
|
|
% serve errors
|
|
|
|
expect authorization error
|
|
|
|
$ echo '[web]' > .hg/hgrc
|
|
$ echo 'push_ssl = false' >> .hg/hgrc
|
|
$ req
|
|
pushing to http://localhost:$HGPORT/
|
|
searching for changes
|
|
abort: authorization failed
|
|
% serve errors
|
|
|
|
expect authorization error: must have authorized user
|
|
|
|
$ echo 'allow_push = unperson' >> .hg/hgrc
|
|
$ req
|
|
pushing to http://localhost:$HGPORT/
|
|
searching for changes
|
|
abort: authorization failed
|
|
% serve errors
|
|
|
|
expect success
|
|
|
|
$ echo 'allow_push = *' >> .hg/hgrc
|
|
$ echo '[hooks]' >> .hg/hgrc
|
|
$ echo 'changegroup = python "$TESTDIR"/printenv.py changegroup 0' >> .hg/hgrc
|
|
$ req
|
|
pushing to http://localhost:$HGPORT/
|
|
searching for changes
|
|
remote: adding changesets
|
|
remote: adding manifests
|
|
remote: adding file changes
|
|
remote: added 1 changesets with 1 changes to 1 files
|
|
remote: changegroup hook: HG_NODE=ba677d0156c1196c1a699fa53f390dcfc3ce3872 HG_SOURCE=serve HG_URL=remote:http:*: (glob)
|
|
% serve errors
|
|
$ hg rollback
|
|
repository tip rolled back to revision 0 (undo serve)
|
|
|
|
expect success, server lacks the httpheader capability
|
|
|
|
$ CAP=httpheader
|
|
$ . "$TESTDIR/notcapable"
|
|
$ req
|
|
pushing to http://localhost:$HGPORT/
|
|
searching for changes
|
|
remote: adding changesets
|
|
remote: adding manifests
|
|
remote: adding file changes
|
|
remote: added 1 changesets with 1 changes to 1 files
|
|
remote: changegroup hook: HG_NODE=ba677d0156c1196c1a699fa53f390dcfc3ce3872 HG_SOURCE=serve HG_URL=remote:http:*: (glob)
|
|
% serve errors
|
|
$ hg rollback
|
|
repository tip rolled back to revision 0 (undo serve)
|
|
|
|
expect success, server lacks the unbundlehash capability
|
|
|
|
$ CAP=unbundlehash
|
|
$ . "$TESTDIR/notcapable"
|
|
$ req
|
|
pushing to http://localhost:$HGPORT/
|
|
searching for changes
|
|
remote: adding changesets
|
|
remote: adding manifests
|
|
remote: adding file changes
|
|
remote: added 1 changesets with 1 changes to 1 files
|
|
remote: changegroup hook: HG_NODE=ba677d0156c1196c1a699fa53f390dcfc3ce3872 HG_SOURCE=serve HG_URL=remote:http:*: (glob)
|
|
% serve errors
|
|
$ hg rollback
|
|
repository tip rolled back to revision 0 (undo serve)
|
|
|
|
expect authorization error: all users denied
|
|
|
|
$ echo '[web]' > .hg/hgrc
|
|
$ echo 'push_ssl = false' >> .hg/hgrc
|
|
$ echo 'deny_push = *' >> .hg/hgrc
|
|
$ req
|
|
pushing to http://localhost:$HGPORT/
|
|
searching for changes
|
|
abort: authorization failed
|
|
% serve errors
|
|
|
|
expect authorization error: some users denied, users must be authenticated
|
|
|
|
$ echo 'deny_push = unperson' >> .hg/hgrc
|
|
$ req
|
|
pushing to http://localhost:$HGPORT/
|
|
searching for changes
|
|
abort: authorization failed
|
|
% serve errors
|