author | Boris Feld <boris.feld@octobus.net> |
Fri, 15 Dec 2017 10:14:42 +0100 | |
changeset 3298 | f4b06f44d274 |
parent 3283 | 039c4b8dc3ed |
child 3408 | f4ea9652661d |
permissions | -rw-r--r-- |
2525
5adb8bdb935e
compatibility: backport mercurial 176d1a0ce385
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
1 |
# Copyright 2017 Octobus <contact@octobus.net> |
5adb8bdb935e
compatibility: backport mercurial 176d1a0ce385
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
2 |
# |
5adb8bdb935e
compatibility: backport mercurial 176d1a0ce385
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
3 |
# This software may be used and distributed according to the terms of the |
5adb8bdb935e
compatibility: backport mercurial 176d1a0ce385
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
4 |
# GNU General Public License version 2 or any later version. |
5adb8bdb935e
compatibility: backport mercurial 176d1a0ce385
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
5 |
""" |
5adb8bdb935e
compatibility: backport mercurial 176d1a0ce385
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
6 |
Compatibility module |
5adb8bdb935e
compatibility: backport mercurial 176d1a0ce385
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
7 |
""" |
5adb8bdb935e
compatibility: backport mercurial 176d1a0ce385
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
8 |
|
5adb8bdb935e
compatibility: backport mercurial 176d1a0ce385
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
9 |
from mercurial import ( |
3074
8d57acde165d
compat: fix compatibility with new duplicatecopies
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
3064
diff
changeset
|
10 |
copies, |
2834
38db1466c6fb
log: unstable was renamed into orphan
Boris Feld <boris.feld@octobus.net>
parents:
2794
diff
changeset
|
11 |
context, |
2525
5adb8bdb935e
compatibility: backport mercurial 176d1a0ce385
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
12 |
hg, |
2751
4f560f117fff
compat: use 'safehasattr' over 'hasattr'
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
2693
diff
changeset
|
13 |
obsolete, |
2834
38db1466c6fb
log: unstable was renamed into orphan
Boris Feld <boris.feld@octobus.net>
parents:
2794
diff
changeset
|
14 |
revset, |
2751
4f560f117fff
compat: use 'safehasattr' over 'hasattr'
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
2693
diff
changeset
|
15 |
util, |
2525
5adb8bdb935e
compatibility: backport mercurial 176d1a0ce385
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
16 |
) |
5adb8bdb935e
compatibility: backport mercurial 176d1a0ce385
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
17 |
|
2693
f4b0351fa813
evolve: adapt to function migrate to obsutil
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
2525
diff
changeset
|
18 |
try: |
f4b0351fa813
evolve: adapt to function migrate to obsutil
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
2525
diff
changeset
|
19 |
from mercurial import obsutil |
f4b0351fa813
evolve: adapt to function migrate to obsutil
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
2525
diff
changeset
|
20 |
obsutil.closestpredecessors |
f4b0351fa813
evolve: adapt to function migrate to obsutil
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
2525
diff
changeset
|
21 |
except ImportError: |
f4b0351fa813
evolve: adapt to function migrate to obsutil
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
2525
diff
changeset
|
22 |
obsutil = None |
f4b0351fa813
evolve: adapt to function migrate to obsutil
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
2525
diff
changeset
|
23 |
|
2525
5adb8bdb935e
compatibility: backport mercurial 176d1a0ce385
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
24 |
from . import ( |
5adb8bdb935e
compatibility: backport mercurial 176d1a0ce385
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
25 |
exthelper, |
5adb8bdb935e
compatibility: backport mercurial 176d1a0ce385
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
26 |
) |
5adb8bdb935e
compatibility: backport mercurial 176d1a0ce385
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
27 |
|
5adb8bdb935e
compatibility: backport mercurial 176d1a0ce385
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
28 |
eh = exthelper.exthelper() |
5adb8bdb935e
compatibility: backport mercurial 176d1a0ce385
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
29 |
|
2751
4f560f117fff
compat: use 'safehasattr' over 'hasattr'
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
2693
diff
changeset
|
30 |
if not util.safehasattr(hg, '_copycache'): |
2525
5adb8bdb935e
compatibility: backport mercurial 176d1a0ce385
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
31 |
# exact copy of relevantmarkers as in Mercurial-176d1a0ce385 |
5adb8bdb935e
compatibility: backport mercurial 176d1a0ce385
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
32 |
# this fixes relevant markers computation for version < hg-4.3 |
5adb8bdb935e
compatibility: backport mercurial 176d1a0ce385
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
33 |
@eh.wrapfunction(obsolete.obsstore, 'relevantmarkers') |
5adb8bdb935e
compatibility: backport mercurial 176d1a0ce385
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
34 |
def relevantmarkers(orig, self, nodes): |
5adb8bdb935e
compatibility: backport mercurial 176d1a0ce385
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
35 |
"""return a set of all obsolescence markers relevant to a set of nodes. |
5adb8bdb935e
compatibility: backport mercurial 176d1a0ce385
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
36 |
|
5adb8bdb935e
compatibility: backport mercurial 176d1a0ce385
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
37 |
"relevant" to a set of nodes mean: |
5adb8bdb935e
compatibility: backport mercurial 176d1a0ce385
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
38 |
|
5adb8bdb935e
compatibility: backport mercurial 176d1a0ce385
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
39 |
- marker that use this changeset as successor |
5adb8bdb935e
compatibility: backport mercurial 176d1a0ce385
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
40 |
- prune marker of direct children on this changeset |
5adb8bdb935e
compatibility: backport mercurial 176d1a0ce385
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
41 |
- recursive application of the two rules on precursors of these markers |
5adb8bdb935e
compatibility: backport mercurial 176d1a0ce385
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
42 |
|
5adb8bdb935e
compatibility: backport mercurial 176d1a0ce385
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
43 |
It is a set so you cannot rely on order. |
5adb8bdb935e
compatibility: backport mercurial 176d1a0ce385
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
44 |
|
5adb8bdb935e
compatibility: backport mercurial 176d1a0ce385
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
45 |
Backport of mercurial changeset 176d1a0ce385 for version < 4.3 |
5adb8bdb935e
compatibility: backport mercurial 176d1a0ce385
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
46 |
""" |
5adb8bdb935e
compatibility: backport mercurial 176d1a0ce385
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
47 |
|
5adb8bdb935e
compatibility: backport mercurial 176d1a0ce385
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
48 |
pendingnodes = set(nodes) |
5adb8bdb935e
compatibility: backport mercurial 176d1a0ce385
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
49 |
seenmarkers = set() |
5adb8bdb935e
compatibility: backport mercurial 176d1a0ce385
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
50 |
seennodes = set(pendingnodes) |
2840
dfad30be866c
context: precursors was deprecated
Boris Feld <boris.feld@octobus.net>
parents:
2839
diff
changeset
|
51 |
precursorsmarkers = self.predecessors |
2525
5adb8bdb935e
compatibility: backport mercurial 176d1a0ce385
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
52 |
succsmarkers = self.successors |
5adb8bdb935e
compatibility: backport mercurial 176d1a0ce385
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
53 |
children = self.children |
5adb8bdb935e
compatibility: backport mercurial 176d1a0ce385
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
54 |
while pendingnodes: |
5adb8bdb935e
compatibility: backport mercurial 176d1a0ce385
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
55 |
direct = set() |
5adb8bdb935e
compatibility: backport mercurial 176d1a0ce385
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
56 |
for current in pendingnodes: |
5adb8bdb935e
compatibility: backport mercurial 176d1a0ce385
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
57 |
direct.update(precursorsmarkers.get(current, ())) |
5adb8bdb935e
compatibility: backport mercurial 176d1a0ce385
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
58 |
pruned = [m for m in children.get(current, ()) if not m[1]] |
5adb8bdb935e
compatibility: backport mercurial 176d1a0ce385
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
59 |
direct.update(pruned) |
5adb8bdb935e
compatibility: backport mercurial 176d1a0ce385
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
60 |
pruned = [m for m in succsmarkers.get(current, ()) if not m[1]] |
5adb8bdb935e
compatibility: backport mercurial 176d1a0ce385
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
61 |
direct.update(pruned) |
5adb8bdb935e
compatibility: backport mercurial 176d1a0ce385
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
62 |
direct -= seenmarkers |
5adb8bdb935e
compatibility: backport mercurial 176d1a0ce385
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
63 |
pendingnodes = set([m[0] for m in direct]) |
5adb8bdb935e
compatibility: backport mercurial 176d1a0ce385
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
64 |
seenmarkers |= direct |
5adb8bdb935e
compatibility: backport mercurial 176d1a0ce385
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
65 |
pendingnodes -= seennodes |
5adb8bdb935e
compatibility: backport mercurial 176d1a0ce385
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
66 |
seennodes |= pendingnodes |
5adb8bdb935e
compatibility: backport mercurial 176d1a0ce385
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
67 |
return seenmarkers |
2693
f4b0351fa813
evolve: adapt to function migrate to obsutil
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
2525
diff
changeset
|
68 |
|
f4b0351fa813
evolve: adapt to function migrate to obsutil
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
2525
diff
changeset
|
69 |
# successors set move from mercurial.obsolete to mercurial.obsutil in 4.3 |
f4b0351fa813
evolve: adapt to function migrate to obsutil
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
2525
diff
changeset
|
70 |
def successorssets(*args, **kwargs): |
f4b0351fa813
evolve: adapt to function migrate to obsutil
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
2525
diff
changeset
|
71 |
func = getattr(obsutil, 'successorssets', None) |
f4b0351fa813
evolve: adapt to function migrate to obsutil
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
2525
diff
changeset
|
72 |
if func is None: |
f4b0351fa813
evolve: adapt to function migrate to obsutil
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
2525
diff
changeset
|
73 |
func = obsolete.successorssets |
f4b0351fa813
evolve: adapt to function migrate to obsutil
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
2525
diff
changeset
|
74 |
return func(*args, **kwargs) |
f4b0351fa813
evolve: adapt to function migrate to obsutil
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
2525
diff
changeset
|
75 |
|
f4b0351fa813
evolve: adapt to function migrate to obsutil
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
2525
diff
changeset
|
76 |
# allprecursors set move from mercurial.obsolete to mercurial.obsutil in 4.3 |
2841
7f2943b0c8ea
obsolete: allprecursors was deprecated
Boris Feld <boris.feld@octobus.net>
parents:
2840
diff
changeset
|
77 |
# allprecursors was renamed into allpredecessors in 4.4 |
2693
f4b0351fa813
evolve: adapt to function migrate to obsutil
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
2525
diff
changeset
|
78 |
def allprecursors(*args, **kwargs): |
2841
7f2943b0c8ea
obsolete: allprecursors was deprecated
Boris Feld <boris.feld@octobus.net>
parents:
2840
diff
changeset
|
79 |
func = getattr(obsutil, 'allpredecessors', None) |
2693
f4b0351fa813
evolve: adapt to function migrate to obsutil
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
2525
diff
changeset
|
80 |
if func is None: |
2841
7f2943b0c8ea
obsolete: allprecursors was deprecated
Boris Feld <boris.feld@octobus.net>
parents:
2840
diff
changeset
|
81 |
func = getattr(obsutil, 'allprecursors', None) |
7f2943b0c8ea
obsolete: allprecursors was deprecated
Boris Feld <boris.feld@octobus.net>
parents:
2840
diff
changeset
|
82 |
if func is None: |
7f2943b0c8ea
obsolete: allprecursors was deprecated
Boris Feld <boris.feld@octobus.net>
parents:
2840
diff
changeset
|
83 |
func = obsolete.allprecursors |
2693
f4b0351fa813
evolve: adapt to function migrate to obsutil
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
2525
diff
changeset
|
84 |
return func(*args, **kwargs) |
2752
4457aa1d81aa
compat: add a compatibility layer for bookmark move
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
2751
diff
changeset
|
85 |
|
4457aa1d81aa
compat: add a compatibility layer for bookmark move
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
2751
diff
changeset
|
86 |
# compatibility layer for mercurial < 4.3 |
4457aa1d81aa
compat: add a compatibility layer for bookmark move
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
2751
diff
changeset
|
87 |
def bookmarkapplychanges(repo, tr, changes): |
4457aa1d81aa
compat: add a compatibility layer for bookmark move
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
2751
diff
changeset
|
88 |
"""Apply a list of changes to bookmarks |
4457aa1d81aa
compat: add a compatibility layer for bookmark move
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
2751
diff
changeset
|
89 |
""" |
4457aa1d81aa
compat: add a compatibility layer for bookmark move
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
2751
diff
changeset
|
90 |
bookmarks = repo._bookmarks |
4457aa1d81aa
compat: add a compatibility layer for bookmark move
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
2751
diff
changeset
|
91 |
if util.safehasattr(bookmarks, 'applychanges'): |
4457aa1d81aa
compat: add a compatibility layer for bookmark move
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
2751
diff
changeset
|
92 |
return bookmarks.applychanges(repo, tr, changes) |
4457aa1d81aa
compat: add a compatibility layer for bookmark move
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
2751
diff
changeset
|
93 |
for name, node in changes: |
4457aa1d81aa
compat: add a compatibility layer for bookmark move
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
2751
diff
changeset
|
94 |
if node is None: |
2794
5595fb96d922
compat: use old style method to update bookmark
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
2752
diff
changeset
|
95 |
del bookmarks[name] |
2752
4457aa1d81aa
compat: add a compatibility layer for bookmark move
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
2751
diff
changeset
|
96 |
else: |
2794
5595fb96d922
compat: use old style method to update bookmark
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
2752
diff
changeset
|
97 |
bookmarks[name] = node |
2752
4457aa1d81aa
compat: add a compatibility layer for bookmark move
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
2751
diff
changeset
|
98 |
bookmarks.recordchange(tr) |
2834
38db1466c6fb
log: unstable was renamed into orphan
Boris Feld <boris.feld@octobus.net>
parents:
2794
diff
changeset
|
99 |
|
3283
039c4b8dc3ed
obsnote: warn if user try to store a note in obsmarker on an older hg
Pulkit Goyal <7895pulkit@gmail.com>
parents:
3074
diff
changeset
|
100 |
def isobsnotesupported(): |
039c4b8dc3ed
obsnote: warn if user try to store a note in obsmarker on an older hg
Pulkit Goyal <7895pulkit@gmail.com>
parents:
3074
diff
changeset
|
101 |
# hack to know obsnote is supported. The patches for obsnote support was |
039c4b8dc3ed
obsnote: warn if user try to store a note in obsmarker on an older hg
Pulkit Goyal <7895pulkit@gmail.com>
parents:
3074
diff
changeset
|
102 |
# pushed before the obsfateprinter patches, so this will serve as a good |
039c4b8dc3ed
obsnote: warn if user try to store a note in obsmarker on an older hg
Pulkit Goyal <7895pulkit@gmail.com>
parents:
3074
diff
changeset
|
103 |
# check |
039c4b8dc3ed
obsnote: warn if user try to store a note in obsmarker on an older hg
Pulkit Goyal <7895pulkit@gmail.com>
parents:
3074
diff
changeset
|
104 |
if not obsutil: |
039c4b8dc3ed
obsnote: warn if user try to store a note in obsmarker on an older hg
Pulkit Goyal <7895pulkit@gmail.com>
parents:
3074
diff
changeset
|
105 |
return False |
039c4b8dc3ed
obsnote: warn if user try to store a note in obsmarker on an older hg
Pulkit Goyal <7895pulkit@gmail.com>
parents:
3074
diff
changeset
|
106 |
return util.safehasattr(obsutil, 'obsfateprinter') |
039c4b8dc3ed
obsnote: warn if user try to store a note in obsmarker on an older hg
Pulkit Goyal <7895pulkit@gmail.com>
parents:
3074
diff
changeset
|
107 |
|
2834
38db1466c6fb
log: unstable was renamed into orphan
Boris Feld <boris.feld@octobus.net>
parents:
2794
diff
changeset
|
108 |
# Evolution renaming compat |
38db1466c6fb
log: unstable was renamed into orphan
Boris Feld <boris.feld@octobus.net>
parents:
2794
diff
changeset
|
109 |
|
2854
66796d7b5415
warning: rename unstable warning message
Boris Feld <boris.feld@octobus.net>
parents:
2849
diff
changeset
|
110 |
TROUBLES = {} |
66796d7b5415
warning: rename unstable warning message
Boris Feld <boris.feld@octobus.net>
parents:
2849
diff
changeset
|
111 |
|
2834
38db1466c6fb
log: unstable was renamed into orphan
Boris Feld <boris.feld@octobus.net>
parents:
2794
diff
changeset
|
112 |
if not util.safehasattr(context.basectx, 'orphan'): |
2854
66796d7b5415
warning: rename unstable warning message
Boris Feld <boris.feld@octobus.net>
parents:
2849
diff
changeset
|
113 |
TROUBLES['ORPHAN'] = 'unstable' |
2834
38db1466c6fb
log: unstable was renamed into orphan
Boris Feld <boris.feld@octobus.net>
parents:
2794
diff
changeset
|
114 |
context.basectx.orphan = context.basectx.unstable |
2854
66796d7b5415
warning: rename unstable warning message
Boris Feld <boris.feld@octobus.net>
parents:
2849
diff
changeset
|
115 |
else: |
66796d7b5415
warning: rename unstable warning message
Boris Feld <boris.feld@octobus.net>
parents:
2849
diff
changeset
|
116 |
TROUBLES['ORPHAN'] = 'orphan' |
2834
38db1466c6fb
log: unstable was renamed into orphan
Boris Feld <boris.feld@octobus.net>
parents:
2794
diff
changeset
|
117 |
|
2835
20c2499ce8bc
log: divergent was renamed into contentdivergent
Boris Feld <boris.feld@octobus.net>
parents:
2834
diff
changeset
|
118 |
if not util.safehasattr(context.basectx, 'contentdivergent'): |
2856
f6517779a7c4
warning: rename warning message
Boris Feld <boris.feld@octobus.net>
parents:
2855
diff
changeset
|
119 |
TROUBLES['CONTENTDIVERGENT'] = 'divergent' |
2835
20c2499ce8bc
log: divergent was renamed into contentdivergent
Boris Feld <boris.feld@octobus.net>
parents:
2834
diff
changeset
|
120 |
context.basectx.contentdivergent = context.basectx.divergent |
2856
f6517779a7c4
warning: rename warning message
Boris Feld <boris.feld@octobus.net>
parents:
2855
diff
changeset
|
121 |
else: |
2858
4b934144ed11
messages: use hyphenated '{phase,content}-divergent' in user messages
Martin von Zweigbergk <martinvonz@google.com>
parents:
2856
diff
changeset
|
122 |
TROUBLES['CONTENTDIVERGENT'] = 'content-divergent' |
2835
20c2499ce8bc
log: divergent was renamed into contentdivergent
Boris Feld <boris.feld@octobus.net>
parents:
2834
diff
changeset
|
123 |
|
2836
feaa52680682
log: bumped was renamed into phasedivergent
Boris Feld <boris.feld@octobus.net>
parents:
2835
diff
changeset
|
124 |
if not util.safehasattr(context.basectx, 'phasedivergent'): |
2855
1db0137297f4
warning: rename bumped warning message
Boris Feld <boris.feld@octobus.net>
parents:
2854
diff
changeset
|
125 |
TROUBLES['PHASEDIVERGENT'] = 'bumped' |
2836
feaa52680682
log: bumped was renamed into phasedivergent
Boris Feld <boris.feld@octobus.net>
parents:
2835
diff
changeset
|
126 |
context.basectx.phasedivergent = context.basectx.bumped |
2855
1db0137297f4
warning: rename bumped warning message
Boris Feld <boris.feld@octobus.net>
parents:
2854
diff
changeset
|
127 |
else: |
2858
4b934144ed11
messages: use hyphenated '{phase,content}-divergent' in user messages
Martin von Zweigbergk <martinvonz@google.com>
parents:
2856
diff
changeset
|
128 |
TROUBLES['PHASEDIVERGENT'] = 'phase-divergent' |
2836
feaa52680682
log: bumped was renamed into phasedivergent
Boris Feld <boris.feld@octobus.net>
parents:
2835
diff
changeset
|
129 |
|
2839
f9c8c754a528
context: troubled was deprecated
Boris Feld <boris.feld@octobus.net>
parents:
2836
diff
changeset
|
130 |
if not util.safehasattr(context.basectx, 'isunstable'): |
f9c8c754a528
context: troubled was deprecated
Boris Feld <boris.feld@octobus.net>
parents:
2836
diff
changeset
|
131 |
context.basectx.isunstable = context.basectx.troubled |
f9c8c754a528
context: troubled was deprecated
Boris Feld <boris.feld@octobus.net>
parents:
2836
diff
changeset
|
132 |
|
2834
38db1466c6fb
log: unstable was renamed into orphan
Boris Feld <boris.feld@octobus.net>
parents:
2794
diff
changeset
|
133 |
if not util.safehasattr(revset, 'orphan'): |
38db1466c6fb
log: unstable was renamed into orphan
Boris Feld <boris.feld@octobus.net>
parents:
2794
diff
changeset
|
134 |
@eh.revset('orphan') |
38db1466c6fb
log: unstable was renamed into orphan
Boris Feld <boris.feld@octobus.net>
parents:
2794
diff
changeset
|
135 |
def oprhanrevset(*args, **kwargs): |
38db1466c6fb
log: unstable was renamed into orphan
Boris Feld <boris.feld@octobus.net>
parents:
2794
diff
changeset
|
136 |
return revset.unstable(*args, **kwargs) |
38db1466c6fb
log: unstable was renamed into orphan
Boris Feld <boris.feld@octobus.net>
parents:
2794
diff
changeset
|
137 |
|
2835
20c2499ce8bc
log: divergent was renamed into contentdivergent
Boris Feld <boris.feld@octobus.net>
parents:
2834
diff
changeset
|
138 |
if not util.safehasattr(revset, 'contentdivergent'): |
20c2499ce8bc
log: divergent was renamed into contentdivergent
Boris Feld <boris.feld@octobus.net>
parents:
2834
diff
changeset
|
139 |
@eh.revset('contentdivergent') |
20c2499ce8bc
log: divergent was renamed into contentdivergent
Boris Feld <boris.feld@octobus.net>
parents:
2834
diff
changeset
|
140 |
def contentdivergentrevset(*args, **kwargs): |
20c2499ce8bc
log: divergent was renamed into contentdivergent
Boris Feld <boris.feld@octobus.net>
parents:
2834
diff
changeset
|
141 |
return revset.divergent(*args, **kwargs) |
20c2499ce8bc
log: divergent was renamed into contentdivergent
Boris Feld <boris.feld@octobus.net>
parents:
2834
diff
changeset
|
142 |
|
2836
feaa52680682
log: bumped was renamed into phasedivergent
Boris Feld <boris.feld@octobus.net>
parents:
2835
diff
changeset
|
143 |
if not util.safehasattr(revset, 'phasedivergent'): |
feaa52680682
log: bumped was renamed into phasedivergent
Boris Feld <boris.feld@octobus.net>
parents:
2835
diff
changeset
|
144 |
@eh.revset('phasedivergent') |
feaa52680682
log: bumped was renamed into phasedivergent
Boris Feld <boris.feld@octobus.net>
parents:
2835
diff
changeset
|
145 |
def phasedivergentrevset(*args, **kwargs): |
feaa52680682
log: bumped was renamed into phasedivergent
Boris Feld <boris.feld@octobus.net>
parents:
2835
diff
changeset
|
146 |
return revset.bumped(*args, **kwargs) |
feaa52680682
log: bumped was renamed into phasedivergent
Boris Feld <boris.feld@octobus.net>
parents:
2835
diff
changeset
|
147 |
|
2834
38db1466c6fb
log: unstable was renamed into orphan
Boris Feld <boris.feld@octobus.net>
parents:
2794
diff
changeset
|
148 |
if not util.safehasattr(context.basectx, 'instabilities'): |
38db1466c6fb
log: unstable was renamed into orphan
Boris Feld <boris.feld@octobus.net>
parents:
2794
diff
changeset
|
149 |
def instabilities(self): |
38db1466c6fb
log: unstable was renamed into orphan
Boris Feld <boris.feld@octobus.net>
parents:
2794
diff
changeset
|
150 |
"""return the list of instabilities affecting this changeset. |
38db1466c6fb
log: unstable was renamed into orphan
Boris Feld <boris.feld@octobus.net>
parents:
2794
diff
changeset
|
151 |
|
38db1466c6fb
log: unstable was renamed into orphan
Boris Feld <boris.feld@octobus.net>
parents:
2794
diff
changeset
|
152 |
Instabilities are returned as strings. possible values are: |
38db1466c6fb
log: unstable was renamed into orphan
Boris Feld <boris.feld@octobus.net>
parents:
2794
diff
changeset
|
153 |
- orphan, |
38db1466c6fb
log: unstable was renamed into orphan
Boris Feld <boris.feld@octobus.net>
parents:
2794
diff
changeset
|
154 |
- phase-divergent, |
38db1466c6fb
log: unstable was renamed into orphan
Boris Feld <boris.feld@octobus.net>
parents:
2794
diff
changeset
|
155 |
- content-divergent. |
38db1466c6fb
log: unstable was renamed into orphan
Boris Feld <boris.feld@octobus.net>
parents:
2794
diff
changeset
|
156 |
""" |
38db1466c6fb
log: unstable was renamed into orphan
Boris Feld <boris.feld@octobus.net>
parents:
2794
diff
changeset
|
157 |
instabilities = [] |
38db1466c6fb
log: unstable was renamed into orphan
Boris Feld <boris.feld@octobus.net>
parents:
2794
diff
changeset
|
158 |
if self.orphan(): |
2849
95470e817c00
compat: fix instabilities compat
Boris Feld <boris.feld@octobus.net>
parents:
2847
diff
changeset
|
159 |
instabilities.append('orphan') |
2836
feaa52680682
log: bumped was renamed into phasedivergent
Boris Feld <boris.feld@octobus.net>
parents:
2835
diff
changeset
|
160 |
if self.phasedivergent(): |
feaa52680682
log: bumped was renamed into phasedivergent
Boris Feld <boris.feld@octobus.net>
parents:
2835
diff
changeset
|
161 |
instabilities.append('phase-divergent') |
2835
20c2499ce8bc
log: divergent was renamed into contentdivergent
Boris Feld <boris.feld@octobus.net>
parents:
2834
diff
changeset
|
162 |
if self.contentdivergent(): |
20c2499ce8bc
log: divergent was renamed into contentdivergent
Boris Feld <boris.feld@octobus.net>
parents:
2834
diff
changeset
|
163 |
instabilities.append('content-divergent') |
2834
38db1466c6fb
log: unstable was renamed into orphan
Boris Feld <boris.feld@octobus.net>
parents:
2794
diff
changeset
|
164 |
return instabilities |
38db1466c6fb
log: unstable was renamed into orphan
Boris Feld <boris.feld@octobus.net>
parents:
2794
diff
changeset
|
165 |
|
38db1466c6fb
log: unstable was renamed into orphan
Boris Feld <boris.feld@octobus.net>
parents:
2794
diff
changeset
|
166 |
context.basectx.instabilities = instabilities |
2840
dfad30be866c
context: precursors was deprecated
Boris Feld <boris.feld@octobus.net>
parents:
2839
diff
changeset
|
167 |
|
dfad30be866c
context: precursors was deprecated
Boris Feld <boris.feld@octobus.net>
parents:
2839
diff
changeset
|
168 |
# XXX: Better detection of property cache |
dfad30be866c
context: precursors was deprecated
Boris Feld <boris.feld@octobus.net>
parents:
2839
diff
changeset
|
169 |
if 'predecessors' not in dir(obsolete.obsstore): |
dfad30be866c
context: precursors was deprecated
Boris Feld <boris.feld@octobus.net>
parents:
2839
diff
changeset
|
170 |
@property |
dfad30be866c
context: precursors was deprecated
Boris Feld <boris.feld@octobus.net>
parents:
2839
diff
changeset
|
171 |
def predecessors(self): |
dfad30be866c
context: precursors was deprecated
Boris Feld <boris.feld@octobus.net>
parents:
2839
diff
changeset
|
172 |
return self.precursors |
dfad30be866c
context: precursors was deprecated
Boris Feld <boris.feld@octobus.net>
parents:
2839
diff
changeset
|
173 |
|
dfad30be866c
context: precursors was deprecated
Boris Feld <boris.feld@octobus.net>
parents:
2839
diff
changeset
|
174 |
obsolete.obsstore.predecessors = predecessors |
2845
9fc6a4615ae5
revset: unstable volatile set was deprecated
Boris Feld <boris.feld@octobus.net>
parents:
2841
diff
changeset
|
175 |
|
9fc6a4615ae5
revset: unstable volatile set was deprecated
Boris Feld <boris.feld@octobus.net>
parents:
2841
diff
changeset
|
176 |
if not util.safehasattr(obsolete, '_computeorphanset'): |
9fc6a4615ae5
revset: unstable volatile set was deprecated
Boris Feld <boris.feld@octobus.net>
parents:
2841
diff
changeset
|
177 |
obsolete._computeorphanset = obsolete.cachefor('orphan')(obsolete._computeunstableset) |
2846
9c019996bce0
revset: divergent volatile set was deprecated
Boris Feld <boris.feld@octobus.net>
parents:
2845
diff
changeset
|
178 |
|
9c019996bce0
revset: divergent volatile set was deprecated
Boris Feld <boris.feld@octobus.net>
parents:
2845
diff
changeset
|
179 |
if not util.safehasattr(obsolete, '_computecontentdivergentset'): |
9c019996bce0
revset: divergent volatile set was deprecated
Boris Feld <boris.feld@octobus.net>
parents:
2845
diff
changeset
|
180 |
obsolete._computecontentdivergentset = obsolete.cachefor('contentdivergent')(obsolete._computedivergentset) |
2847
a1805a65ce21
revset: bumped volatile set was deprecated
Boris Feld <boris.feld@octobus.net>
parents:
2846
diff
changeset
|
181 |
|
a1805a65ce21
revset: bumped volatile set was deprecated
Boris Feld <boris.feld@octobus.net>
parents:
2846
diff
changeset
|
182 |
if not util.safehasattr(obsolete, '_computephasedivergentset'): |
a1805a65ce21
revset: bumped volatile set was deprecated
Boris Feld <boris.feld@octobus.net>
parents:
2846
diff
changeset
|
183 |
obsolete._computephasedivergentset = obsolete.cachefor('phasedivergent')(obsolete._computebumpedset) |
3064
7a1a4d1f0958
pager: add a function in compats to start pager
Pulkit Goyal <7895pulkit@gmail.com>
parents:
2858
diff
changeset
|
184 |
|
7a1a4d1f0958
pager: add a function in compats to start pager
Pulkit Goyal <7895pulkit@gmail.com>
parents:
2858
diff
changeset
|
185 |
def startpager(ui, cmd): |
7a1a4d1f0958
pager: add a function in compats to start pager
Pulkit Goyal <7895pulkit@gmail.com>
parents:
2858
diff
changeset
|
186 |
"""function to start a pager in case ui.pager() exists""" |
7a1a4d1f0958
pager: add a function in compats to start pager
Pulkit Goyal <7895pulkit@gmail.com>
parents:
2858
diff
changeset
|
187 |
if util.safehasattr(ui, 'pager'): |
7a1a4d1f0958
pager: add a function in compats to start pager
Pulkit Goyal <7895pulkit@gmail.com>
parents:
2858
diff
changeset
|
188 |
ui.pager(cmd) |
3074
8d57acde165d
compat: fix compatibility with new duplicatecopies
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
3064
diff
changeset
|
189 |
|
8d57acde165d
compat: fix compatibility with new duplicatecopies
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
3064
diff
changeset
|
190 |
def duplicatecopies(repo, wctx, rev, fromrev, skiprev=None): |
8d57acde165d
compat: fix compatibility with new duplicatecopies
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
3064
diff
changeset
|
191 |
# cannot use anything else until 4.3 support is dropped. |
8d57acde165d
compat: fix compatibility with new duplicatecopies
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
3064
diff
changeset
|
192 |
assert wctx.rev() is None |
8d57acde165d
compat: fix compatibility with new duplicatecopies
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
3064
diff
changeset
|
193 |
if copies.duplicatecopies.__code__.co_argcount < 5: |
8d57acde165d
compat: fix compatibility with new duplicatecopies
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
3064
diff
changeset
|
194 |
# pre 4.4 duplicatecopies compat |
8d57acde165d
compat: fix compatibility with new duplicatecopies
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
3064
diff
changeset
|
195 |
copies.duplicatecopies(repo, rev, fromrev, skiprev=skiprev) |
8d57acde165d
compat: fix compatibility with new duplicatecopies
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
3064
diff
changeset
|
196 |
else: |
8d57acde165d
compat: fix compatibility with new duplicatecopies
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
3064
diff
changeset
|
197 |
copies.duplicatecopies(repo, wctx, rev, fromrev, skiprev=skiprev) |
3298
f4b06f44d274
memfilectx: changectx argument is not mandatory
Boris Feld <boris.feld@octobus.net>
parents:
3283
diff
changeset
|
198 |
|
f4b06f44d274
memfilectx: changectx argument is not mandatory
Boris Feld <boris.feld@octobus.net>
parents:
3283
diff
changeset
|
199 |
def memfilectx(repo, ctx, fctx, flags, copied, path): |
f4b06f44d274
memfilectx: changectx argument is not mandatory
Boris Feld <boris.feld@octobus.net>
parents:
3283
diff
changeset
|
200 |
# XXX Would it be better at the module level? |
f4b06f44d274
memfilectx: changectx argument is not mandatory
Boris Feld <boris.feld@octobus.net>
parents:
3283
diff
changeset
|
201 |
varnames = context.memfilectx.__init__.__code__.co_varnames |
f4b06f44d274
memfilectx: changectx argument is not mandatory
Boris Feld <boris.feld@octobus.net>
parents:
3283
diff
changeset
|
202 |
ctxmandatory = varnames[2] == "changectx" |
f4b06f44d274
memfilectx: changectx argument is not mandatory
Boris Feld <boris.feld@octobus.net>
parents:
3283
diff
changeset
|
203 |
|
f4b06f44d274
memfilectx: changectx argument is not mandatory
Boris Feld <boris.feld@octobus.net>
parents:
3283
diff
changeset
|
204 |
if ctxmandatory: |
f4b06f44d274
memfilectx: changectx argument is not mandatory
Boris Feld <boris.feld@octobus.net>
parents:
3283
diff
changeset
|
205 |
mctx = context.memfilectx(repo, ctx, fctx.path(), fctx.data(), |
f4b06f44d274
memfilectx: changectx argument is not mandatory
Boris Feld <boris.feld@octobus.net>
parents:
3283
diff
changeset
|
206 |
islink='l' in flags, |
f4b06f44d274
memfilectx: changectx argument is not mandatory
Boris Feld <boris.feld@octobus.net>
parents:
3283
diff
changeset
|
207 |
isexec='x' in flags, |
f4b06f44d274
memfilectx: changectx argument is not mandatory
Boris Feld <boris.feld@octobus.net>
parents:
3283
diff
changeset
|
208 |
copied=copied.get(path)) |
f4b06f44d274
memfilectx: changectx argument is not mandatory
Boris Feld <boris.feld@octobus.net>
parents:
3283
diff
changeset
|
209 |
else: |
f4b06f44d274
memfilectx: changectx argument is not mandatory
Boris Feld <boris.feld@octobus.net>
parents:
3283
diff
changeset
|
210 |
mctx = context.memfilectx(repo, fctx.path(), fctx.data(), |
f4b06f44d274
memfilectx: changectx argument is not mandatory
Boris Feld <boris.feld@octobus.net>
parents:
3283
diff
changeset
|
211 |
islink='l' in flags, |
f4b06f44d274
memfilectx: changectx argument is not mandatory
Boris Feld <boris.feld@octobus.net>
parents:
3283
diff
changeset
|
212 |
isexec='x' in flags, |
f4b06f44d274
memfilectx: changectx argument is not mandatory
Boris Feld <boris.feld@octobus.net>
parents:
3283
diff
changeset
|
213 |
copied=copied.get(path)) |
f4b06f44d274
memfilectx: changectx argument is not mandatory
Boris Feld <boris.feld@octobus.net>
parents:
3283
diff
changeset
|
214 |
return mctx |