Mercurial > hg
view tests/test-clone-pull-corruption.t @ 20775:982f13bef503
wireproto: move wireproto capabilities computation in a subfunction
It will help people that need to add capabilities (in a more subtle was that
just adding some to the list) in multiple way:
1. This function returns a list, not a string. Making it easier to look at,
extend or alter the content.
2. The original capabilities function will be store in the dictionary of wire
protocol command. So extension that wrap this function also need to update
the dictionary entry.
Both wrapping and update of the dictionary entry are needed because the
`hello` wire protocol use the function itself. This is specifically sneaky for
extension writer as ssh use the `hello` command while http use the
`capabilities` command.
With this new `_capabilities` function there is one and only one obvious
place to wrap when needed.
author | Pierre-Yves David <pierre-yves.david@fb.com> |
---|---|
date | Wed, 12 Mar 2014 14:46:41 -0700 |
parents | d2fe9aaedcaf |
children | b2c1ff96c1e1 |
line wrap: on
line source
Corrupt an hg repo with a pull started during an aborted commit Create two repos, so that one of them can pull from the other one. $ hg init source $ cd source $ touch foo $ hg add foo $ hg ci -m 'add foo' $ hg clone . ../corrupted updating to branch default 1 files updated, 0 files merged, 0 files removed, 0 files unresolved $ echo >> foo $ hg ci -m 'change foo' Add a hook to wait 5 seconds and then abort the commit $ cd ../corrupted $ echo "[hooks]" >> .hg/hgrc $ echo "pretxncommit = sh -c 'sleep 5; exit 1'" >> .hg/hgrc start a commit... $ touch bar $ hg add bar $ hg ci -m 'add bar' & ... and start a pull while the commit is still running $ sleep 1 $ hg pull ../source 2>/dev/null pulling from ../source transaction abort! rollback completed abort: pretxncommit hook exited with status 1 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) see what happened $ wait $ hg verify checking changesets checking manifests crosschecking files in changesets and manifests checking files 1 files, 2 changesets, 2 total revisions $ cd ..