equal
deleted
inserted
replaced
114 ) |
114 ) |
115 from mercurial.utils import ( |
115 from mercurial.utils import ( |
116 dateutil, |
116 dateutil, |
117 stringutil, |
117 stringutil, |
118 ) |
118 ) |
|
119 from mercurial.dirstateutils import timestamp |
119 |
120 |
120 cmdtable = {} |
121 cmdtable = {} |
121 command = registrar.command(cmdtable) |
122 command = registrar.command(cmdtable) |
122 # Note for extension authors: ONLY specify testedwith = 'ships-with-hg-core' for |
123 # Note for extension authors: ONLY specify testedwith = 'ships-with-hg-core' for |
123 # extensions which SHIP WITH MERCURIAL. Non-mainline extensions should |
124 # extensions which SHIP WITH MERCURIAL. Non-mainline extensions should |
324 re_kw = self.rekwexp |
325 re_kw = self.rekwexp |
325 if expand: |
326 if expand: |
326 msg = _(b'overwriting %s expanding keywords\n') |
327 msg = _(b'overwriting %s expanding keywords\n') |
327 else: |
328 else: |
328 msg = _(b'overwriting %s shrinking keywords\n') |
329 msg = _(b'overwriting %s shrinking keywords\n') |
|
330 wctx = self.repo[None] |
329 for f in candidates: |
331 for f in candidates: |
330 if self.restrict: |
332 if self.restrict: |
331 data = self.repo.file(f).read(mf[f]) |
333 data = self.repo.file(f).read(mf[f]) |
332 else: |
334 else: |
333 data = self.repo.wread(f) |
335 data = self.repo.wread(f) |
354 self.ui.note(msg % f) |
356 self.ui.note(msg % f) |
355 fp = self.repo.wvfs(f, b"wb", atomictemp=True) |
357 fp = self.repo.wvfs(f, b"wb", atomictemp=True) |
356 fp.write(data) |
358 fp.write(data) |
357 fp.close() |
359 fp.close() |
358 if kwcmd: |
360 if kwcmd: |
359 self.repo.dirstate.set_clean(f) |
361 s = wctx[f].lstat() |
|
362 mode = s.st_mode |
|
363 size = s.st_size |
|
364 mtime = timestamp.mtime_of(s) |
|
365 cache_data = (mode, size, mtime) |
|
366 self.repo.dirstate.set_clean(f, cache_data) |
360 elif self.postcommit: |
367 elif self.postcommit: |
361 self.repo.dirstate.update_file_p1(f, p1_tracked=True) |
368 self.repo.dirstate.update_file_p1(f, p1_tracked=True) |
362 |
369 |
363 def shrink(self, fname, text): |
370 def shrink(self, fname, text): |
364 '''Returns text with all keyword substitutions removed.''' |
371 '''Returns text with all keyword substitutions removed.''' |