Show More
@@ -2527,7 +2527,8 b' def bundle2getvars(op, part):' | |||||
2527 | @parthandler(b'stream2', (b'requirements', b'filecount', b'bytecount')) |
|
2527 | @parthandler(b'stream2', (b'requirements', b'filecount', b'bytecount')) | |
2528 | def handlestreamv2bundle(op, part): |
|
2528 | def handlestreamv2bundle(op, part): | |
2529 |
|
2529 | |||
2530 |
requirements = urlreq.unquote(part.params[b'requirements']) |
|
2530 | requirements = urlreq.unquote(part.params[b'requirements']) | |
|
2531 | requirements = requirements.split(b',') if requirements else [] | |||
2531 | filecount = int(part.params[b'filecount']) |
|
2532 | filecount = int(part.params[b'filecount']) | |
2532 | bytecount = int(part.params[b'bytecount']) |
|
2533 | bytecount = int(part.params[b'bytecount']) | |
2533 |
|
2534 |
@@ -501,6 +501,8 b' static PyObject *dirstate_item_set_track' | |||||
501 | static PyObject *dirstate_item_set_untracked(dirstateItemObject *self) |
|
501 | static PyObject *dirstate_item_set_untracked(dirstateItemObject *self) | |
502 | { |
|
502 | { | |
503 | self->flags &= ~dirstate_flag_wc_tracked; |
|
503 | self->flags &= ~dirstate_flag_wc_tracked; | |
|
504 | self->flags &= ~dirstate_flag_has_meaningful_data; | |||
|
505 | self->flags &= ~dirstate_flag_has_mtime; | |||
504 | self->mode = 0; |
|
506 | self->mode = 0; | |
505 | self->size = 0; |
|
507 | self->size = 0; | |
506 | self->mtime_s = 0; |
|
508 | self->mtime_s = 0; |
@@ -48,10 +48,13 b' def _formatrevs(repo, revs, maxrevs=4):' | |||||
48 | return summary |
|
48 | return summary | |
49 |
|
49 | |||
50 |
|
50 | |||
51 | def precheck(repo, revs, action=b'rewrite'): |
|
51 | def precheck(repo, revs, action=b'rewrite', check_divergence=True): | |
52 | """check if revs can be rewritten |
|
52 | """check if revs can be rewritten | |
53 | action is used to control the error message. |
|
53 | action is used to control the error message. | |
54 |
|
54 | |||
|
55 | check_divergence allows skipping the divergence checks in cases like adding | |||
|
56 | a prune marker (A, ()) to obsstore (which can't be diverging). | |||
|
57 | ||||
55 | Make sure this function is called after taking the lock. |
|
58 | Make sure this function is called after taking the lock. | |
56 | """ |
|
59 | """ | |
57 | if nullrev in revs: |
|
60 | if nullrev in revs: | |
@@ -84,6 +87,9 b" def precheck(repo, revs, action=b'rewrit" | |||||
84 | hint=hint, |
|
87 | hint=hint, | |
85 | ) |
|
88 | ) | |
86 |
|
89 | |||
|
90 | if not check_divergence: | |||
|
91 | return | |||
|
92 | ||||
87 | if not obsolete.isenabled(repo, obsolete.allowdivergenceopt): |
|
93 | if not obsolete.isenabled(repo, obsolete.allowdivergenceopt): | |
88 | new_divergence = _find_new_divergence(repo, revs) |
|
94 | new_divergence = _find_new_divergence(repo, revs) | |
89 | if new_divergence: |
|
95 | if new_divergence: |
@@ -806,7 +806,7 b' class hgtagsfnodescache:' | |||||
806 | # There is some no-merge changeset where p1 is null and p2 is set |
|
806 | # There is some no-merge changeset where p1 is null and p2 is set | |
807 | # Processing them as merge is just slower, but still gives a good |
|
807 | # Processing them as merge is just slower, but still gives a good | |
808 | # result. |
|
808 | # result. | |
809 |
p2node = cl.node(p |
|
809 | p2node = cl.node(p2rev) | |
810 | p2fnode = self.getfnode(p2node, computemissing=False) |
|
810 | p2fnode = self.getfnode(p2node, computemissing=False) | |
811 | if p1fnode != p2fnode: |
|
811 | if p1fnode != p2fnode: | |
812 | # we cannot rely on readfast because we don't know against what |
|
812 | # we cannot rely on readfast because we don't know against what |
@@ -817,3 +817,9 b' Clone non-publishing with obsolescence' | |||||
817 | $ killdaemons.py |
|
817 | $ killdaemons.py | |
818 |
|
818 | |||
819 | #endif |
|
819 | #endif | |
|
820 | ||||
|
821 | Cloning a repo with no requirements doesn't give some obscure error | |||
|
822 | ||||
|
823 | $ mkdir -p empty-repo/.hg | |||
|
824 | $ hg clone -q --stream ssh://user@dummy/empty-repo empty-repo2 | |||
|
825 | $ hg --cwd empty-repo2 verify -q |
@@ -933,3 +933,58 b' Avoid writing logs on trying to delete a' | |||||
933 | a8a82d372bb35b42ff736e74f07c23bcd99c371f a |
|
933 | a8a82d372bb35b42ff736e74f07c23bcd99c371f a | |
934 | a8a82d372bb35b42ff736e74f07c23bcd99c371f a |
|
934 | a8a82d372bb35b42ff736e74f07c23bcd99c371f a | |
935 | 0000000000000000000000000000000000000000 a |
|
935 | 0000000000000000000000000000000000000000 a | |
|
936 | ||||
|
937 | $ cd .. | |||
|
938 | ||||
|
939 | .hgtags fnode should be properly resolved at merge revision (issue6673) | |||
|
940 | ||||
|
941 | $ hg init issue6673 | |||
|
942 | $ cd issue6673 | |||
|
943 | ||||
|
944 | $ touch a | |||
|
945 | $ hg ci -qAm a | |||
|
946 | $ hg branch -q stable | |||
|
947 | $ hg ci -m branch | |||
|
948 | ||||
|
949 | $ hg up -q default | |||
|
950 | $ hg merge -q stable | |||
|
951 | $ hg ci -m merge | |||
|
952 | ||||
|
953 | add tag to stable branch: | |||
|
954 | ||||
|
955 | $ hg up -q stable | |||
|
956 | $ echo a >> a | |||
|
957 | $ hg ci -m a | |||
|
958 | $ hg tag whatever | |||
|
959 | $ hg log -GT'{rev} {tags}\n' | |||
|
960 | @ 4 tip | |||
|
961 | | | |||
|
962 | o 3 whatever | |||
|
963 | | | |||
|
964 | | o 2 | |||
|
965 | |/| | |||
|
966 | o | 1 | |||
|
967 | |/ | |||
|
968 | o 0 | |||
|
969 | ||||
|
970 | ||||
|
971 | merge tagged stable into default: | |||
|
972 | ||||
|
973 | $ hg up -q default | |||
|
974 | $ hg merge -q stable | |||
|
975 | $ hg ci -m merge | |||
|
976 | $ hg log -GT'{rev} {tags}\n' | |||
|
977 | @ 5 tip | |||
|
978 | |\ | |||
|
979 | | o 4 | |||
|
980 | | | | |||
|
981 | | o 3 whatever | |||
|
982 | | | | |||
|
983 | o | 2 | |||
|
984 | |\| | |||
|
985 | | o 1 | |||
|
986 | |/ | |||
|
987 | o 0 | |||
|
988 | ||||
|
989 | ||||
|
990 | $ cd .. |
General Comments 0
You need to be logged in to leave comments.
Login now