Index: /tools/gformat.py
===================================================================
--- /tools/gformat.py	(revision 14375)
+++ /tools/gformat.py	(revision 14376)
@@ -1502,13 +1502,13 @@
 
   # Update repository if requested
-  form = urllib.parse.urlparse.parse_qs(environ['QUERY_STRING']) if QUERY_STRING in environ else None
+  form = urllib.parse.parse_qs(environ.get('QUERY_STRING'))
   if form and 'action' in form and 'update' in form['action']:
     refresh_rate = 5
     output = "[INFO] Updating subverion, please wait...\n"
-    old_version = subprocess.Popen([SVNVERSION, '-c', "%s/.." % NODE_DIR], stderr=subprocess.STDOUT, stdout=subprocess.PIPE).communicate()[0]
-    output += subprocess.Popen([SVN, 'cleanup', "%s/.." % NODE_DIR], stderr=subprocess.STDOUT, stdout=subprocess.PIPE).communicate()[0]
-    output += subprocess.Popen([SVN, 'up', "%s/.." % NODE_DIR], stderr=subprocess.STDOUT, stdout=subprocess.PIPE).communicate()[0]
-    new_version = subprocess.Popen([SVNVERSION, '-c', "%s/.." % NODE_DIR], stderr=subprocess.STDOUT, stdout=subprocess.PIPE).communicate()[0]
-    if old_version != new_version or ('QUERY_STRING' in environ and 'force' in environ['QUERY_STRING']):
+    old_version = subprocess.Popen([SVNVERSION, '-c', "%s/.." % NODE_DIR], stderr=subprocess.STDOUT, stdout=subprocess.PIPE).communicate()[0].decode('utf-8')
+    output += subprocess.Popen([SVN, 'cleanup', "%s/.." % NODE_DIR], stderr=subprocess.STDOUT, stdout=subprocess.PIPE).communicate()[0].decode('utf-8')
+    output += subprocess.Popen([SVN, 'up', "%s/.." % NODE_DIR], stderr=subprocess.STDOUT, stdout=subprocess.PIPE).communicate()[0].decode('utf-8')
+    new_version = subprocess.Popen([SVNVERSION, '-c', "%s/.." % NODE_DIR], stderr=subprocess.STDOUT, stdout=subprocess.PIPE).communicate()[0].decode('utf-8')
+    if old_version != new_version or 'force' in environ.get('QUERY_STRING'):
         try:
             generate_static(CACHE_DIR, False)
@@ -1528,5 +1528,5 @@
     # URL must be of format <prefix>/config/<path>
     base_uri = environ['REQUEST_URI']
-    uri = filter(None, base_uri.split('/config/')[1].strip('/').split('/'))
+    uri = list(filter(None, base_uri.split('/config/')[1].strip('/').split('/')))
 
     output = "Template Holder"
