D4666: fastannotate: process files as they arrive

martinvonz (Martin von Zweigbergk) phabricator at mercurial-scm.org
Thu Sep 20 08:26:43 EDT 2018


This revision was automatically updated to reflect the committed changes.
Closed by commit rHGd8a7690ccc74: fastannotate: process files as they arrive (authored by martinvonz, committed by ).

REPOSITORY
  rHG Mercurial

CHANGES SINCE LAST UPDATE
  https://phab.mercurial-scm.org/D4666?vs=11200&id=11204

REVISION DETAIL
  https://phab.mercurial-scm.org/D4666

AFFECTED FILES
  hgext/fastannotate/protocol.py
  tests/test-fastannotate-protocol.t

CHANGE DETAILS

diff --git a/tests/test-fastannotate-protocol.t b/tests/test-fastannotate-protocol.t
--- a/tests/test-fastannotate-protocol.t
+++ b/tests/test-fastannotate-protocol.t
@@ -47,7 +47,6 @@
   sending protocaps command
   fastannotate: requesting 1 files
   sending getannotate command
-  fastannotate: server returned
   fastannotate: writing 112 bytes to fastannotate/default/a.l
   fastannotate: writing 94 bytes to fastannotate/default/a.m
   fastannotate: a: using fast path (resolved fctx: True)
@@ -94,7 +93,6 @@
   sending protocaps command
   fastannotate: requesting 1 files
   sending getannotate command
-  fastannotate: server returned
   fastannotate: a: 1 new changesets in the main branch
   0: 1
   1: 2
@@ -142,7 +140,6 @@
 
   $ hg annotate a --config fastannotate.modes=fctx --debug --config fastannotate.mainbranch=4 | grep fastannotate
   fastannotate: requesting 1 files
-  fastannotate: server returned
   fastannotate: a: 1 new changesets in the main branch
 
 the server would rebuild broken cache automatically
@@ -171,7 +168,6 @@
   sending protocaps command
   fastannotate: requesting 1 files
   sending getannotate command
-  fastannotate: server returned
   fastannotate: writing * (glob)
   fastannotate: writing * (glob)
   $ diff $p1/a.l $p2/a.l
diff --git a/hgext/fastannotate/protocol.py b/hgext/fastannotate/protocol.py
--- a/hgext/fastannotate/protocol.py
+++ b/hgext/fastannotate/protocol.py
@@ -163,23 +163,23 @@
                 'getannotate',
                 {'path': p, 'lastnode':lastnodemap.get(p)}))
 
-    ui.debug('fastannotate: server returned\n')
-    for result in results:
-        r = result.result()
-        # TODO: pconvert these paths on the server?
-        r = {util.pconvert(p): v for p, v in r.iteritems()}
-        for path in sorted(r):
-            # ignore malicious paths
-            if not path.startswith('fastannotate/') or '/../' in (path + '/'):
-                ui.debug('fastannotate: ignored malicious path %s\n' % path)
-                continue
-            content = r[path]
-            if ui.debugflag:
-                ui.debug('fastannotate: writing %d bytes to %s\n'
-                         % (len(content), path))
-            repo.vfs.makedirs(os.path.dirname(path))
-            with repo.vfs(path, 'wb') as f:
-                f.write(content)
+        for result in results:
+            r = result.result()
+            # TODO: pconvert these paths on the server?
+            r = {util.pconvert(p): v for p, v in r.iteritems()}
+            for path in sorted(r):
+                # ignore malicious paths
+                if (not path.startswith('fastannotate/')
+                    or '/../' in (path + '/')):
+                    ui.debug('fastannotate: ignored malicious path %s\n' % path)
+                    continue
+                content = r[path]
+                if ui.debugflag:
+                    ui.debug('fastannotate: writing %d bytes to %s\n'
+                             % (len(content), path))
+                repo.vfs.makedirs(os.path.dirname(path))
+                with repo.vfs(path, 'wb') as f:
+                    f.write(content)
 
 def _filterfetchpaths(repo, paths):
     """return a subset of paths whose history is long and need to fetch linelog



To: martinvonz, #hg-reviewers, indygreg
Cc: yuja, mercurial-devel


More information about the Mercurial-devel mailing list