Show More
@@ -62,13 +62,6 b' annotate cache greatly. Run "debugbuildl' | |||
|
62 | 62 | # the server. (default: 10) |
|
63 | 63 | clientfetchthreshold = 10 |
|
64 | 64 | |
|
65 | # use flock instead of the file existence lock | |
|
66 | # flock may not work well on some network filesystems, but they avoid | |
|
67 | # creating and deleting files frequently, which is faster when updating | |
|
68 | # the annotate cache in batch. if you have issues with this option, set it | |
|
69 | # to False. (default: True if flock is supported, False otherwise) | |
|
70 | useflock = True | |
|
71 | ||
|
72 | 65 | # for "fctx" mode, always follow renames regardless of command line option. |
|
73 | 66 | # this is a BC with the original command but will reduced the space needed |
|
74 | 67 | # for annotate cache, and is useful for client-server setup since the |
@@ -100,8 +93,6 b' annotate cache greatly. Run "debugbuildl' | |||
|
100 | 93 | # |
|
101 | 94 | # * rename the config knob for updating the local cache from a remote server |
|
102 | 95 | # |
|
103 | # * move `flock` based locking to a common area | |
|
104 | # | |
|
105 | 96 | # * revise wireprotocol for sharing annotate files |
|
106 | 97 | # |
|
107 | 98 | # * figure out a sensible default for `mainbranch` (with the caveat |
@@ -114,7 +105,6 b' from __future__ import absolute_import' | |||
|
114 | 105 | |
|
115 | 106 | from mercurial.i18n import _ |
|
116 | 107 | from mercurial import ( |
|
117 | configitems, | |
|
118 | 108 | error as hgerror, |
|
119 | 109 | localrepo, |
|
120 | 110 | registrar, |
@@ -122,7 +112,6 b' from mercurial import (' | |||
|
122 | 112 | |
|
123 | 113 | from . import ( |
|
124 | 114 | commands, |
|
125 | context, | |
|
126 | 115 | protocol, |
|
127 | 116 | ) |
|
128 | 117 | |
@@ -139,7 +128,6 b' configitem = registrar.configitem(config' | |||
|
139 | 128 | |
|
140 | 129 | configitem('fastannotate', 'modes', default=['fastannotate']) |
|
141 | 130 | configitem('fastannotate', 'server', default=False) |
|
142 | configitem('fastannotate', 'useflock', default=configitems.dynamicdefault) | |
|
143 | 131 | configitem('fastannotate', 'client', default=False) |
|
144 | 132 | configitem('fastannotate', 'unfilteredrepo', default=True) |
|
145 | 133 | configitem('fastannotate', 'defaultformat', default=['number']) |
@@ -151,14 +139,6 b" configitem('fastannotate', 'clientfetcht" | |||
|
151 | 139 | configitem('fastannotate', 'serverbuildondemand', default=True) |
|
152 | 140 | configitem('fastannotate', 'remotepath', default='default') |
|
153 | 141 | |
|
154 | def _flockavailable(): | |
|
155 | try: | |
|
156 | import fcntl | |
|
157 | fcntl.flock | |
|
158 | except (AttributeError, ImportError): | |
|
159 | return False | |
|
160 | else: | |
|
161 | return True | |
|
162 | 142 | |
|
163 | 143 | def uisetup(ui): |
|
164 | 144 | modes = set(ui.configlist('fastannotate', 'modes')) |
@@ -180,9 +160,6 b' def uisetup(ui):' | |||
|
180 | 160 | if ui.configbool('fastannotate', 'server'): |
|
181 | 161 | protocol.serveruisetup(ui) |
|
182 | 162 | |
|
183 | if ui.configbool('fastannotate', 'useflock', _flockavailable()): | |
|
184 | context.pathhelper.lock = context.pathhelper._lockflock | |
|
185 | ||
|
186 | 163 | def extsetup(ui): |
|
187 | 164 | # fastannotate has its own locking, without depending on repo lock |
|
188 | 165 | # TODO: avoid mutating this unless the specific repo has it enabled |
@@ -759,21 +759,6 b' class pathhelper(object):' | |||
|
759 | 759 | def lock(self): |
|
760 | 760 | return lockmod.lock(self._repo.vfs, self._vfspath + '.lock') |
|
761 | 761 | |
|
762 | @contextlib.contextmanager | |
|
763 | def _lockflock(self): | |
|
764 | """the same as 'lock' but use flock instead of lockmod.lock, to avoid | |
|
765 | creating temporary symlinks.""" | |
|
766 | import fcntl | |
|
767 | lockpath = self.linelogpath | |
|
768 | util.makedirs(os.path.dirname(lockpath)) | |
|
769 | lockfd = os.open(lockpath, os.O_RDONLY | os.O_CREAT, 0o664) | |
|
770 | fcntl.flock(lockfd, fcntl.LOCK_EX) | |
|
771 | try: | |
|
772 | yield | |
|
773 | finally: | |
|
774 | fcntl.flock(lockfd, fcntl.LOCK_UN) | |
|
775 | os.close(lockfd) | |
|
776 | ||
|
777 | 762 | @property |
|
778 | 763 | def revmappath(self): |
|
779 | 764 | return self._repo.vfs.join(self._vfspath + '.m') |
General Comments 0
You need to be logged in to leave comments.
Login now