Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code

Side by Side Diff: modules/hgweb/files/hgweb.fcgi

Issue 29329092: Issue 3115 - Remove obsolete race condition workaround (Closed)
Patch Set: Created Oct. 13, 2015, 11:59 a.m.
Left:
Right:
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 #!/usr/bin/env python 1 #!/usr/bin/env python
2 # 2 #
3 # An example CGI script to export multiple hgweb repos, edit as necessary 3 # An example CGI script to export multiple hgweb repos, edit as necessary
4 4
5 import re 5 import re
6 6
7 # adjust python path if not a system-wide install: 7 # adjust python path if not a system-wide install:
8 #import sys 8 #import sys
9 #sys.path.insert(0, "/path/to/python/lib") 9 #sys.path.insert(0, "/path/to/python/lib")
10 10
(...skipping 10 matching lines...) Expand all
21 # UTF-8 and all your repo files to be displayed using UTF-8. 21 # UTF-8 and all your repo files to be displayed using UTF-8.
22 # 22 #
23 #import os 23 #import os
24 #os.environ["HGENCODING"] = "UTF-8" 24 #os.environ["HGENCODING"] = "UTF-8"
25 25
26 from mercurial.hgweb.hgwebdir_mod import hgwebdir 26 from mercurial.hgweb.hgwebdir_mod import hgwebdir
27 from flup.server.fcgi import WSGIServer 27 from flup.server.fcgi import WSGIServer
28 from urllib import unquote 28 from urllib import unquote
29 import sys 29 import sys
30 30
31 # Serialize ui.setconfig() accesses to avoid hitting http://bz.selenic.com/show_ bug.cgi?id=3953
32 from mercurial.ui import ui
33 import thread
34
35 config_lock = thread.allocate_lock()
36 orig_setconfig = ui.setconfig
37
38 def new_setconfig(*args, **kwargs):
39 with config_lock:
40 orig_setconfig(*args, **kwargs)
41
42 ui.setconfig = new_setconfig
43
44 # The config file looks like this. You can have paths to individual 31 # The config file looks like this. You can have paths to individual
45 # repos, collections of repos in a directory tree, or both. 32 # repos, collections of repos in a directory tree, or both.
46 # 33 #
47 # [paths] 34 # [paths]
48 # virtual/path1 = /real/path1 35 # virtual/path1 = /real/path1
49 # virtual/path2 = /real/path2 36 # virtual/path2 = /real/path2
50 # virtual/root = /real/root/* 37 # virtual/root = /real/root/*
51 # / = /real/root2/* 38 # / = /real/root2/*
52 # 39 #
53 # [collections] 40 # [collections]
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
86 else: 73 else:
87 return result 74 return result
88 75
89 def do_filter(self, iter, req): 76 def do_filter(self, iter, req):
90 for chunk in iter: 77 for chunk in iter:
91 yield re.sub(r'\bemail=.*?([\r\n]|$)', r'email=xxxx\1', chunk) 78 yield re.sub(r'\bemail=.*?([\r\n]|$)', r'email=xxxx\1', chunk)
92 if hasattr(iter, 'close'): 79 if hasattr(iter, 'close'):
93 iter.close() 80 iter.close()
94 81
95 WSGIServer(hgwebdir_with_filter('/etc/hgweb.ini'), debug=False).run() 82 WSGIServer(hgwebdir_with_filter('/etc/hgweb.ini'), debug=False).run()
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld