Durham Goode <durham@fb.com> [Tue, 05 Feb 2013 14:36:19 -0800] rev 18626
addremove: don't audit the path for paths already in the dirstate
Now that dirstate.walk returns None for paths under symlink directories,
addremove doesn't need to validate each path it sees to look for files
under symlinks.
On a large repository this brings addremove from 6.3 seconds down to 3.65 (42%)
since addremove no longer has to stat every directory of every file to determine
if the file is inside a symlink directory. I put it through our benchmark and
see no perf hit to any other commands.
Durham Goode <durham@fb.com> [Mon, 04 Feb 2013 14:27:15 -0800] rev 18625
dirstate: walk returns None for files that have a symlink in their path
Previously dirstate.walk would return a stat object for files in the dmap
that have a symlink to a directory in their path. Now it will return None
to indicate that they are no longer considered part of the repository. This
currently only affects walks that traverse the entire directory tree (ex:
hg status) and not walks that only list the contents of the dmap (ex: hg diff).
In a situation like this:
mkdir foo && touch foo/a && hg commit -Am "a"
mv foo bar
ln -s bar foo
'hg status' will now show '! foo/a', whereas before it incorrectly considered
'foo/a' to be unchanged.
In addition to making 'hg status' report the correct information, this will
allow callers to dirstate.walk to not have to detect symlinks themselves,
which can be very expensive.
Durham Goode <durham@fb.com> [Tue, 05 Feb 2013 14:24:14 -0800] rev 18624
pathauditor: add check() method
The pathauditor currently throws exceptions when it encounters an invalid
path. This change adds a method to allow people to treat it as a boolean.
This is currently used by scmutil.addremove and in a subsequent patch it
will be used by dirstate.walk
Matt Mackall <mpm@selenic.com> [Sat, 09 Feb 2013 22:54:34 +0000] rev 18623
summary: add missing space for updated active bookmark display
Kevin Bullock <kbullock@ringworld.org> [Fri, 08 Feb 2013 21:47:22 +0000] rev 18622
summary: show active bookmark even if not at current changeset
Before this change, 'hg summary' would not show the active bookmark
unless it pointed to the working directory parent. After this change, it
will show it in parentheses, like so:
parent: 18581:
f0ff45fe6700 tip
summary: simplify handling of active bookmark
branch: default
bookmarks: [crew]
commit: (clean)
update: (current)
Kevin Bullock <kbullock@ringworld.org> [Sun, 27 Jan 2013 11:53:46 -0600] rev 18621
summary: simplify handling of active bookmark
Kevin Bullock <kbullock@ringworld.org> [Fri, 08 Feb 2013 21:32:43 +0000] rev 18620
summary: test that current bookmark isn't shown
This exposes the current behavior in a test. A later change will make
summary show when the active bookmark has moved out from under us.
Kevin Bullock <kbullock@ringworld.org> [Sat, 09 Feb 2013 22:27:13 +0000] rev 18619
merge crew heads
Kevin Bullock <kbullock@ringworld.org> [Sat, 09 Feb 2013 22:25:58 +0000] rev 18618
merge with stable
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Sat, 09 Feb 2013 17:54:01 +0000] rev 18617
outgoing: fix possible filtering crash in outgoing (
issue3814)
If there is no outgoiing changesets but we have filtered revision in outgoing.excluded
We run into a filtering related crash. The excluded revision should not be there
in the first place but discovery need cleanup in default, not stable.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 30 Jan 2013 01:24:04 +0100] rev 18616
test: display used python hash seed
We keep using a random seed for each run, but we "compute" it ourself to be able
to reproduce a failed test run.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Sat, 09 Feb 2013 17:54:01 +0000] rev 18615
outgoing: fix possible filtering crash in outgoing (
issue3814)
If there is no outgoiing changesets but we have filtered revision in outgoing.excluded
We run into a filtering related crash. The excluded revision should not be there
in the first place but discovery need cleanup in default, not stable.
Augie Fackler <raf@durin42.com> [Sat, 09 Feb 2013 15:39:22 -0600] rev 18614
parsedate: understand "now" as a shortcut for the current time
Augie Fackler <raf@durin42.com> [Sat, 09 Feb 2013 15:38:57 -0600] rev 18613
export: clobber files with -o (bc) (
issue3652)
This violated user expectation. Updated the code to clobber files, but
preserve the behavior of appending multiple patches requested in a
single export. Includes tests.
Bryan O'Sullivan <bryano@fb.com> [Sat, 09 Feb 2013 21:24:36 +0000] rev 18612
merge: don't call copies.mergecopies unless we need to
This reduces the amount of time we spend calculating when doing a clean
non-merge update. In a large repo, the time dropped from 10.1 seconds
to 3.4.
Bryan O'Sullivan <bryano@fb.com> [Sat, 09 Feb 2013 21:24:24 +0000] rev 18611
merge: rename p1 to wctx in manifestmerge
This is always a workingctx, and this name is more in line with other
functions in this module.
Na'Tosha Bard <natosha@unity3d.com> [Sat, 09 Feb 2013 16:02:01 +0000] rev 18610
largefiles: fix test and check code
Simon Heimberg <simohe@besonet.ch> [Sat, 03 Aug 2013 16:40:13 +0200] rev 18609
histedit: always abort with same message when working dir is wrong.
Using only one message makes live easier for translators. The clearer
error message was supposed by Augie Fackler.
Simon Heimberg <simohe@besonet.ch> [Sat, 03 Aug 2013 16:37:17 +0200] rev 18608
histedit: report when revisions to edit are not ancestors of working dir
Editing the history only is possible when the working dir is a descendant of
the revisions to edit. When this happens explain it by writing
abort: %s is not an ancestor of working directory
Bryan O'Sullivan <bryano@fb.com> [Sat, 09 Feb 2013 15:59:44 +0000] rev 18607
Merge
Siddharth Agarwal <sid0@fb.com> [Sat, 09 Feb 2013 15:36:00 +0000] rev 18606
manifestmerge: handle abort on local unknown, remote created files
This replaces the _checkunknown call in calculateupdates with a more
performant version. On a repository with over 150,000 files, this speeds up an
update by 0.6-0.8 seconds, which is up to 25%.
This does not introduce any UI changes. There is existing test coverage for
every case, mostly in test-merge*.t.
Siddharth Agarwal <sid0@fb.com> [Fri, 08 Feb 2013 15:23:23 +0000] rev 18605
manifestmerge: pass in branchmerge and force separately
This will be used in an upcoming patch.
Siddharth Agarwal <sid0@fb.com> [Sat, 09 Feb 2013 15:43:02 +0000] rev 18604
manifest: use a size 3 LRU cache to store parsed manifests
Previously, the manifest cache would store the last manifest parsed. We could
run into situations with operations like update where we would try parsing the
manifest for a revision r1, then r2, then r1 again. This increases the cache
size to 3 to avoid that bit of performance fragility.
Siddharth Agarwal <sid0@fb.com> [Sat, 09 Feb 2013 15:41:46 +0000] rev 18603
util: add an LRU cache dict
In certain cases we would like to have a cache of the last N results of a
given computation, where N is small. This will be used in an upcoming patch to
increase the size of the manifest cache from 1 to 3.
Kevin Bullock <kbullock@ringworld.org> [Sat, 09 Feb 2013 13:58:13 +0000] rev 18602
tests: remove last two check-code warnings about killdaemons
Removes the last of the warnings in test-check-code-hg.t introduced in
667063b22a69.
Kevin Bullock <kbullock@ringworld.org> [Sat, 09 Feb 2013 13:35:45 +0000] rev 18601
tests: guard against obsolete markers in the hg repo itself
If obsolete markers appear in the hg repo (because of enabling evolve),
then tests that run hg against the hg repo itself will see warnings like:
obsolete feature not enabled but 4 markers found!
As far as I can tell, this only occurs in test-check-code-hg.t -- in
particular, it will -not- show up on tests that run against test-created
repos, as most of the test suite does.
Na'Tosha Bard <natosha@unity3d.com> [Sat, 09 Feb 2013 15:08:21 +0000] rev 18600
largefiles: make caching largefiles message more explicit
In some cases, caching largefiles may take a long time (if the user has
pulled a lot of new heads). This patch makes it more clear what is happening,
by showing the number of heads we are caching largefiles for.
Na'Tosha Bard <natosha@unity3d.com> [Sat, 09 Feb 2013 15:25:46 +0000] rev 18599
largefiles: document behavior of caching largefiles for new heads
Benoit Boissinot <benoit.boissinot@ens-lyon.org> [Sat, 09 Feb 2013 15:57:04 +0100] rev 18598
check-code: add Makefile target to run check-code
Augie Fackler <raf@durin42.com> [Sat, 09 Feb 2013 07:44:22 -0600] rev 18597
byterange: remove now-unused sys import
Augie Fackler <raf@durin42.com> [Sat, 09 Feb 2013 05:37:36 -0600] rev 18596
test-obsolete.t: migrate to killdaemons from kill `cat pidfile`
Augie Fackler <raf@durin42.com> [Sat, 09 Feb 2013 05:36:19 -0600] rev 18595
test-inotify.t: migrate to killdaemons from kill `cat pidfile`
Augie Fackler <raf@durin42.com> [Sat, 09 Feb 2013 05:35:20 -0600] rev 18594
test-inotify-lookup.t: migrate to killdaemons from kill `cat pidfile`
Augie Fackler <raf@durin42.com> [Sat, 09 Feb 2013 05:34:22 -0600] rev 18593
test-inotify-
issue1556.t: migrate to killdaemons from kill `cat pidfile`
Augie Fackler <raf@durin42.com> [Sat, 09 Feb 2013 05:33:39 -0600] rev 18592
test-inotify-
issue1542.t: migrate to killdaemons from kill `cat pidfile`
Augie Fackler <raf@durin42.com> [Sat, 09 Feb 2013 05:32:00 -0600] rev 18591
test-inotify-
issue1371.t: switch to killdaemons from kill `cat pidfile`
Augie Fackler <raf@durin42.com> [Sat, 09 Feb 2013 05:30:40 -0600] rev 18590
test-inotify-debuginotify.t: migrate to killdaemons from kill `cat pidfile`
Augie Fackler <raf@durin42.com> [Sat, 09 Feb 2013 05:29:10 -0600] rev 18589
test-hgweb-raw.t: use killdaemons instead of kill `cat pidfile`
Augie Fackler <raf@durin42.com> [Sat, 09 Feb 2013 05:26:16 -0600] rev 18588
test-https.t: stop using kill `cat $pidfile`
Augie Fackler <raf@durin42.com> [Sat, 09 Feb 2013 06:07:32 -0600] rev 18587
changelog: hexlify node when throwing a LookupError on a filtered node
The non-hexlified node was leaking all the way out to the web
interface, and wasn't consistent with the behavior for nonexistent
nodes.
Augie Fackler <raf@durin42.com> [Fri, 08 Feb 2013 17:14:12 -0600] rev 18586
byterange: remove old two-arg raise trick
We don't care about the original traceback, and this was frustrating
any efforts to make the code work on Python 3.3.
Benoit Boissinot <benoit.boissinot@ens-lyon.org> [Sat, 09 Feb 2013 12:08:02 +0100] rev 18585
revlog: document v0 format
Kevin Bullock <kbullock@ringworld.org> [Sat, 09 Feb 2013 10:40:26 +0000] rev 18584
merge crew heads
Kevin Bullock <kbullock@ringworld.org> [Sat, 09 Feb 2013 10:36:31 +0000] rev 18583
merge with mpm stable
Benoit Boissinot <benoit.boissinot@ens-lyon.org> [Fri, 08 Feb 2013 23:49:14 +0100] rev 18582
templater: add get() function to access dict element (e.g. extra)
Benoit Boissinot <benoit.boissinot@ens-lyon.org> [Fri, 08 Feb 2013 21:55:46 +0100] rev 18581
templates: export extra as a dict to templates
Currently only useful with the json filter.
Matt Mackall <mpm@selenic.com> [Fri, 08 Feb 2013 23:13:47 +0000] rev 18580
Added signature for changeset
7511d4df752e
Matt Mackall <mpm@selenic.com> [Fri, 08 Feb 2013 23:13:44 +0000] rev 18579
Added tag 2.5.1 for changeset
7511d4df752e
Matt Mackall <mpm@selenic.com> [Fri, 08 Feb 2013 22:58:58 +0000] rev 18578
merge with i18n
Arne Babenhauserheide <bab@draketo.de> [Tue, 05 Feb 2013 22:02:11 +0100] rev 18577
i18n-de: fix duplicated shortcut key b for record (edit and quit)
Use e for edit instead.
Kevin Bullock <kbullock@ringworld.org> [Fri, 08 Feb 2013 22:42:07 +0000] rev 18576
check-code: fix platform-specific error code variance
test-check-code-hg.t uses xargs to invoke check-code.py on every file in
'hg manifest'. The return code from xargs varies between BSD xargs and
GNU xargs: BSD will return 1 if any invocation exits with an error code;
GNU xargs will return 123 in this case. This normalizes the exit code
back to 1.
Kevin Bullock <kbullock@ringworld.org> [Fri, 08 Feb 2013 19:32:56 +0000] rev 18575
check-code: warn to use killdaemons instead of kill `cat PIDFILE`
We have a bunch of tests that still use
kill `cat hg.pid`
or worse,
kill `cat hg.pid`; while kill -0 `cat hg.pid`; sleep 0; done
Cleaning these up to use tests/killdaemons.py is non-trivial, so for now
we just add a warning.
Mads Kiilerich <mads@kiilerich.com> [Fri, 08 Feb 2013 13:08:25 +0100] rev 18574
largefiles: docstrings for verify methods
Mads Kiilerich <mads@kiilerich.com> [Fri, 08 Feb 2013 13:00:08 +0100] rev 18573
largefiles: fold oddly named _verify into remotestore.exists
Augie Fackler <raf@durin42.com> [Fri, 08 Feb 2013 07:09:48 -0600] rev 18572
git convert: some versions of git use fatal: instead of error:
I saw this behavior with git 1.7.12 on my Mac.
Ross Lagerwall <rosslagerwall@gmail.com> [Fri, 08 Feb 2013 07:57:32 -0600] rev 18571
test-convert-git: stabilize corruption of test git repo
This error would show up only intermittently since the
test depended on the order of the directories returned by os.walk.
The damage repository test would delete the first object file it came
across. However, the order of the directory listing is arbitrary (it
seems to depend on the filesystem). This meant that sometimes a commit
object was deleted, sometimes a blob object and sometimes a tree
object.
So, fix by hardcoding which object to delete. Delete a commit object,
a blob object and a tree object in three separate tests.
Ross Lagerwall <rosslagerwall@gmail.com> [Fri, 08 Feb 2013 08:02:57 -0600] rev 18570
convert/git: catch errors from modern git-ls-remote (
issue3428)
Since git v1.7.8.2-327-g926f1dd (the change was first released in git
1.7.10), git does not return non-zero when "git ls-remote --tags ..."
is run and the repository is damaged. This causes the "damaged
repository with missing commit" test in test-convert-git.t to
unexpectedly succeed.
Fix by aborting if git outputs any lines beginning with "error:",
which required adding some subprocess use in convert/git.py.
Kevin Bullock <kbullock@ringworld.org> [Fri, 08 Feb 2013 14:26:00 +0000] rev 18569
merge with stable
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 06 Feb 2013 07:55:29 +0000] rev 18568
incoming: fix incoming when a local head is remotely filtered (
issue3805)
In its current state discovery may return (remotely) filtered elements
in "common". This has usually no impact as "missing" is kept clear of
filtered elements. However when the "remote" repo is a local repo (disk
accessible, and directly created in memory) the incoming code takes a
shortcut and directly uses the "remote" repo to generate the incoming
output. When some common elements are filtered this led to a crash. We
now ensure we use an unfiltered repository to generate the incoming
output. This does not change the behavior as missing is clear of
filtered revision.
Now that we have proper low level filtering, incoming code needs a
deeper cleanup but it is already planned.
Siddharth Agarwal <sid0@fb.com> [Thu, 17 Jan 2013 23:46:08 -0800] rev 18567
dirstate: move pure python dirstate packing to pure/parsers.py
Durham Goode <durham@fb.com> [Tue, 05 Feb 2013 16:22:53 -0800] rev 18566
bookmark: don't allow integers as bookmark/branch/tag names
Bookmarks/branches/tags shouldn't be allowed to be integers because that
overlaps with revision numbers. Right now if a user created one they can't
use it anyway because the revision numbers take precedence.
The check only happens when creating a new bookmark/etc from a command so it
shouldn't affect existing bookmarks/branches/tags or importing branches from
git.
This fix was prompted by us having a user create a bookmark named "404" then
accidentally checkout a very old version of our repository.
Simon Heimberg <simohe@besonet.ch> [Wed, 24 Oct 2012 23:09:31 +0200] rev 18565
run-tests: do not fail on empty tsttest file
Initialize n for not failing on empty tsttest files.
Matt Mackall <mpm@selenic.com> [Wed, 06 Feb 2013 14:43:29 -0600] rev 18564
merge with stable
Kevin Bullock <kbullock@ringworld.org> [Tue, 05 Feb 2013 11:31:43 -0600] rev 18563
hgweb: make 'summary' work with hidden changesets (
issue3810)
Since the 'summary' view used by e.g. gitweb and monoblue shows both a
changelog and a bookmarks list, the same changes are needed here as were
made to the 'changelog' and 'bookmarks' web commands (
56ca4443a343 and
886936ecc21b, respectively).
Mads Kiilerich <madski@unity3d.com> [Wed, 06 Feb 2013 13:22:01 +0100] rev 18562
merge with stable
Andrew Shadura <bugzilla@tut.by> [Tue, 05 Feb 2013 12:58:21 +0100] rev 18561
hgk: support the old way of getting the current Ttk theme (
issue3808)
It seems like the API has changed somewhere around 8.5.7, so the preferred way
of getting the current theme is now [ttk::style theme use], while the
deprecated (but still working) is $::ttk::currentTheme.
Durham Goode <durham@fb.com> [Mon, 04 Feb 2013 14:10:09 -0800] rev 18560
addremove: don't perform m.exact/rel until needed
Moves the m.exact and m.rel calls within the conditionals they are used in.
On a large repo this brings addremove from 7.1 seconds down to 6.3 (13%).
Durham Goode <durham@fb.com> [Mon, 04 Feb 2013 14:06:20 -0800] rev 18559
addremove: don't call lexists, isdir, and islink
The dirstate walk results contain the stat information for each path, so we
don't need to query it again. On a large repo this makes addremove go from
8.35 seconds to 7.1 (15%).
Durham Goode <durham@fb.com> [Mon, 04 Feb 2013 14:01:40 -0800] rev 18558
addremove: only query dirstate once per path
Previously the addremove code queried the dirstate 4 times per path. Now it
only does so once. On a large repo this brings addremove from 9.5 seconds
to 8.35 seconds (12%).
Mads Kiilerich <madski@unity3d.com> [Mon, 04 Feb 2013 23:48:34 +0100] rev 18557
tests: fix windows test failure with largefiles
Mads Kiilerich <madski@unity3d.com> [Mon, 04 Feb 2013 23:53:37 +0100] rev 18556
merge with stable
Mads Kiilerich <madski@unity3d.com> [Mon, 04 Feb 2013 23:41:11 +0100] rev 18555
tests: fix windows test failure in test-subrepo.t
Matt Mackall <mpm@selenic.com> [Mon, 04 Feb 2013 16:39:02 -0600] rev 18554
merge with stable
Mads Kiilerich <madski@unity3d.com> [Mon, 04 Feb 2013 23:26:44 +0100] rev 18553
largefiles: don't crash when trying to find default dest for url without path
b32e55e6c3c7 introduced a crash when cloning a url without path - where
util.url().path would be None.
This None will now be handled as ''. clone will thus abort with 'repository /
not found' as before.
Mads Kiilerich <madski@unity3d.com> [Mon, 04 Feb 2013 23:25:25 +0100] rev 18552
hgweb.cgi: fix internal WSGI emulation (
issue3804)
The internal WSGI emulation in wsgicgi.py was not fully WSGI compliant and
assumed that all responses sent a body. With
3fbdbeab38cc that caused a real
bug when using hgweb.cgi.
wsgicgi.py will now make sure headers always are sent, using the pattern from
PEP 333 and similar to how it is done in
c007e5c54b16.
Matt Mackall <mpm@selenic.com> [Sat, 02 Feb 2013 16:15:22 -0600] rev 18551
bdiff: simplify overflow checks
Rather than check that each delta start, end, and length is within 32
bits, we simply check that the input strings are under 4GB.
Bryan O'Sullivan <bryano@fb.com> [Mon, 04 Feb 2013 11:42:10 -0800] rev 18550
Merge crew-stable into crew
Siddharth Agarwal <sid0@fb.com> [Sun, 03 Feb 2013 14:26:39 -0800] rev 18549
rebase: derive node from target rev (
issue3802)
dest.rev() is the same as target when a new rebase is run, but dest
isn't set when rebase --continue is run. Bug introduced in
2a1fac3650a5,
which fixed
issue3685.
Mads Kiilerich <madski@unity3d.com> [Mon, 04 Feb 2013 02:46:53 +0100] rev 18548
profiling: introduce limit configuration option
The number of output lines was hardcoded to 30.
There was a 'nested' configuration options that controlled something else
related to counting the number of output lines.
This introduces the profiling.limit configuration option for controlling the
number of profiling output to show.
Mads Kiilerich <madski@unity3d.com> [Thu, 24 Jan 2013 23:57:44 +0100] rev 18547
largefiles: make verify --lfa and --lfc work without --large
The slightly obscure --lfa and --lfc only worked as modifiers to --large and
could be combined. The documentation was however not clear what they did.
Instead they now imply --large and the description is updated.
Mads Kiilerich <madski@unity3d.com> [Mon, 04 Feb 2013 02:46:53 +0100] rev 18546
largefiles: verify status should be written as status, not as write
Make 'hg verify --large -q' quiet when no errors.
Mads Kiilerich <madski@unity3d.com> [Mon, 04 Feb 2013 02:46:53 +0100] rev 18545
largefiles: report localstore errors with single line warnings messages
The actual hash is also not relevant to report.
This makes verify output with multiple failures easier to process.
Mads Kiilerich <madski@unity3d.com> [Mon, 04 Feb 2013 02:46:53 +0100] rev 18544
merge: inline act()
The act function had become very trivial and mainly shuffled arguments around
and made it harder to see what really was going on.
Mads Kiilerich <madski@unity3d.com> [Mon, 04 Feb 2013 02:46:53 +0100] rev 18543
merge: don't indent "local changed %s which remote deleted" prompt
It was usually not shown in a context where indentation helped readability and
it was inconsistent with other prompts.
Mads Kiilerich <madski@unity3d.com> [Mon, 04 Feb 2013 02:46:38 +0100] rev 18542
merge: backout manifest sorting and workarounds for cost of it
Backout
8a811fa9a9c0 and
760c0d67ce5e which no longer are needed.
Mads Kiilerich <madski@unity3d.com> [Thu, 24 Jan 2013 23:57:44 +0100] rev 18541
merge: delay debug messages for merge actions
Show messages at a point where the actions have been sorted, thus preparing for
backout of
760c0d67ce5e.
This makes manifestmerge more of a silent operation, just like 'copies' is.
Indent 'preserving' messages to make them subordinate to the action logging so
they fit in the new context. (The 'preserving' messages are quite redundant and
could also be removed completely.)
Mads Kiilerich <madski@unity3d.com> [Thu, 24 Jan 2013 23:57:44 +0100] rev 18540
merge: make all action tuples have the same length - keep args as tuple
Mads Kiilerich <madski@unity3d.com> [Thu, 24 Jan 2013 23:57:44 +0100] rev 18539
merge: delay prompts a bit and show them in (extra) sorted order
Preparing for backout of
760c0d67ce5e.
The number of prompts will for all relevant cases be significantly smaller than
the total number of files in the manifests. We can thus afford to sort the
prompts more than we can afford to sort the manifests.
Antonio Zanardo <zanardo@gmail.com> [Sat, 02 Feb 2013 15:37:17 -0200] rev 18538
commit: show active bookmark in commit editor helper text
If there is an active bookmark while committing, the bookmark name
will be visible inside the commit message helper, below the branch
name.
This should make easier for the user to detect a mistaken commit
parent, while working for example with a bookmark centric workflow
like topic branches.
The active bookmark is checked to be in the working directory, as
pointed by Kevin Bullock, because otherwise committing would not
advance it. In other words, this would not show the active
bookmark name if the user changed the working tree parents with
'hg debugsetparents', for example.
Paul Cavallaro <ptc@fb.com> [Wed, 23 Jan 2013 09:51:45 -0800] rev 18537
dates: support 'today' and 'yesterday' in parsedate (
issue3764)
Adding support to parsedate in util module to understand the more idiomatic
dates 'today' and 'yesterday'.
Added unified tests and docstring tests for added functionality.
Paul Cavallaro <ptc@fb.com> [Mon, 28 Jan 2013 12:19:21 -0800] rev 18536
revset: change ancestor to accept 0 or more arguments (
issue3750)
Change ancestor to accept 0 or more arguments. The greatest common ancestor of a
single changeset is that changeset. If passed no arguments, the empty list is
returned.
Matt Mackall <mpm@selenic.com> [Fri, 01 Feb 2013 15:48:33 -0600] rev 18535
merge with stable
Matt Mackall <mpm@selenic.com> [Fri, 01 Feb 2013 15:32:05 -0600] rev 18534
Added signature for changeset
a6088c05e43a
Matt Mackall <mpm@selenic.com> [Fri, 01 Feb 2013 15:31:57 -0600] rev 18533
Added tag 2.5 for changeset
a6088c05e43a
Matt Mackall <mpm@selenic.com> [Fri, 01 Feb 2013 15:21:47 -0600] rev 18532
test-obsolete: now gets 404 for hidden change
Matt Mackall <mpm@selenic.com> [Fri, 01 Feb 2013 15:23:37 -0600] rev 18531
merge with i18n
Wagner Bruna <wbruna@softwareexpress.com.br> [Fri, 01 Feb 2013 17:59:56 -0200] rev 18530
i18n-pt_BR: added message from crew
0324a1d88a53
Wagner Bruna <wbruna@softwareexpress.com.br> [Fri, 01 Feb 2013 11:01:39 -0200] rev 18529
i18n-pt_BR: added message from crew
9fbeb61b8ad2
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Thu, 31 Jan 2013 23:01:31 +0900] rev 18528
i18n-ja: synchronized with
2a1fac3650a5
Wagner Bruna <wbruna@yahoo.com> [Thu, 31 Jan 2013 09:58:36 -0200] rev 18527
i18n-pt_BR: synchronized with
68eecbaf1bd3
Thomas Arendsen Hein <thomas@intevation.de> [Fri, 01 Feb 2013 20:43:35 +0100] rev 18526
hgweb: urlescape all urls, HTML escape repo/tag/branch/... names
Without this, repository paths or names containing e.g. & characters or html
tags yielded strange results, possibly allowing cross-site scripting attacks.
Matt Mackall <mpm@selenic.com> [Fri, 01 Feb 2013 15:14:05 -0600] rev 18525
merge with crew
Kevin Bullock <kbullock@ringworld.org> [Fri, 01 Feb 2013 10:12:41 -0600] rev 18524
hgweb: rename 'currentbaseline' template keyword to 'basenode'
Shorter and clearer. This keyword represents the node we're currently
diffing against.
Kevin Bullock <kbullock@ringworld.org> [Fri, 01 Feb 2013 09:58:25 -0600] rev 18523
hgweb: rename 'changesetbaseline' template to 'difffrom'
More accurately reflects what it will be used for, and is also shorter.
This template is used to change which rev the current rev is diff'd
against. For example, if you're at '/rev/P1:REV', this would link to a
path like '/rev/P2:REV'.
Example usage in a template:
{parent%difffrom}
Pierre-Yves David <pierre-yves.david@logilab.fr> [Thu, 31 Jan 2013 19:56:55 +0100] rev 18522
hgweb: add a `web.view` to control filtering
This options add a new `web.view` to control filter level of hgweb.
This option have two purposes:
1) Allow fall back to unfiltered version in case a yet undetected by critical
bug is found in filtering after 2.5 release
2) People use hgweb as a local repoviewer. When they have secret changesets,
they wants to use "visible" filter not "served"
(modified by mpm, documentation deferred)
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Thu, 31 Jan 2013 22:30:52 +0100] rev 18521
hgweb: returns 404 for unknow revision instead of 500
I noticed that access to filtered revision returned HTTP 500 code (internal
server error). Investigation shown that it was the case for unknown revision
too. That wrong and we now properly return a 404 for revision not found.
Pierre-Yves David <pierre-yves.david@logilab.fr> [Thu, 31 Jan 2013 01:44:29 +0100] rev 18520
subrepo: allows to drop courtesy phase sync (
issue3781)
Publishing server may contains draft changeset when they are created locally. As
publishing is the default, it is actually fairly common. Because of this
"inconsistency" phases synchronization may be done even to publishing server.
This may cause severe issues for subrepo. It is possible to reference read-only
repository as subrepo. Push in a super repo recursively push subrepo. Those
pushes to potential read only repo are not optional, they are "suffered" not
"choosed". This does not break because as the repo is untouched the push is
supposed to be empty. If the reference repo locally contains draft changesets, a
courtesy push is triggered to turn them public. As the repo is read only, the
push fails (after possible prompt asking for credential). Failure of the
sub-push aborts the whole subrepo push. This force the user to define a custom
default-push for such subrepo.
This changeset introduce a prevention of this error client side by skipping the
courtesy phase synchronisation in problematic situation. The phases
synchronisation is skipped when four conditions are gathered:
- this is a subrepo push, (normal push to read-only repo)
- and remote support phase
- and remote is publishing
- and no changesets was pushed (if we pushed changesets, repo is not read only)
The internal config option used in this version is not definitive. It is here to
demonstrate a working fix to the issue.
In the future we probably wants to track subrepo changes and avoid pushing to
untouched one. That will prevent any attempt to push to read-only or unreachable
subrepo.
Another fix to prevent courtesy push from older clients to push to newer server
is also still needed.
Mads Kiilerich <madski@unity3d.com> [Thu, 31 Jan 2013 19:13:13 +0100] rev 18519
tests: fix toctou race in tinyproxy.py (
issue3795)
test-http-proxy.t sometimes failed with:
File ".../tests/tinyproxy.py", line 110, in _read_write
data = i.recv(8192)
error: (104, 'Connection reset by peer')
This might have started showing up with
a9fd11ffa13f ... but it has apparently
also been seen before. I don't see anything in
a9fd11ffa13f that can explain
it. It seems to be a race in test, in the tinyproxy helper:
Tinyproxy found an incoming socket using select(). It would break the loop if
an error had been detected on the socket, but there was no error and it tried
to recv() from the socket. That failed - apparently because it had been reset
after select().
Errors in the recv() will now be caught and will break the loop like errors
detected by select() would.
(send() could also fail in a similar way ... but using the same solution there
and losing data we have read doesn't feel right.)
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Fri, 01 Feb 2013 02:01:11 +0100] rev 18518
rebase: mention --rev in the help
This changeset adds a small mention of it in the help to prevent
confusion. This small addition references online help that is easier to
update and improve at release time.
Following Wagner Bruna's advice, this is added in a plain new paragraph
to not invalidate current translation this close to the release.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Fri, 01 Feb 2013 05:40:06 +0100] rev 18517
hgweb: remove baseline info from paper template
The user interface introduced in
d605a82cf189 is not considered ready
for prime time yet. The internal code stays in place for custom template
usage. The feature is ultimately wanted and will be re-enabled soon. The
current issue is only related to the visual of the current interface.
Kevin Bullock <kbullock@ringworld.org> [Thu, 31 Jan 2013 20:01:26 -0600] rev 18516
rebase: mention phases in the help
Mention that Mercurial helps you not do what you've just been warned not
to do, with a reference to the 'phases' help topic (not the 'phase'
command help).
Thanks to Pierre-Yves David <pierre-yves.david@ens-lyon.org> for
motivating this change and Wagner Bruna
<wagner.bruna+mercurial@gmail.com> for advising on how to do it in an
i18n-friendly way.
Angel Ezquerra <angel.ezquerra@gmail.com> [Thu, 31 Jan 2013 22:36:22 +0100] rev 18515
hgwebdir: use web.prefix when creating url breadcrumbs (
issue3790)
The web.prefix setting was being ignored when creating the index URL
breadcrumbs.
We only need to fix hgwebdir and not hgweb because hgweb gets the complete URL
request, including the prefix, while hgwebdir gets a "subdir" which does not
include the prefix.
This fix is slightly different of what was suggested on the bug tracker. In
there it was suggested to hide the prefix itself from the breadcrumb. I think
that would be a better solution, but it would require changing all the index
templates and passing the prefix to the template engine, which may be too big
a change for stable during the freeze. For now this fixes the problem, and the
fix could be improved during the next cycle.
Siddharth Agarwal <sid0@fb.com> [Wed, 30 Jan 2013 16:08:32 -0800] rev 18514
rebase: delete divergent bookmarks on destination (
issue3685)
Similar to merge, divergent bookmarks are only deleted when the bookmark is on
the destination parent.
Siddharth Agarwal <sid0@fb.com> [Wed, 30 Jan 2013 15:35:00 -0800] rev 18513
bookmarks: factor out delete divergent code
Deleting divergent bookmarks is more generally useful than just in
bookmarks.update.
Siddharth Agarwal <sid0@fb.com> [Wed, 30 Jan 2013 17:49:54 -0800] rev 18512
rebase: remove bogus nullmerge check in updatebookmarks
nstate[v] is a node, not an int, and the nullmerge check was done while
building nstate anyway.
Matt Harbison <matt_harbison@yahoo.com> [Tue, 27 Nov 2012 21:31:59 -0500] rev 18511
share: backout
fd903f89e42b, except the test
Locating the share source when no default path is available is now handled in
subrepo._abssource(), so unconditionally setting a default path (and the
associated problems) can be avoided.
The test change reflects the fact that a default path is no longer set on the
resulting share.
Matt Harbison <matt_harbison@yahoo.com> [Tue, 27 Nov 2012 20:56:27 -0500] rev 18510
subrepo: use sharepath if available when locating the source repo
This is an alternative fix for
issue3518, enabling sharing of repositories with
subrepos, without unconditionally setting the default path in the resulting
repo's hgrc file. Better test coverage is added here, but won't prove this code
is working until
fd903f89e42b is backed out.
The problem with the original fix is, if a default path is not available to be
copied over from the share source, the default path on the resulting repo is set
to the source location. Since that's where the actual repository is stored, the
path is essentially self-referential, so push, pull, incoming and outgoing
effectively operate on itself. While incoming and outgoing make it look like
nothing was changed, push currently hangs (see
issue3657). In this case where
there is not a real default path, these operations should abort with
"default(-push) not found", like the source repo would. Note this problem with
the original fix affected repos without subrepos too.
Pierre-Yves David <pierre-yves.david@logilab.fr> [Tue, 22 Jan 2013 14:33:17 +0100] rev 18509
test-histedit: add tests for dropping head changeset
I got bug report from user in this specific case. I was unable to reproduce in
test situation. Testing this situation is still valuable.
Mads Kiilerich <mads@kiilerich.com> [Thu, 31 Jan 2013 02:39:55 +0100] rev 18508
tests: use `pwd` instead of ${PWD} in test-convert-git.t - because of Solaris
Augie Fackler <raf@durin42.com> [Wed, 30 Jan 2013 10:57:28 -0500] rev 18507
histedit: prevent parent guessed via --outgoing from being a revset (
issue3770)
If the binary hash of the parent node guessed via --outgoing happened
to contain a special revset character (":" was specified in the bug),
the revset parser would abort. Hexlifying the node before passing it
to the revsingle call should fix that.