Show More
@@ -201,21 +201,25 b' class hgcommand(object):' | |||||
201 | def run(self, args): |
|
201 | def run(self, args): | |
202 | cmd = self.cmd + args |
|
202 | cmd = self.cmd + args | |
203 | returncode, out, err = runcmd(cmd, self.env) |
|
203 | returncode, out, err = runcmd(cmd, self.env) | |
204 | # If root is executing setup.py, but the repository is owned by |
|
204 | err = filterhgerr(err) | |
205 | # another user (as in "sudo python setup.py install") we will get |
|
|||
206 | # trust warnings since the .hg/hgrc file is untrusted. That is |
|
|||
207 | # fine, we don't want to load it anyway. Python may warn about |
|
|||
208 | # a missing __init__.py in mercurial/locale, we also ignore that. |
|
|||
209 | err = [e for e in err.splitlines() |
|
|||
210 | if not e.startswith(b'not trusting file') \ |
|
|||
211 | and not e.startswith(b'warning: Not importing') \ |
|
|||
212 | and not e.startswith(b'obsolete feature not enabled')] |
|
|||
213 | if err or returncode != 0: |
|
205 | if err or returncode != 0: | |
214 | printf("stderr from '%s':" % (' '.join(cmd)), file=sys.stderr) |
|
206 | printf("stderr from '%s':" % (' '.join(cmd)), file=sys.stderr) | |
215 |
printf( |
|
207 | printf(err, file=sys.stderr) | |
216 | return '' |
|
208 | return '' | |
217 | return out |
|
209 | return out | |
218 |
|
210 | |||
|
211 | def filterhgerr(err): | |||
|
212 | # If root is executing setup.py, but the repository is owned by | |||
|
213 | # another user (as in "sudo python setup.py install") we will get | |||
|
214 | # trust warnings since the .hg/hgrc file is untrusted. That is | |||
|
215 | # fine, we don't want to load it anyway. Python may warn about | |||
|
216 | # a missing __init__.py in mercurial/locale, we also ignore that. | |||
|
217 | err = [e for e in err.splitlines() | |||
|
218 | if (not e.startswith(b'not trusting file') | |||
|
219 | and not e.startswith(b'warning: Not importing') | |||
|
220 | and not e.startswith(b'obsolete feature not enabled'))] | |||
|
221 | return b'\n'.join(b' ' + e for e in err) | |||
|
222 | ||||
219 | def findhg(): |
|
223 | def findhg(): | |
220 | """Try to figure out how we should invoke hg for examining the local |
|
224 | """Try to figure out how we should invoke hg for examining the local | |
221 | repository contents. |
|
225 | repository contents. | |
@@ -239,7 +243,7 b' def findhg():' | |||||
239 | retcode, out, err = runcmd(hgcmd + check_cmd, hgenv) |
|
243 | retcode, out, err = runcmd(hgcmd + check_cmd, hgenv) | |
240 | except EnvironmentError: |
|
244 | except EnvironmentError: | |
241 | retcode = -1 |
|
245 | retcode = -1 | |
242 | if retcode == 0: |
|
246 | if retcode == 0 and not filterhgerr(err): | |
243 | return hgcommand(hgcmd, hgenv) |
|
247 | return hgcommand(hgcmd, hgenv) | |
244 |
|
248 | |||
245 | # Fall back to trying the local hg installation. |
|
249 | # Fall back to trying the local hg installation. | |
@@ -251,7 +255,7 b' def findhg():' | |||||
251 | retcode, out, err = runcmd(hgcmd + check_cmd, hgenv) |
|
255 | retcode, out, err = runcmd(hgcmd + check_cmd, hgenv) | |
252 | except EnvironmentError: |
|
256 | except EnvironmentError: | |
253 | retcode = -1 |
|
257 | retcode = -1 | |
254 | if retcode == 0: |
|
258 | if retcode == 0 and not filterhgerr(err): | |
255 | return hgcommand(hgcmd, hgenv) |
|
259 | return hgcommand(hgcmd, hgenv) | |
256 |
|
260 | |||
257 | raise SystemExit('Unable to find a working hg binary to extract the ' |
|
261 | raise SystemExit('Unable to find a working hg binary to extract the ' |
General Comments 0
You need to be logged in to leave comments.
Login now