Mercurial > hg-stable
diff tests/test-share-safe.t @ 46017:705c37f22859
upgrade: add support for experimental safe share mode
Recently we introduce the share-safe functionality which makes shares share
requirements and config of share source. This patch adds support to
`debugupgraderepo` command to upgrade repository to share-safe mode when
`format.exp-share-safe` config is enabled.
Differential Revision: https://phab.mercurial-scm.org/D9144
author | Pulkit Goyal <7895pulkit@gmail.com> |
---|---|
date | Thu, 25 Jun 2020 13:13:21 +0530 |
parents | 8d72e29ad1e0 |
children | c6a1fa42e325 |
line wrap: on
line diff
--- a/tests/test-share-safe.t Mon Nov 30 14:11:03 2020 +0530 +++ b/tests/test-share-safe.t Thu Jun 25 13:13:21 2020 +0530 @@ -292,3 +292,89 @@ [255] $ hg showconfig ui.curses -R ../shared1 false + + $ cd ../ + +Test that upgrading using debugupgraderepo works +================================================= + + $ hg init non-share-safe --config format.exp-share-safe=false + $ cd non-share-safe + $ hg debugrequirements + dotencode + fncache + generaldelta + revlogv1 + sparserevlog + store + $ echo foo > foo + $ hg ci -Aqm 'added foo' + $ echo bar > bar + $ hg ci -Aqm 'added bar' + +Create a share before upgrading + + $ cd .. + $ hg share non-share-safe nss-share + updating working directory + 2 files updated, 0 files merged, 0 files removed, 0 files unresolved + $ hg debugrequirements -R nss-share + dotencode + fncache + generaldelta + revlogv1 + shared + sparserevlog + store + $ cd non-share-safe + +Upgrade + + $ hg debugupgraderepo -q + requirements + preserved: dotencode, fncache, generaldelta, revlogv1, sparserevlog, store + added: exp-sharesafe + + $ hg debugupgraderepo --run -q + upgrade will perform the following actions: + + requirements + preserved: dotencode, fncache, generaldelta, revlogv1, sparserevlog, store + added: exp-sharesafe + + repository upgraded to share safe mode, existing shares will still work in old non-safe mode. Re-share existing shares to use them in safe mode New shares will be created in safe mode. + + $ hg debugrequirements + dotencode + exp-sharesafe + fncache + generaldelta + revlogv1 + sparserevlog + store + + $ cat .hg/requires + exp-sharesafe + + $ cat .hg/store/requires + dotencode + fncache + generaldelta + revlogv1 + sparserevlog + store + + $ hg log -GT "{node}: {desc}\n" + @ f63db81e6dde1d9c78814167f77fb1fb49283f4f: added bar + | + o f3ba8b99bb6f897c87bbc1c07b75c6ddf43a4f77: added foo + + +Make sure existing shares still works + + $ hg log -GT "{node}: {desc}\n" -R ../nss-share + @ f63db81e6dde1d9c78814167f77fb1fb49283f4f: added bar + | + o f3ba8b99bb6f897c87bbc1c07b75c6ddf43a4f77: added foo + + $ hg unshare -R ../nss-share