Mercurial > hg
view tests/test-remotefilelog-clone-tree.t @ 41152:191fac9ff9d3
obsutil: fix the issue5686
While traversing the obsolescence graph to find the successors sets
of csets:
In its 4th case (read comments of obsutil.successorssets to see
all 4 cases) where we know successors sets of all direct successors
of CURRENT, we were just missing a condition to filter out the case
when a cset is pruned.
And without this condition (that this patch added) it was making a whole
successor set to [] just because of one pruned marker.
For e.g:if following is the successors set of a cset A:
A -> [a, b, c]
if we prune c, we expect A's successors set to be [a, b] but
you would get:
A -> []
So this patch make sure that we calculate the right successorsset of csets
considering the pruned cset (in split case).
Differential Revision: https://phab.mercurial-scm.org/D5474
author | Sushil khanchi <sushilkhanchi97@gmail.com> |
---|---|
date | Sun, 23 Dec 2018 02:01:35 +0530 |
parents | a0886a4d6dce |
children | db9e33beb0fb |
line wrap: on
line source
#require no-windows $ . "$TESTDIR/remotefilelog-library.sh" $ hg init master $ cd master $ echo treemanifest >> .hg/requires $ cat >> .hg/hgrc <<EOF > [remotefilelog] > server=True > EOF # uppercase directory name to test encoding $ mkdir -p A/B $ echo x > A/B/x $ hg commit -qAm x $ cd .. # shallow clone from full $ hgcloneshallow ssh://user@dummy/master shallow --noupdate streaming all changes 4 files to transfer, 449 bytes of data transferred 449 bytes in * seconds (*/sec) (glob) searching for changes no changes found $ cd shallow $ cat .hg/requires dotencode exp-remotefilelog-repo-req-1 fncache generaldelta revlogv1 sparserevlog store treemanifest $ find .hg/store/meta | sort .hg/store/meta .hg/store/meta/_a .hg/store/meta/_a/00manifest.i .hg/store/meta/_a/_b .hg/store/meta/_a/_b/00manifest.i $ hg update 1 files updated, 0 files merged, 0 files removed, 0 files unresolved 1 files fetched over 1 fetches - (1 misses, 0.00% hit ratio) over *s (glob) $ cat A/B/x x $ ls .hg/store/data $ echo foo > A/B/F $ hg add A/B/F $ hg ci -m 'local content' $ ls .hg/store/data ca31988f085bfb945cb8115b78fabdee40f741aa $ cd .. # shallow clone from shallow $ hgcloneshallow ssh://user@dummy/shallow shallow2 --noupdate streaming all changes 5 files to transfer, 1008 bytes of data transferred 1008 bytes in * seconds (*/sec) (glob) searching for changes no changes found $ cd shallow2 $ cat .hg/requires dotencode exp-remotefilelog-repo-req-1 fncache generaldelta revlogv1 sparserevlog store treemanifest $ ls .hg/store/data ca31988f085bfb945cb8115b78fabdee40f741aa $ hg update 2 files updated, 0 files merged, 0 files removed, 0 files unresolved $ cat A/B/x x $ cd .. # full clone from shallow # - send stderr to /dev/null because the order of stdout/err causes # flakiness here $ hg clone --noupdate ssh://user@dummy/shallow full 2>/dev/null streaming all changes remote: abort: Cannot clone from a shallow repo to a full repo. [255] # getbundle full clone $ printf '[server]\npreferuncompressed=False\n' >> master/.hg/hgrc $ hgcloneshallow ssh://user@dummy/master shallow3 requesting all changes adding changesets adding manifests adding file changes added 1 changesets with 0 changes to 0 files new changesets 18d955ee7ba0 updating to branch default 1 files updated, 0 files merged, 0 files removed, 0 files unresolved $ ls shallow3/.hg/store/data $ cat shallow3/.hg/requires dotencode exp-remotefilelog-repo-req-1 fncache generaldelta revlogv1 sparserevlog store treemanifest