--- a/hgext/mq.py Sat Mar 03 18:59:54 2007 -0800
+++ b/hgext/mq.py Sun Mar 04 09:03:21 2007 -0300
@@ -1738,7 +1738,10 @@
if patch is None:
raise util.Abort(_('no patch to work with'))
if args or opts['none']:
- q.set_guards(q.find_series(patch), args)
+ idx = q.find_series(patch)
+ if idx is None:
+ raise util.Abort(_('no patch named %s') % patch)
+ q.set_guards(idx, args)
q.save_dirty()
else:
status(q.series.index(q.lookup(patch)))
--- a/mercurial/bdiff.c Sat Mar 03 18:59:54 2007 -0800
+++ b/mercurial/bdiff.c Sun Mar 04 09:03:21 2007 -0300
@@ -255,8 +255,8 @@
if (pos && l.base && t) {
/* generate the matching block list */
recurse(a, b, pos, 0, an, 0, bn, &l);
- l.head->a1 = an;
- l.head->b1 = bn;
+ l.head->a1 = l.head->a2 = an;
+ l.head->b1 = l.head->b2 = bn;
l.head++;
}
--- a/mercurial/hgweb/server.py Sat Mar 03 18:59:54 2007 -0800
+++ b/mercurial/hgweb/server.py Sun Mar 04 09:03:21 2007 -0300
@@ -197,6 +197,11 @@
pass
class MercurialHTTPServer(object, _mixin, BaseHTTPServer.HTTPServer):
+
+ # SO_REUSEADDR has broken semantics on windows
+ if os.name == 'nt':
+ allow_reuse_address = 0
+
def __init__(self, *args, **kargs):
BaseHTTPServer.HTTPServer.__init__(self, *args, **kargs)
self.accesslog = accesslog
--- a/mercurial/httprepo.py Sat Mar 03 18:59:54 2007 -0800
+++ b/mercurial/httprepo.py Sun Mar 04 09:03:21 2007 -0300
@@ -126,6 +126,7 @@
def __init__(self, ui, path):
self.path = path
self.caps = None
+ self.handler = None
scheme, netloc, urlpath, query, frag = urlparse.urlsplit(path)
if query or frag:
raise util.Abort(_('unsupported URL component: "%s"') %
@@ -140,7 +141,8 @@
proxyurl = ui.config("http_proxy", "host") or os.getenv('http_proxy')
# XXX proxyauthinfo = None
- handlers = [httphandler()]
+ self.handler = httphandler()
+ handlers = [self.handler]
if proxyurl:
# proxy can be proper url or host[:port]
@@ -198,6 +200,11 @@
# 1.0 here is the _protocol_ version
opener.addheaders = [('User-agent', 'mercurial/proto-1.0')]
urllib2.install_opener(opener)
+
+ def __del__(self):
+ if self.handler:
+ self.handler.close_all()
+ self.handler = None
def url(self):
return self.path
--- a/mercurial/localrepo.py Sat Mar 03 18:59:54 2007 -0800
+++ b/mercurial/localrepo.py Sun Mar 04 09:03:21 2007 -0300
@@ -1880,6 +1880,8 @@
ofp.write(chunk)
ofp.close()
elapsed = time.time() - start
+ if elapsed <= 0:
+ elapsed = 0.001
self.ui.status(_('transferred %s in %.1f seconds (%s/sec)\n') %
(util.bytecount(total_bytes), elapsed,
util.bytecount(total_bytes / elapsed)))
--- a/mercurial/streamclone.py Sat Mar 03 18:59:54 2007 -0800
+++ b/mercurial/streamclone.py Sun Mar 04 09:03:21 2007 -0300
@@ -78,7 +78,7 @@
entries = []
total_bytes = 0
for name, size in walkrepo(repo.spath):
- name = util.pconvert(repo.decodefn(name))
+ name = repo.decodefn(util.pconvert(name))
entries.append((name, size))
total_bytes += size
repolock.release()
--- a/mercurial/util.py Sat Mar 03 18:59:54 2007 -0800
+++ b/mercurial/util.py Sun Mar 04 09:03:21 2007 -0300
@@ -790,6 +790,14 @@
if inst.errno != 0: raise
self.close()
raise IOError(errno.EPIPE, 'Broken pipe')
+
+ def flush(self):
+ try:
+ return self.fp.flush()
+ except IOError, inst:
+ if inst.errno != errno.EINVAL: raise
+ self.close()
+ raise IOError(errno.EPIPE, 'Broken pipe')
sys.stdout = winstdout(sys.stdout)
--- a/tests/test-http Sat Mar 03 18:59:54 2007 -0800
+++ b/tests/test-http Sun Mar 04 09:03:21 2007 -0300
@@ -6,6 +6,8 @@
hg commit -A -d '0 0' -m 1
hg --config server.uncompressed=True serve -p 20059 -d --pid-file=../hg1.pid
hg serve -p 20060 -d --pid-file=../hg2.pid
+# Test server address cannot be reused
+hg serve -p 20060 2>&1 | sed -e 's/abort: cannot start server:.*/abort: cannot start server:/'
cd ..
cat hg1.pid hg2.pid >> $DAEMON_PIDS
--- a/tests/test-http.out Sat Mar 03 18:59:54 2007 -0800
+++ b/tests/test-http.out Sun Mar 04 09:03:21 2007 -0300
@@ -1,4 +1,5 @@
adding foo
+abort: cannot start server:
% clone via stream
streaming all changes
XXX files to transfer, XXX bytes of data
--- a/tests/test-mq-guards Sat Mar 03 18:59:54 2007 -0800
+++ b/tests/test-mq-guards Sun Mar 04 09:03:21 2007 -0300
@@ -27,6 +27,9 @@
hg qpop -a
echo % should fail
+hg qguard does-not-exist.patch +bleh
+
+echo % should fail
hg qguard +fail
hg qpush
--- a/tests/test-mq-guards.out Sat Mar 03 18:59:54 2007 -0800
+++ b/tests/test-mq-guards.out Sun Mar 04 09:03:21 2007 -0300
@@ -1,6 +1,8 @@
adding x
Patch queue now empty
% should fail
+abort: no patch named does-not-exist.patch
+% should fail
abort: no patches applied
applying a.patch
Now at: a.patch