hgext/simple4server.py
branchstable
changeset 1252 d001376b0c09
parent 1246 c7db753ca300
child 1253 d03583da89c4
equal deleted inserted replaced
1250:f88d5125d41b 1252:d001376b0c09
   193     markercache = {}
   193     markercache = {}
   194     for i in unfi:
   194     for i in unfi:
   195         ctx = unfi[i]
   195         ctx = unfi[i]
   196         entry = 0
   196         entry = 0
   197         sha = util.sha1()
   197         sha = util.sha1()
   198         issue4587 = ctx.hex() == "195dbd1cef0c2f9f8bcf4ea303238105f716bda3"
       
   199         if issue4587:
       
   200             import sys
       
   201             print >> sys.stderr, 'Witchcraft tracking: ON'
       
   202         # add data from p1
   198         # add data from p1
   203         for p in ctx.parents():
   199         for p in ctx.parents():
   204             p = p.rev()
   200             p = p.rev()
   205             if p < 0:
   201             if p < 0:
   206                 p = node.nullid
   202                 p = node.nullid
   207             else:
   203             else:
   208                 p = cache[p][1]
   204                 p = cache[p][1]
   209             if p != node.nullid:
   205             if p != node.nullid:
   210                 entry += 1
   206                 entry += 1
   211                 sha.update(p)
   207                 sha.update(p)
   212                 if issue4587:
       
   213                     print >> sys.stderr, '  Parent: %r' % p
       
   214                     print >> sys.stderr, '   Value: %s' % sha.hexdigest()
       
   215         tmarkers = repo.obsstore.relevantmarkers([ctx.node()])
   208         tmarkers = repo.obsstore.relevantmarkers([ctx.node()])
   216         if tmarkers:
   209         if tmarkers:
   217             bmarkers = []
   210             bmarkers = []
   218             for m in tmarkers:
   211             for m in tmarkers:
   219                 if not m in markercache:
   212                 if not m in markercache:
   221                 bmarkers.append(markercache[m])
   214                 bmarkers.append(markercache[m])
   222             bmarkers.sort()
   215             bmarkers.sort()
   223             for m in bmarkers:
   216             for m in bmarkers:
   224                 entry += 1
   217                 entry += 1
   225                 sha.update(m)
   218                 sha.update(m)
   226                 if issue4587:
       
   227                     print >> sys.stderr, '  Marker: %r' % m
       
   228                     print >> sys.stderr, '   Value: %s' % sha.hexdigest()
       
   229         if entry:
   219         if entry:
   230             cache.append((ctx.node(), sha.digest()))
   220             cache.append((ctx.node(), sha.digest()))
   231         else:
   221         else:
   232             cache.append((ctx.node(), node.nullid))
   222             cache.append((ctx.node(), node.nullid))
   233         if issue4587:
       
   234             print >> sys.stderr, '   Final: %s' % sha.hexdigest()
       
   235             print >> sys.stderr, 'Witchcraft tracking: OFF'
       
   236     return cache
   223     return cache
   237 
   224 
   238 # from evolve extension: 3249814dabd1
   225 # from evolve extension: 3249814dabd1
   239 def _obshash(repo, nodes, version=0):
   226 def _obshash(repo, nodes, version=0):
   240     if version == 0:
   227     if version == 0: