comparison mercurial/localrepo.py @ 8402:0ad521500424

tag: drop unused use_dirstate and parent from _tag()
author Matt Mackall <mpm@selenic.com>
date Thu, 14 May 2009 13:20:40 -0500
parents ca7dc47eecc6
children 553909cd1baa
comparison
equal deleted inserted replaced
8401:ca7dc47eecc6 8402:0ad521500424
127 def hook(self, name, throw=False, **args): 127 def hook(self, name, throw=False, **args):
128 return hook.hook(self.ui, self, name, throw, **args) 128 return hook.hook(self.ui, self, name, throw, **args)
129 129
130 tag_disallowed = ':\r\n' 130 tag_disallowed = ':\r\n'
131 131
132 def _tag(self, names, node, message, local, user, date, parent=None, 132 def _tag(self, names, node, message, local, user, date, extra={}):
133 extra={}):
134 use_dirstate = parent is None
135
136 if isinstance(names, str): 133 if isinstance(names, str):
137 allchars = names 134 allchars = names
138 names = (names,) 135 names = (names,)
139 else: 136 else:
140 allchars = ''.join(names) 137 allchars = ''.join(names)
171 writetags(fp, names, None, prevtags) 168 writetags(fp, names, None, prevtags)
172 for name in names: 169 for name in names:
173 self.hook('tag', node=hex(node), tag=name, local=local) 170 self.hook('tag', node=hex(node), tag=name, local=local)
174 return 171 return
175 172
176 if use_dirstate: 173 try:
177 try: 174 fp = self.wfile('.hgtags', 'rb+')
178 fp = self.wfile('.hgtags', 'rb+') 175 except IOError:
179 except IOError: 176 fp = self.wfile('.hgtags', 'ab')
180 fp = self.wfile('.hgtags', 'ab')
181 else:
182 prevtags = fp.read()
183 else: 177 else:
184 try: 178 prevtags = fp.read()
185 prevtags = self.filectx('.hgtags', parent).data()
186 except error.LookupError:
187 pass
188 fp = self.wfile('.hgtags', 'wb')
189 if prevtags:
190 fp.write(prevtags)
191 179
192 # committed tags are stored in UTF-8 180 # committed tags are stored in UTF-8
193 writetags(fp, names, encoding.fromlocal, prevtags) 181 writetags(fp, names, encoding.fromlocal, prevtags)
194 182
195 if use_dirstate and '.hgtags' not in self.dirstate: 183 if '.hgtags' not in self.dirstate:
196 self.add(['.hgtags']) 184 self.add(['.hgtags'])
197 185
198 tagnode = self.commit(['.hgtags'], message, user, date, p1=parent, 186 tagnode = self.commit(['.hgtags'], message, user, date, extra=extra)
199 extra=extra)
200 187
201 for name in names: 188 for name in names:
202 self.hook('tag', node=hex(node), tag=name, local=local) 189 self.hook('tag', node=hex(node), tag=name, local=local)
203 190
204 return tagnode 191 return tagnode