annotate tests/test-topic-issue6841.t @ 6935:954d7ea5cd67 stable tip

stack: when stack base is obsolete, pick any successor, even if at random There are situations when s0 is obsolete and we also cannot pick just one successor for it to use in stack. In such a case, let's pick the "latest" successor from the first set. We're assuming that obsutil.successorssets() returns data in the same order (it should, since it makes sure to sort data internally). Keeping that in mind, while the successor picked for s0 by this code is not based on any sort of sophisticated logic, it should nonetheless be the same every time. This patch is probably not going to completely break anything that was previously working fine, because the previous behavior was to just abort with an exception.
author Anton Shestakov <av6@dwimlabs.net>
date Sat, 16 Nov 2024 17:01:02 +0400
parents 7ec9f4b04519
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
6546
30d0d3d92c8d topic: properly process revbranchcache before sending it to peers (issue6841)
Anton Shestakov <av6@dwimlabs.net>
parents:
diff changeset
1 New clones shouldn't have topics in any on-disk caches (issue6841)
30d0d3d92c8d topic: properly process revbranchcache before sending it to peers (issue6841)
Anton Shestakov <av6@dwimlabs.net>
parents:
diff changeset
2 https://bz.mercurial-scm.org/show_bug.cgi?id=6841
30d0d3d92c8d topic: properly process revbranchcache before sending it to peers (issue6841)
Anton Shestakov <av6@dwimlabs.net>
parents:
diff changeset
3
30d0d3d92c8d topic: properly process revbranchcache before sending it to peers (issue6841)
Anton Shestakov <av6@dwimlabs.net>
parents:
diff changeset
4 $ . "$TESTDIR/testlib/common.sh"
30d0d3d92c8d topic: properly process revbranchcache before sending it to peers (issue6841)
Anton Shestakov <av6@dwimlabs.net>
parents:
diff changeset
5
30d0d3d92c8d topic: properly process revbranchcache before sending it to peers (issue6841)
Anton Shestakov <av6@dwimlabs.net>
parents:
diff changeset
6 $ cat >> $HGRCPATH << EOF
30d0d3d92c8d topic: properly process revbranchcache before sending it to peers (issue6841)
Anton Shestakov <av6@dwimlabs.net>
parents:
diff changeset
7 > [extensions]
30d0d3d92c8d topic: properly process revbranchcache before sending it to peers (issue6841)
Anton Shestakov <av6@dwimlabs.net>
parents:
diff changeset
8 > topic =
30d0d3d92c8d topic: properly process revbranchcache before sending it to peers (issue6841)
Anton Shestakov <av6@dwimlabs.net>
parents:
diff changeset
9 > [phases]
30d0d3d92c8d topic: properly process revbranchcache before sending it to peers (issue6841)
Anton Shestakov <av6@dwimlabs.net>
parents:
diff changeset
10 > publish = no
30d0d3d92c8d topic: properly process revbranchcache before sending it to peers (issue6841)
Anton Shestakov <av6@dwimlabs.net>
parents:
diff changeset
11 > [ui]
30d0d3d92c8d topic: properly process revbranchcache before sending it to peers (issue6841)
Anton Shestakov <av6@dwimlabs.net>
parents:
diff changeset
12 > ssh = "$PYTHON" "$RUNTESTDIR/dummyssh"
30d0d3d92c8d topic: properly process revbranchcache before sending it to peers (issue6841)
Anton Shestakov <av6@dwimlabs.net>
parents:
diff changeset
13 > EOF
30d0d3d92c8d topic: properly process revbranchcache before sending it to peers (issue6841)
Anton Shestakov <av6@dwimlabs.net>
parents:
diff changeset
14
30d0d3d92c8d topic: properly process revbranchcache before sending it to peers (issue6841)
Anton Shestakov <av6@dwimlabs.net>
parents:
diff changeset
15 $ hg init orig
30d0d3d92c8d topic: properly process revbranchcache before sending it to peers (issue6841)
Anton Shestakov <av6@dwimlabs.net>
parents:
diff changeset
16 $ hg clone orig publishing -q
30d0d3d92c8d topic: properly process revbranchcache before sending it to peers (issue6841)
Anton Shestakov <av6@dwimlabs.net>
parents:
diff changeset
17 $ cat >> publishing/.hg/hgrc << EOF
30d0d3d92c8d topic: properly process revbranchcache before sending it to peers (issue6841)
Anton Shestakov <av6@dwimlabs.net>
parents:
diff changeset
18 > [phases]
30d0d3d92c8d topic: properly process revbranchcache before sending it to peers (issue6841)
Anton Shestakov <av6@dwimlabs.net>
parents:
diff changeset
19 > publish = yes
30d0d3d92c8d topic: properly process revbranchcache before sending it to peers (issue6841)
Anton Shestakov <av6@dwimlabs.net>
parents:
diff changeset
20 > EOF
30d0d3d92c8d topic: properly process revbranchcache before sending it to peers (issue6841)
Anton Shestakov <av6@dwimlabs.net>
parents:
diff changeset
21
30d0d3d92c8d topic: properly process revbranchcache before sending it to peers (issue6841)
Anton Shestakov <av6@dwimlabs.net>
parents:
diff changeset
22 $ cd orig
30d0d3d92c8d topic: properly process revbranchcache before sending it to peers (issue6841)
Anton Shestakov <av6@dwimlabs.net>
parents:
diff changeset
23 $ mkcommit ROOT
30d0d3d92c8d topic: properly process revbranchcache before sending it to peers (issue6841)
Anton Shestakov <av6@dwimlabs.net>
parents:
diff changeset
24 $ hg push ../publishing
30d0d3d92c8d topic: properly process revbranchcache before sending it to peers (issue6841)
Anton Shestakov <av6@dwimlabs.net>
parents:
diff changeset
25 pushing to ../publishing
30d0d3d92c8d topic: properly process revbranchcache before sending it to peers (issue6841)
Anton Shestakov <av6@dwimlabs.net>
parents:
diff changeset
26 searching for changes
30d0d3d92c8d topic: properly process revbranchcache before sending it to peers (issue6841)
Anton Shestakov <av6@dwimlabs.net>
parents:
diff changeset
27 adding changesets
30d0d3d92c8d topic: properly process revbranchcache before sending it to peers (issue6841)
Anton Shestakov <av6@dwimlabs.net>
parents:
diff changeset
28 adding manifests
30d0d3d92c8d topic: properly process revbranchcache before sending it to peers (issue6841)
Anton Shestakov <av6@dwimlabs.net>
parents:
diff changeset
29 adding file changes
30d0d3d92c8d topic: properly process revbranchcache before sending it to peers (issue6841)
Anton Shestakov <av6@dwimlabs.net>
parents:
diff changeset
30 added 1 changesets with 1 changes to 1 files
30d0d3d92c8d topic: properly process revbranchcache before sending it to peers (issue6841)
Anton Shestakov <av6@dwimlabs.net>
parents:
diff changeset
31
30d0d3d92c8d topic: properly process revbranchcache before sending it to peers (issue6841)
Anton Shestakov <av6@dwimlabs.net>
parents:
diff changeset
32 $ echo foo > foo
30d0d3d92c8d topic: properly process revbranchcache before sending it to peers (issue6841)
Anton Shestakov <av6@dwimlabs.net>
parents:
diff changeset
33 $ hg topic topic-foo
30d0d3d92c8d topic: properly process revbranchcache before sending it to peers (issue6841)
Anton Shestakov <av6@dwimlabs.net>
parents:
diff changeset
34 marked working directory as topic: topic-foo
30d0d3d92c8d topic: properly process revbranchcache before sending it to peers (issue6841)
Anton Shestakov <av6@dwimlabs.net>
parents:
diff changeset
35 $ hg ci -qAm foo
30d0d3d92c8d topic: properly process revbranchcache before sending it to peers (issue6841)
Anton Shestakov <av6@dwimlabs.net>
parents:
diff changeset
36
30d0d3d92c8d topic: properly process revbranchcache before sending it to peers (issue6841)
Anton Shestakov <av6@dwimlabs.net>
parents:
diff changeset
37 $ cd ..
30d0d3d92c8d topic: properly process revbranchcache before sending it to peers (issue6841)
Anton Shestakov <av6@dwimlabs.net>
parents:
diff changeset
38
30d0d3d92c8d topic: properly process revbranchcache before sending it to peers (issue6841)
Anton Shestakov <av6@dwimlabs.net>
parents:
diff changeset
39 cloning via ssh to use wire protocol
30d0d3d92c8d topic: properly process revbranchcache before sending it to peers (issue6841)
Anton Shestakov <av6@dwimlabs.net>
parents:
diff changeset
40
30d0d3d92c8d topic: properly process revbranchcache before sending it to peers (issue6841)
Anton Shestakov <av6@dwimlabs.net>
parents:
diff changeset
41 $ hg clone ssh://user@dummy/orig new-clone -q
30d0d3d92c8d topic: properly process revbranchcache before sending it to peers (issue6841)
Anton Shestakov <av6@dwimlabs.net>
parents:
diff changeset
42 $ cd new-clone
30d0d3d92c8d topic: properly process revbranchcache before sending it to peers (issue6841)
Anton Shestakov <av6@dwimlabs.net>
parents:
diff changeset
43
30d0d3d92c8d topic: properly process revbranchcache before sending it to peers (issue6841)
Anton Shestakov <av6@dwimlabs.net>
parents:
diff changeset
44 on-disk caches are using bare branch names only
30d0d3d92c8d topic: properly process revbranchcache before sending it to peers (issue6841)
Anton Shestakov <av6@dwimlabs.net>
parents:
diff changeset
45
6890
7ec9f4b04519 topic: compatibility for revbranchcache being in a separate module now
Anton Shestakov <av6@dwimlabs.net>
parents: 6546
diff changeset
46 $ f -Hq .hg/cache/rbc-names-v?
6546
30d0d3d92c8d topic: properly process revbranchcache before sending it to peers (issue6841)
Anton Shestakov <av6@dwimlabs.net>
parents:
diff changeset
47 0000: 64 65 66 61 75 6c 74 |default|
30d0d3d92c8d topic: properly process revbranchcache before sending it to peers (issue6841)
Anton Shestakov <av6@dwimlabs.net>
parents:
diff changeset
48 $ grep topic-foo .hg/cache/*
30d0d3d92c8d topic: properly process revbranchcache before sending it to peers (issue6841)
Anton Shestakov <av6@dwimlabs.net>
parents:
diff changeset
49 [1]
30d0d3d92c8d topic: properly process revbranchcache before sending it to peers (issue6841)
Anton Shestakov <av6@dwimlabs.net>
parents:
diff changeset
50
30d0d3d92c8d topic: properly process revbranchcache before sending it to peers (issue6841)
Anton Shestakov <av6@dwimlabs.net>
parents:
diff changeset
51 and pushing works fine
30d0d3d92c8d topic: properly process revbranchcache before sending it to peers (issue6841)
Anton Shestakov <av6@dwimlabs.net>
parents:
diff changeset
52
30d0d3d92c8d topic: properly process revbranchcache before sending it to peers (issue6841)
Anton Shestakov <av6@dwimlabs.net>
parents:
diff changeset
53 $ hg push ssh://user@dummy/publishing
30d0d3d92c8d topic: properly process revbranchcache before sending it to peers (issue6841)
Anton Shestakov <av6@dwimlabs.net>
parents:
diff changeset
54 pushing to ssh://user@dummy/publishing
30d0d3d92c8d topic: properly process revbranchcache before sending it to peers (issue6841)
Anton Shestakov <av6@dwimlabs.net>
parents:
diff changeset
55 searching for changes
30d0d3d92c8d topic: properly process revbranchcache before sending it to peers (issue6841)
Anton Shestakov <av6@dwimlabs.net>
parents:
diff changeset
56 remote: adding changesets
30d0d3d92c8d topic: properly process revbranchcache before sending it to peers (issue6841)
Anton Shestakov <av6@dwimlabs.net>
parents:
diff changeset
57 remote: adding manifests
30d0d3d92c8d topic: properly process revbranchcache before sending it to peers (issue6841)
Anton Shestakov <av6@dwimlabs.net>
parents:
diff changeset
58 remote: adding file changes
30d0d3d92c8d topic: properly process revbranchcache before sending it to peers (issue6841)
Anton Shestakov <av6@dwimlabs.net>
parents:
diff changeset
59 remote: added 1 changesets with 1 changes to 1 files
30d0d3d92c8d topic: properly process revbranchcache before sending it to peers (issue6841)
Anton Shestakov <av6@dwimlabs.net>
parents:
diff changeset
60
30d0d3d92c8d topic: properly process revbranchcache before sending it to peers (issue6841)
Anton Shestakov <av6@dwimlabs.net>
parents:
diff changeset
61 $ cd ..