tests/fakepatchtime.py
changeset 25756 a4a41525180c
child 27284 f624b0e69105
equal deleted inserted replaced
25755:72d395e399c1 25756:a4a41525180c
       
     1 # extension to emulate invoking 'patch.internalpatch()' at the time
       
     2 # specified by '[fakepatchtime] fakenow'
       
     3 
       
     4 from mercurial import extensions, patch as patchmod, util
       
     5 
       
     6 def internalpatch(orig, ui, repo, patchobj, strip,
       
     7                   prefix='', files=None,
       
     8                   eolmode='strict', similarity=0):
       
     9     if files is None:
       
    10         files = set()
       
    11     r = orig(ui, repo, patchobj, strip,
       
    12              prefix=prefix, files=files,
       
    13              eolmode=eolmode, similarity=similarity)
       
    14 
       
    15     fakenow = ui.config('fakepatchtime', 'fakenow')
       
    16     if fakenow:
       
    17         # parsing 'fakenow' in YYYYmmddHHMM format makes comparison between
       
    18         # 'fakenow' value and 'touch -t YYYYmmddHHMM' argument easy
       
    19         fakenow = util.parsedate(fakenow, ['%Y%m%d%H%M'])[0]
       
    20         for f in files:
       
    21             repo.wvfs.utime(f, (fakenow, fakenow))
       
    22 
       
    23     return r
       
    24 
       
    25 def extsetup(ui):
       
    26     extensions.wrapfunction(patchmod, 'internalpatch', internalpatch)