Sean Farley <sean@farley.io> [Sat, 30 Apr 2016 17:29:12 -0700] rev 29046
builddeb: remove chmod as lintian tells us
It turns out we just need debian/rules to be executable, so we do just that.
Sean Farley <sean@farley.io> [Sat, 30 Apr 2016 11:51:45 -0700] rev 29045
builddeb: use codename in version
Apparently, this is needed to allow ppas to be built for multiple distros.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Sat, 30 Apr 2016 18:39:39 +0200] rev 29044
rebase: restrict rebase destination to the pulled set (
issue5214)
Before this patch, `hg pull --rebase` would be a strict sequence of `hg pull`
followed by `hg rebase` if anything was pulled.
Now that rebase pick his default destination the same way than merge, than
`hg rebase` step would abort in the case the repo already had multiple anonymous
heads (because of the ambiguity). (changed in
fac3a24be50e)
The intend of the user with `hg pull --rebase` is clearly to rebase on pulled
content. This used to be (mostly) enforced by the former default destination for
rebase, "tipmost changeset of the branch" as the tipmost would likely a
changeset that just got pulled. But this intended was no longer enforced with
the new defaul destination (unified with merge).
This changeset makes use of the '_destspace' mechanism introduced in the previous
changeset to enforce this.
This partially fixes
issue5214 as no change at all have been made to the new
handling of the case with bookmark (unified with merge).
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Sat, 30 Apr 2016 18:41:08 +0200] rev 29043
destutil: add the ability to specify a search space for rebase destination
In the 'hg pull --rebase', we don't want to pick a rebase destination unrelated
to the pull, we lay down basic infrastructure to allow such restriction on
stable (before 3.8 release) in this case. See issue 5214 for details.
Actual usage and test will be in the next patch.
Gregory Szorc <gregory.szorc@gmail.com> [Sat, 30 Apr 2016 09:26:47 -0700] rev 29042
sslutil: restore old behavior not requiring a hostname argument (
issue5210)
This effectively backs out changeset
1fde84d42f9c.
The http library behind ui.http2=true isn't specifying the hostname.
It is the day before the expected 3.8 release and we don't want to ship
a regression.
I'll try to restore this requirement in the 3.9 release cycle as part
of planned improvements to Mercurial's SSL/TLS interactions.
Matt Mackall <mpm@selenic.com> [Thu, 28 Apr 2016 16:38:15 -0500] rev 29041
tests: test a variety of cache invariants
We've historically had a problem maintaining the expected invariants
on our caches, especially when introducing new caches. This tests
documents the invariants and exercises them across most of our
existing cache files.
Matt Mackall <mpm@selenic.com> [Thu, 28 Apr 2016 16:26:18 -0500] rev 29040
repoview: ignore unwritable hidden cache
The atomictemp.close() file attempts to do a rename, which can fail.
Moving the close inside the exception handler fixes it.
This doesn't fit well with the with: pattern, as it's the finalizer
that's failing.
Matt Mackall <mpm@selenic.com> [Thu, 28 Apr 2016 15:40:43 -0500] rev 29039
tags: silence hgtagsfnodes reading failures
tryread() doesn't handle "is a directory" errors and presumably
others. We might not want to globally swallow such tryread errors, so
we replace with our own try/except handling.
An upcoming test will use directories as a portable stand-in for
various bizarre circumstances that cache read/write code should be
robust to.
Matt Mackall <mpm@selenic.com> [Thu, 28 Apr 2016 15:35:54 -0500] rev 29038
tags: silence cache parsing errors
Follow our standard STFU cache-handling pattern
Wagner Bruna <wbruna@yahoo.com> [Sun, 01 May 2016 00:12:56 -0300] rev 29037
i18n-pt_BR: synchronized with
18c1b107898e
Sean Farley <sean@farley.io> [Wed, 27 Apr 2016 01:07:40 -0700] rev 29036
ubuntu-xenial-ppa: add makefile rule
Sean Farley <sean@farley.io> [Wed, 27 Apr 2016 01:02:56 -0700] rev 29035
ubuntu-wily-ppa: add makefile rule
Sean Farley <sean@farley.io> [Wed, 27 Apr 2016 00:27:10 -0700] rev 29034
ubuntu-trusty-ppa: add makefile rule
Sean Farley <sean@farley.io> [Wed, 27 Apr 2016 00:18:18 -0700] rev 29033
ubuntu-xenial: add makefile rule to build deb
Sean Farley <sean@farley.io> [Wed, 27 Apr 2016 00:10:49 -0700] rev 29032
ubuntu-wily: add makefile rule to build deb
Sean Farley <sean@farley.io> [Tue, 26 Apr 2016 23:33:17 -0700] rev 29031
make: turn ubuntu docker into template
This allows us to easily add more ubuntu docker targets (which following
patches will do).
Also, we no longer need the mkdir command.
Sean Farley <sean@farley.io> [Wed, 27 Apr 2016 14:02:18 -0700] rev 29030
revsets: add docs for '%' operator
Adam Simpkins <simpkins@fb.com> [Wed, 27 Apr 2016 19:24:31 -0700] rev 29029
graft: fix printing of --continue command
Properly shell quote arguments, to avoid printing commands that won't work when
run literally. For example, a date string with timestamp needs to be quoted:
--date '
1456953053 28800'
Kevin Bullock <kbullock+mercurial@ringworld.org> [Fri, 29 Apr 2016 14:14:00 -0500] rev 29028
hghave: remove unused check for bdist_mpkg
Kevin Bullock <kbullock+mercurial@ringworld.org> [Wed, 27 Apr 2016 10:20:36 -0500] rev 29027
osx: create a modern package including manpages
Instead of using bdist_mpkg, we use the modern Apple-provided tools to
build an OS X Installer package directly. This has several advantages:
* Avoids bdist_mpkg which seems to be barely maintained and is hard to
use.
* Creates a single unified .pkg instead of a .mpkg.
* The package we produce is in the modern, single-file format instead of
a directory bundle that we have to zip up for download.
In addition, this way of building the package now correctly:
* Installs the manpages, bringing the `make osx`-generated package in
line with the official Mac packages we publish on the website.
* Installs files with the correct permissions instead of encoding the
UID of the user who happened to build the package.
Thanks to Augie for updating the test expectations.
Augie Fackler <augie@google.com> [Wed, 27 Apr 2016 11:45:55 -0400] rev 29026
hghave: add check for OS X packaging tools
Augie Fackler <augie@google.com> [Mon, 18 Apr 2016 23:59:55 -0400] rev 29025
tests: add test for Mac OS X package construction
Augie Fackler <augie@google.com> [Mon, 18 Apr 2016 23:59:28 -0400] rev 29024
osx: add support for keeping mpkgs
This is a bit of a hack, but I don't really want to mount a dmg during
a test, and I don't see an option with hdiutil to take a dmg and spit
out a folder, so this is what we've got for now.
Augie Fackler <augie@google.com> [Mon, 18 Apr 2016 23:57:22 -0400] rev 29023
osx: add support for dumping built dmg into OUTPUTDIR
Augie Fackler <augie@google.com> [Mon, 18 Apr 2016 23:55:58 -0400] rev 29022
hghave: add check for bdist_mpkg
Matt Harbison <matt_harbison@yahoo.com> [Wed, 27 Apr 2016 22:45:52 -0400] rev 29021
verify: don't init subrepo when missing one is referenced (
issue5128) (API)
Initializing a subrepo when one doesn't exist is the right thing to do when the
parent is being updated, but in few other cases. Unfortunately, there isn't
enough context in the subrepo module to distinguish this case. This same issue
can be caused with other subrepo aware commands, so there is a general issue
here beyond the scope of this fix.
A simpler attempt I tried was to add an '_updating' boolean to localrepo, and
set/clear it around the call to mergemod.update() in hg.updaterepo(). That
mostly worked, but doesn't handle the case where archive will clone the subrepo
if it is missing. (I vaguely recall that there may be other commands that will
clone if needed like this, but certainly not all do. It seems both handy, and a
bit surprising for what should be a read only operation. It might be nice if
all commands did this consistently, but we probably need Angel's subrepo caching
first, to not make a mess of the working directory.)
I originally handled 'Exception' in order to pick up the Aborts raised in
subrepo.state(), but this turns out to be unnecessary because that is called
once and cached by ctx.sub() when iterating the subrepos.
It was suggested in the bug discussion to skip looking at the subrepo links
unless -S is specified. I don't really like that idea because missing a subrepo
or (less likely, but worse) a corrupt .hgsubstate is a problem of the parent
repo when checking out a revision. The -S option seems like a better fit for
functionality that would recurse into each subrepo and do a full verification.
Ultimately, the default value for 'allowcreate' should probably be flipped, but
since the default behavior was to allow creation, this is less risky for now.
Gregory Szorc <gregory.szorc@gmail.com> [Thu, 28 Apr 2016 08:52:13 -0700] rev 29020
setup: detect Python DLL filename from loaded DLL
Attempting to build Mercurial from source using MinGW from
msys2 on Windows produces a hg.exe that attempts to load e.g.
python27.dll. MinGW prefixes its library name with "lib" and
adds a period between the major and minor versions. e.g.
"libpython2.7.dll."
Before this patch, hg.exe files in a MinGW environment would
either fail to find a Python DLL or would attempt to load a
non-MinGW DLL, which would summarily explode. Either way,
hg.exe wouldn't work.
This patch improves the code that determines the Python DLL
filename to actually use the loaded Python DLL instead of
inferring it. Basically we take the handle of the loaded DLL
from sys.dllhandle and call a Windows API to try to resolve
that handle to a filename.
Gregory Szorc <gregory.szorc@gmail.com> [Wed, 27 Apr 2016 09:23:39 -0700] rev 29019
exewrapper: add .dll to LoadLibrary() argument
LoadLibrary() changes behavior depending on whether the argument
passed to it contains a period. From the MSDN docs:
If no file name extension is specified in the lpFileName parameter,
the default library extension .dll is appended. However, the file name
string can include a trailing point character (.) to indicate that the
module name has no extension. When no path is specified, the function
searches for loaded modules whose base name matches the base name of
the module to be loaded. If the name matches, the load succeeds.
Otherwise, the function searches for the file.
As the subsequent patch will show, some environments on Windows
define their Python library as e.g. "libpython2.7.dll." The existing
code would pass "libpython2.7" into LoadLibrary(). It would assume
"7" was the file extension and look for a "libpython2.dll" to load.
By passing ".dll" into LoadLibrary(), we force it to search for the
exact basename we want, even if it contains a period.
Martin von Zweigbergk <martinvonz@google.com> [Wed, 27 Apr 2016 14:02:54 -0700] rev 29018
update: correct description of --check option
The old "update across branches if no uncommitted changes" made
it sound like updating across branches (with no uncommitted changes)
was allowed only with this option, which was not true. Also, the option
did not care whether it was linear or across branches. Instead, it
checked that there were no uncommitted changes. Let's explain what it
does instead of trying to suggest what happens without it.
Adam Simpkins <simpkins@fb.com> [Tue, 26 Apr 2016 15:32:59 -0700] rev 29017
util: fix race in makedirs()
Update makedirs() to ignore EEXIST in case someone else has already created the
directory in question. Previously the ensuredirs() function existed, and was
nearly identical to makedirs() except that it fixed this race. Unfortunately
ensuredirs() was only used in 3 places, and most code uses the racy makedirs()
function. This fixes makedirs() to be non-racy, and replaces calls to
ensuredirs() with makedirs().
In particular, mercurial.scmutil.origpath() used the racy makedirs() code,
which could cause failures during "hg update" as it tried to create backup
directories.
This does slightly change the behavior of call sites using ensuredirs():
previously ensuredirs() would throw EEXIST if the path existed but was a
regular file instead of a directory. It did this by explicitly checking
os.path.isdir() after getting EEXIST. The makedirs() code did not do this and
swallowed all EEXIST errors. I kept the makedirs() behavior, since it seemed
preferable to avoid the extra stat call in the common case where this directory
already exists. If the path does happen to be a file, the caller will almost
certainly fail with an ENOTDIR error shortly afterwards anyway. I checked
the 3 existing call sites of ensuredirs(), and this seems to be the case for
them.
Yuya Nishihara <yuya@tcha.org> [Sun, 24 Apr 2016 21:35:30 +0900] rev 29016
chg: initialize sockdirfd to -1 instead of AT_FDCWD
As we don't use sockdirfd yet, this is the simplest workaround to compile chg
on old Unices where AT_FDCWD does not exist. Foozy pointed out Mac OS X 10.10
is required for AT_FDCWD as well as xxxat() functions.
Matt Mackall <mpm@selenic.com> [Fri, 22 Apr 2016 13:38:02 -0500] rev 29015
bdiff: further restrain potential quadratic performance
This causes the longest_match search to limit itself to a window of
30000 lines during search (roughly 1MB), thus avoiding a full O(N*M)
search that might occur in repetitive structured inputs. For a
particular class of many MB pathological test cases, this generated
the following timings:
size before after
10x 1.25s 1.24s
100x 57s 33s
1000x >8400s 400s
The times on the right quickly become much faster and appear more linear.
While windowing means deltas are no longer "optimal", the resulting
deltas were within a couple percent of expected size. While we've yet
to have a report of a file with the level of repetition necessary to
hit this case, some JSON/XML database dump scenario is fairly likely
to hit it.
This may also slightly improve the average-case performance for deltas
of large binaries.
Matt Mackall <mpm@selenic.com> [Thu, 21 Apr 2016 22:04:11 -0500] rev 29014
bdiff: balance recursion to avoid quadratic behavior (
issue4704)
For highly structured files like JSON or XML dumps with large numbers
of duplicate lines (eg braces) and isolated matching lines, bdiff
could find large numbers of equally good spans. Because it prefers
earlier matches, this would result in pathologically unbalance
recursion that resulted in quadratic performance.
This patch makes it prefer matches closer to the middle that tend to
balance recursion. This change improves the speed of a pathological
test case from 1100s to 9s.
Included is a smaller test that has a roughly 50x safety margin on the
performance it accepts. It's likely to fail on pure builds because
difflib also has a recursion-balancing problem.
Matt Mackall <mpm@selenic.com> [Thu, 21 Apr 2016 21:05:26 -0500] rev 29013
bdiff: deal better with duplicate lines
The longest_match code compares all the possible positions in two
files to find the best match. Given a pair of sequences, it
effectively searches a grid like this:
a b b b c . d e . f
0 1 2 3 4 5 6 7 8 9
a 1 - - - - - - - - -
b - 2 1 1 - - - - - -
b - 1 3 2 - - - - - -
b - 1 2 4 - - - - - -
. - - - - - 1 - - 1 -
Here, the 4 in the middle says "the first four lines of the
file match", which it can compute be comparing the fourth lines and
then adding one to the result found when comparing the third lines in
the entry to the upper left.
We generally avoid the quadratic worst case by only looking at lines
that match, which is precomputed. We also avoid quadratic storage by
only keeping a single column vector and then keeping track of the best
match.
Unfortunately, this can get us into trouble with the sequences above.
Because we want to reuse the '3' value when calculating the '4', we
need to be careful not to overwrite it with the '2' we calculate
immediately before. If we scan left to right, top to bottom, we're
going to have a problem: we'll overwrite our 3 before we use it and
calculate a suboptimal best match.
To address this, we can either keep two column vectors and swap
between them (which significantly complicates bookkeeping), or change
our scanning order. If we instead scan from left to right, bottom to
top, we'll avoid ever overwriting values we'll need in the future.
This unfortunately needs several changes to be made simultaneously:
- change the order we build the initial hash chains for the b sequence
- change the sentinel values from INT_MAX to -1
- change the visit order in the longest_match inner loop
- add a tie-breaker preference for earlier matches
This last is needed because we previously had an implicit tie-breaker
from our visitation order that our test suite relies on. Later matches
can also trigger a bug in the normalization code in diff().
Matt Mackall <mpm@selenic.com> [Thu, 21 Apr 2016 21:53:18 -0500] rev 29012
bdiff: fix latent normalization bug
This bug is hidden by the current bias towards matches at the
beginning of the file. When this bias is tweaked later to address
recursion balancing, the normalization code could cause the next block
to shrink to a negative length, thus creating invalid delta chunks. We
add checks here to disallow that.
This bug requires test cases that are an awkwardly large size for the test
suite, but is very rapidly picked up by the included torture tester.
Matt Mackall <mpm@selenic.com> [Thu, 21 Apr 2016 21:46:31 -0500] rev 29011
bdiff: fold in shift calculation in normalize
This just makes the code harder to read without any performance
advantage. We're going to make the check here more complex, let's make
it simpler first.
Matt Mackall <mpm@selenic.com> [Thu, 21 Apr 2016 21:37:13 -0500] rev 29010
bdiff: unify duplicate normalize loops
We're about to make the while loop check more complicated, so let's simplify
first.
Siddharth Agarwal <sid0@fb.com> [Mon, 25 Apr 2016 16:34:02 -0700] rev 29009
make: backout changeset
51f5fae84e43
Support for '!=' was only added in GNU Make 4.0, and CentOS versions as new as
CentOS 7 only carry 3.82.
I will leave figuring out compatibility with BSD make as an exercise for
interested folks.
timeless <timeless@mozdev.org> [Thu, 01 Jan 1970 00:00:00 +0000] rev 29008
tests: test-lock-badness.t message could come later
I got this on gcc112:
@@ -58,8 +58,8 @@
$ hg -R b ci -A -m b --config hooks.precommit="python:`pwd`/hooks.py:sleepone" > stdout &
$ hg -R b up -q --config hooks.pre-update="python:`pwd`/hooks.py:sleephalf"
waiting for lock on working directory of b held by '*:*' (glob)
- got lock after ? seconds (glob)
$ wait
+ got lock after 1 seconds
$ cat stdout
adding b
Sean Farley <sean@farley.io> [Sat, 23 Apr 2016 12:47:57 -0700] rev 29007
dockerdeb: pass the rest of the args to the builder script
It seems this was the original intent of the script so this patch passes the
remanining arguments to builddeb.
Sean Farley <sean@farley.io> [Sat, 23 Apr 2016 12:47:39 -0700] rev 29006
dockerdeb: fix incorrect number of shifts
From the comment, it appears that the original intent was to remove the first
two arguments, so this patch does just that.
Augie Fackler <augie@google.com> [Thu, 21 Apr 2016 10:11:20 -0400] rev 29005
make: use shell-command assignment instead of $(eval ...)
This is portable between BSD and GNU make.
As of this change, our Makefile appears to work in both BSD and GNU
make, with the caveat that the test-% and testpy-% wildcard rules
don't work on BSD make. That said, this still seems worthwhile because
it lets the buildbots work more consistently across platforms.
Augie Fackler <augie@google.com> [Thu, 21 Apr 2016 10:10:48 -0400] rev 29004
make: do assignment and export in a single statement
This is portable between GNU and BSD make, whereas doing the export on
its own line confuses BSD make.
Augie Fackler <augie@google.com> [Thu, 21 Apr 2016 10:05:14 -0400] rev 29003
make: alter how we compute compiler flags for setup.py
This is portable between BSD and GNU make. I'm not thrilled with how
it worked out, but it's portable and solves the problem.
Yuya Nishihara <yuya@tcha.org> [Sat, 23 Apr 2016 16:11:05 +0900] rev 29002
revset: unindent "if True" block in sort()
It was there to make the previous patch readable.
Yuya Nishihara <yuya@tcha.org> [Sat, 23 Apr 2016 16:09:30 +0900] rev 29001
revset: make sort() do dumb multi-pass sorting for multiple keys (
issue5218)
Our invert() function was too clever to not take length into account. I could
fix the problem by appending '\xff' as a terminator (opposite to '\0'), but
it turned out to be slower than simple multi-pass sorting.
New implementation is pretty straightforward, which just calls sort() from the
last key. We can do that since Python sort() is guaranteed to be stable. It
doesn't sound nice to call sort() multiple times, but actually it is faster.
That's probably because we have fewer Python codes in hot loop, and can avoid
heavy string and list manipulation.
revset #0: sort(0:10000, 'branch')
0) 0.412753
1) 0.393254
revset #1: sort(0:10000, '-branch')
0) 0.455377
1) 0.389191 85%
revset #2: sort(0:10000, 'date')
0) 0.408082
1) 0.376332 92%
revset #3: sort(0:10000, '-date')
0) 0.406910
1) 0.380498 93%
revset #4: sort(0:10000, 'desc branch user date rev')
0) 0.542996
1) 0.486397 89%
revset #5: sort(0:10000, '-desc -branch -user -date -rev')
0) 0.965032
1) 0.518426 53%
Yuya Nishihara <yuya@tcha.org> [Thu, 24 Mar 2016 22:55:56 +0900] rev 29000
log: fix status template to list copy source per dest (
issue5155)
Before, copied files were assumed as "A" (added) and listed followed by
non-copy added files. This could double entries of a copy if it had "M"
(modified) state.
So, this patch makes the template check if a file is included in copies dict.
This way, entries should never be doubled.
The output of "log -Tstatus -C" does not always agree with "status -C --change"
due to the bug of "status", which is documented in test-status.t. See also
2963d5c9d90b.
Martijn Pieters <mjpieters@fb.com> [Wed, 20 Apr 2016 16:33:13 +0100] rev 28999
graphmod: disable graph styling when HGPLAIN is set (
issue5212)
Produce stable output for tools to rely on by hardcoding all edge styles to
"|". This ensures that any tool parsing the output of hg log -G still gets the
same behaviour as pre-3.8 releases.
Martijn Pieters <mjpieters@fb.com> [Wed, 20 Apr 2016 18:26:29 +0100] rev 28998
graphmod: fix seen state handling for > 2 parents (
issue5174)
When there are more than 2 parents for a given node (in a sparse graph), extra
dummy nodes are inserted to transition the lines more gradually. However, since
the seen state was not updated when yielding the extra nodes, the wrong graph
styles were being applied to the nodes.
timeless <timeless@mozdev.org> [Wed, 20 Apr 2016 21:33:02 +0000] rev 28997
httpclient: reverse accidental damage from
86db5cb55d46
timeless <timeless@mozdev.org> [Thu, 21 Apr 2016 04:30:18 +0000] rev 28996
tests: tolerate http2
You can run tests like this:
run-tests.py -l --extra-config-opt ui.usehttp2=true
And ideally, no tests should fail...
Sean Farley <sean@farley.io> [Sat, 16 Apr 2016 13:02:13 -0700] rev 28995
make: add rule for building an ubuntu ppa
Sean Farley <sean@farley.io> [Sat, 16 Apr 2016 13:01:47 -0700] rev 28994
builddeb: add flag for a source-only deb
This is required for building a ppa for ubuntu which following patches will
use.
Sean Farley <sean@farley.io> [Sat, 16 Apr 2016 17:06:11 -0700] rev 28993
builddeb: create source archive for ubuntu
Sean Farley <sean@farley.io> [Fri, 15 Apr 2016 15:44:00 -0700] rev 28992
builddeb: ignore vcs and build results
This one is a no-brainer. Previously, if you tried to build a deb on ubuntu, it
would try to diff files in the .hg store. These flags prevent that.
Sean Farley <sean@farley.io> [Fri, 15 Apr 2016 14:28:26 -0700] rev 28991
builddeb: copy over .gz and .dsc files
We were forgetting to copy over the signature (if it exists) and the zipped
diff, so let's do that.
Sean Farley <sean@farley.io> [Fri, 15 Apr 2016 14:27:42 -0700] rev 28990
builddeb: ignore errors about find not finding files
The debuild command may output less files than we explicitly list so let's not
error out if none exist.
Sean Farley <sean@farley.io> [Sat, 16 Apr 2016 12:42:53 -0700] rev 28989
builddeb: use the os codename instead of 'unstable'
This fixes a lintian error (and indeed, launchpad rejects it) by using the
distribution's codename (e.g. xenial, trusty, etc).
Sean Farley <sean@farley.io> [Sat, 16 Apr 2016 12:33:21 -0700] rev 28988
builddeb: use sed -i
Notice that there is no space after '-i'. This makes it work on both GNU and
BSD versions of sed.
Sean Farley <sean@farley.io> [Sun, 17 Apr 2016 10:36:40 -0700] rev 28987
dockerdeb: redirect 'cd' in export command to /dev/null
This had the unfortunate side effect of causing the environment to have a
newline due to the fact that some 'cd' outputs the result of the directory
change. So, let's just redirect the meaningless output.
Yuya Nishihara <yuya@tcha.org> [Sat, 26 Mar 2016 18:50:56 +0900] rev 28986
help: avoid using "$n" parameter in revsetalias example
Because parsing "$n" requires a crafted tokenizer, it exists only for backward
compatibility (as documented in revset._tokenizealias.) This patch updates the
examples so that users are encouraged to use symbolic names instead of "$n"s.
I'm going to implement alias expansion in templater, which won't support "$n"
parameters to make my life easier. Templater is more complicated than revset
because tokenizer and parser call each other.
Sean Farley <sean@farley.io> [Sun, 17 Apr 2016 10:39:17 -0700] rev 28985
debian: add missing netbase dependency
Apparently, some machines don't have this service (launchpad builders are one
such example). This adds the correct dependency for test-serve.t.
Sean Farley <sean@farley.io> [Sat, 16 Apr 2016 14:24:25 -0700] rev 28984
debian: add missing zip/unzip dependencies
Sean Farley <sean@farley.io> [Fri, 15 Apr 2016 13:53:23 -0700] rev 28983
debian: add missing python-docutils dependency