infinitepush: open files in binary mode
This fixes the scary looking abort in test-infinitepush-ci.t when unbundling:
--- tests/test-infinitepush-ci.t
+++ tests/test-infinitepush-ci.t.err
@@ -84,15 +84,12 @@
$ hg unbundle .hg/scratchbranches/filebundlestore/a4/c2/
a4c202c147a9c4bb91bbadb56321fc5f3950f7f2
adding changesets
- adding manifests
- adding file changes
- added 1 changesets with 1 changes to 1 files
- new changesets
6cb0989601f1
- (run 'hg update' to get a working copy)
-
- $ hg glog
- o 1:
6cb0989601f1 added a
- | public
+ transaction abort!
+ rollback completed
+ abort: stream ended unexpectedly (got 68 bytes, expected
218759168)
+ [255]
+
+ $ hg glog
@ 0:
67145f466344 initialcommit
public
This was found by grepping for '"r', "'r", '"w' and "'w" after manually creating
a bundle from the same revision, diffing against the corrupt one, and seeing CRs
sprinkled around. Sadly, the missing bookmarks are still a problem in the two
remaining test failures.
# revset.py - asv revset benchmarks
#
# Copyright 2016 Logilab SA <contact@logilab.fr>
#
# This software may be used and distributed according to the terms of the
# GNU General Public License version 2 or any later version.
'''ASV revset benchmarks generated from contrib/base-revsets.txt
Each revset benchmark is parameterized with variants (first, last, sort, ...)
'''
from __future__ import absolute_import
import os
import string
import sys
from . import basedir, perfbench
def createrevsetbenchmark(baseset, variants=None):
if variants is None:
# Default variants
variants = ["plain", "first", "last", "sort", "sort+first",
"sort+last"]
fname = "track_" + "_".join("".join([
c if c in string.digits + string.letters else " "
for c in baseset
]).split())
def wrap(fname, baseset):
@perfbench(name=baseset, params=[("variant", variants)])
def f(perf, variant):
revset = baseset
if variant != "plain":
for var in variant.split("+"):
revset = "%s(%s)" % (var, revset)
return perf("perfrevset", revset)
f.__name__ = fname
return f
return wrap(fname, baseset)
def initializerevsetbenchmarks():
mod = sys.modules[__name__]
with open(os.path.join(basedir, 'contrib', 'base-revsets.txt'),
'rb') as fh:
for line in fh:
baseset = line.strip()
if baseset and not baseset.startswith('#'):
func = createrevsetbenchmark(baseset)
setattr(mod, func.__name__, func)
initializerevsetbenchmarks()