Pierre-Yves David <pierre-yves.david@logilab.fr> [Thu, 18 Oct 2012 17:54:34 +0200] rev 17812
amend: do a bare kill of temporary changeset
Before this changeset the temporary changeset created by amend was made a
precursors on the amend result. This add unnecessary complexity to the
obsolescence graph. This temporary commit will probably disappear in the future.
It is an unwanted byproduct of amend that nobody cares about.
Pierre-Yves David <pierre-yves.david@logilab.fr> [Thu, 18 Oct 2012 22:12:15 +0200] rev 17811
amend: add noise in extra to avoid creating obsolescence cycle (
issue3664)
Obsolescence cycle are bad and should be avoided as much as possible. The
current amend implemented touch changeset meta data as few as possible. This
make is easy for amend to result in the same node than a precursors. We add some
deterministic noise in extra to avoid this. In practice, the hex of the amended
changeset is stored in 'amend_source' extra key.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Thu, 18 Oct 2012 22:04:49 +0200] rev 17810
changelog: extract description cleaning logic in a dedicated function
The amend logic have use for it.
Adrian Buehlmann <adrian@cadifra.com> [Thu, 18 Oct 2012 22:35:28 +0200] rev 17809
bookmarks: replace code-redundant comment with something more useful
Adrian Buehlmann <adrian@cadifra.com> [Thu, 18 Oct 2012 22:33:58 +0200] rev 17808
bookmarks: remove another uneeded return
Kevin Bullock <kbullock@ringworld.org> [Sat, 05 May 2012 15:30:54 -0500] rev 17807
update: remove unnecessary argument check
Idan Kamara <idankk86@gmail.com> [Sun, 14 Oct 2012 20:27:55 +0200] rev 17806
grep: colorize all fields
Colors were picked in accordance to GNU grep.
Idan Kamara <idankk86@gmail.com> [Sun, 14 Oct 2012 20:40:23 +0200] rev 17805
test-grep: add a test for -l
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Mon, 08 Oct 2012 15:54:53 +0200] rev 17804
clfilter: remove use of xrange in revset
For changelog level filtering to take effect it need to be used for any
iteration. Some remaining use of `xrange` in revset code is replace by proper
use of `changelog.revs` or direct iteration over changelog.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Mon, 08 Oct 2012 15:41:58 +0200] rev 17803
largefile: use `self` in repo method instead of `repo`
Most method added (or overwritten) to repo by largefile works on `repo`
instead of `self`. This currently works without trouble because `self` and
`repo` are likely the same. However this is semantically dubious and this may
cause issue for filtering. `self` may be proxy object different from the `repo`
one.
This changeset fix that and use `self` when applicable.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Tue, 16 Oct 2012 23:12:07 +0200] rev 17802
test: use proper subclassing in `test-
issue2137.t`.
To use changelog filtering on the repository, we plan to use "proxy" object that
perfectly mock a repository but with a filtered changelog.
Altering the `repo.commit` function using `extensions.wrapfunction` will prevent
the logic to propagate to the proxy class by the mean of inheritance.
We changes the extension to use subclassing as expectable.
Mads Kiilerich <mads@kiilerich.com> [Thu, 18 Oct 2012 00:44:32 +0200] rev 17801
run-tests: remove dead code for supporting old test scripts
Mads Kiilerich <mads@kiilerich.com> [Thu, 18 Oct 2012 00:33:29 +0200] rev 17800
run-tests: handle windows crlf in .py tests again
Before
af7c6bc48d8d all crlf occurrences in test output on Windows were simply
changed to lf. In
af7c6bc48d8d it was replaced by more clever handling in the
.t test runner ... but the .py runner was forgotten and many .py tests were
failing on Windows.
The crlf/lf replacement is now reintroduced in the py test runner.
Mads Kiilerich <mads@kiilerich.com> [Thu, 18 Oct 2012 00:33:26 +0200] rev 17799
test-run-tests.t: fix wrong test case for cr handling on Windows
An incorrect and failing test case was introduced in
af7c6bc48d8d.
Shun-ichi GOTO <shunichi.goto@gmail.com> [Wed, 17 Oct 2012 18:09:00 +0900] rev 17798
win32mbcs: add reversing wrapper for some unicode-incompatible functions.
This changeset fix the problem to use win32mbcs with mercurial 2.3 or
later.
The problem is brought by side effect of modification of
encoding.upper() (changeset 17236:
9fb8312dbdbd) because upper() does
not accept unicode string argument. So wrapped util.normcase() which
uses upper() will fail. In other words, upper() and lower() are
unicode incompatible.
To fix this issue, this changeset adds new wrapper for reversed
conversion (unicode to str) for lower() and upper() to use them
safely.
Huayang <huayang@fb.com> [Fri, 05 Oct 2012 16:27:34 -0700] rev 17797
convert: normalize paths in filemaps (
issue3612)
convert doesn't normalise double slashes in paths. Path normalization
is applied when a path is loaded into filemap and when a file lookup
request is issued to filemap.
Matt Mackall <mpm@selenic.com> [Wed, 17 Oct 2012 15:37:25 -0500] rev 17796
repair: use node to track post-strip bookmark target
Revision numbers are unstable when non-consecutive revs are stripped.
Christian Ebert <blacktrash@gmx.net> [Wed, 17 Oct 2012 17:32:01 +0200] rev 17795
keyword: move commands.inferrepo for code maintenance
Matt Harbison <matt_harbison@yahoo.com> [Mon, 08 Oct 2012 22:43:54 -0400] rev 17794
largefiles: update lfutil.findoutgoing() discovery method
It looks like this method missed the updates in
30273f0c776b (which changed the
preferred discovery method from findcommonincoming() to findcommonoutgoing()),
and
cd956049fc14 (which rolls up the outgoing lists into a single object).
Wagner Bruna <wbruna@softwareexpress.com.br> [Mon, 15 Oct 2012 18:37:34 -0300] rev 17793
wireproto: fix pushkey hook failure and output on remote http repo
Over http, a failed pushkey hook simply crashed the server, and
successful hook output was never sent to the client.
Sean Farley <sean.michael.farley@gmail.com> [Tue, 16 Oct 2012 17:09:50 -0500] rev 17792
phases: add a phase and phasestr method to file context
Kevin Bullock <kbullock@ringworld.org> [Wed, 17 Oct 2012 12:15:23 -0500] rev 17791
bookmarks: simplify code
Remove some unnecessary return statements and collect some checks into
one place. As requested by Thomas Arendsen Hein <thomas@intevation.de>.
David Soria Parra <dsp@php.net> [Wed, 17 Oct 2012 11:50:47 +0200] rev 17790
bookmarks: abort when incompatible options are used (
issue3663)
Options like --delete and --rename are incompatible with each
other. In this case we abort. We do not abort if the result is a nullop.
Nullops are: '--delete --inactive', '--delete --force'.
David Soria Parra <dsp@php.net> [Wed, 17 Oct 2012 08:44:49 +0200] rev 17789
bookmarks: check bookmark format during rename (
issue3662)
Sean Farley <sean.michael.farley@gmail.com> [Tue, 16 Oct 2012 13:35:58 -0500] rev 17788
color: add additional changeset.phase label to log.changeset and log.parent
This allows the user to set different colors for each phase, e.g.
[color]
changeset.public = blue
changeset.draft = green
changeset.secret = red
In addition, this doesn't affect current configuration for custom log.changeset
colors, but rather adds the option for users that want to visually see which
changesets are amendable.
Augie Fackler <raf@durin42.com> [Tue, 16 Oct 2012 18:05:33 -0500] rev 17787
http2: make it possible to connect w/o ssl on port 443
The fix is just to make sure we always pass use_ssl=False to non-SSL
connections.
Pierre-Yves David <pierre-yves.david@logilab.fr> [Mon, 15 Oct 2012 17:43:05 +0200] rev 17786
branchpoint: remove useless intermediate set creation
We don't need to compute the set of all branchpoints. We can just check the
number of children that element of subset have. The extra work did not seems to
had particular performance impact but the code is simpler this way.
Pierre-Yves David <pierre-yves.david@logilab.fr> [Mon, 15 Oct 2012 17:42:40 +0200] rev 17785
clfilter: use changelog to iterate over the repo in branchpoint
Otherwise filtered changesets may cause false positives in `branchpoint()`.
Adrian Buehlmann <adrian@cadifra.com> [Fri, 12 Oct 2012 10:52:33 +0200] rev 17784
store: fncache may contain non-existent entries (fixes
b9a56b816ff2)
Adrian Buehlmann <adrian@cadifra.com> [Fri, 12 Oct 2012 10:52:32 +0200] rev 17783
store: add new _exists helper function on fncachestore
Adrian Buehlmann <adrian@cadifra.com> [Fri, 12 Oct 2012 10:40:09 +0200] rev 17782
store: move __contains__() implementation from class fncache into fncachestore
This restores the previous semantics of fncache.__contains__().
(a followup to
b9a56b816ff2)
Adrian Buehlmann <adrian@cadifra.com> [Fri, 12 Oct 2012 10:12:26 +0200] rev 17781
test-log: fix / vs \ issues on Windows introduced with
6d218e47cf9b
test-log.t fails on Windows with
--- c:\Users\buildbot\w2k8\Windows_2008_R2_hg_tests\build\tests\test-log.t
+++ c:\Users\buildbot\w2k8\Windows_2008_R2_hg_tests\build\tests\test-log.t.err
@@ -1225,12 +1225,12 @@
$ echo 1 > d5.d/f1
$ echo 1 > .d6/f1
$ hg add .
- adding .d6/f1
- adding D2/f1
- adding D3.i/f1
- adding d1/f1
- adding d4.hg/f1
- adding d5.d/f1
+ adding .d6\f1
+ adding D2\f1
+ adding D3.i\f1
+ adding d1\f1
+ adding d4.hg\f1
+ adding d5.d\f1
$ hg commit -m "a bunch of weird directories"
$ hg log -l1 d1/f1 | grep changeset
changeset: 0:
65624cd9070a
Adrian Buehlmann <adrian@cadifra.com> [Fri, 12 Oct 2012 19:43:24 +0200] rev 17780
perf: simply use repo.store for perffncache* commands
This makes sure that .hg/requires is observed and the correct kind of store
object is created. Otherwise we might mutilate our test repos when experimenting
with new repo formats.
Mads Kiilerich <mads@kiilerich.com> [Sun, 14 Oct 2012 18:30:47 +0200] rev 17779
test-subrepo-recursion.t: re-introduce glob to handle \ slashes on Windows
Regression was introduced in
6047947afb6b.
Resolved by using the fine line noise '\r (no-eol) (glob) (esc)'.
Mads Kiilerich <mads@kiilerich.com> [Sun, 14 Oct 2012 18:30:42 +0200] rev 17778
run-tests: make it possible to combine (esc) with (glob) and (re)
This makes it possible to combine the annotations ... if done in the right
order.
Mads Kiilerich <mads@kiilerich.com> [Mon, 15 Oct 2012 02:33:12 +0200] rev 17777
run-tests: alternative way of handling \r on Windows
After
f71d60da58fb all \r was stripped from output on Windows, and the places
where a \r explicitly was expected it was accepted that it was missing. Ugly
hack.
Instead we now accept that an extra \r might appear at the end of lines on
Windows. That is more to the point and less ugly.
Pierre-Yves David <pierre-yves.david@logilab.fr> [Tue, 16 Oct 2012 15:39:12 +0200] rev 17776
obsolete: flip `obstore.successors` and `obsolete.precursors`
People were confused by the fact `obstore.precursors` contained marker allowing
to find "precursors" and vice-versa.
This changeset changes their meaning to:
- precursors[x] -> set(markers on precursors edges of x)
- successors[x] -> set(markers on successors edges of x)
Some documentation is added to clarify the situation.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Sun, 14 Oct 2012 23:33:10 +0200] rev 17775
obsolete: add example of marker usage in the documentation
Recent discussion with Augie Fackler pointed the lack of such example in the
documentation.
Pierre-Yves David <pierre-yves.david@logilab.fr> [Mon, 15 Oct 2012 00:12:06 +0200] rev 17774
obsolete: cheap detection of nullid as successors
Nullid as successors create multiple issues:
- Nullid revnum is -1, confusing algorithm that use revnum unless you add
special handling in all of them.
- Nullid confuses "divergent" changeset detection and resolution. As you can't
add any successors to Nullid without being in even more troubles
Fortunately, there is no good reason to use nullid as a successor. The only
sensible meaning of "succeed by nullid" is "dropped" and this meaning is already
covered by obsolescence marker with empty successors set.
However, letting some nullid successors to slip in may cause terrible damage in
such algorithm difficult to debug. So I prefer to perform and clear detection of
of such pathological changeset. We could be much smarter by cleaning up nullid
successors on the fly but it would be much for expensive. As core Mercurial does
not create any such changeset, I think it is fine to just abort when suspicious
situation is detected.
Earlier experimental version created such changesets, so there are some out
there. The evolve extension added the necessary logic to clean up its mess.
Siddharth Agarwal <sid0@fb.com> [Tue, 16 Oct 2012 11:43:15 -0700] rev 17773
commands: don't infer repo for commands like update (
issue2748)
Maintain a whitelist of commands to infer the repo for instead. The whitelist
contains those commands that take file(s) in the working dir as arguments.
Siddharth Agarwal <sid0@fb.com> [Mon, 15 Oct 2012 09:43:34 -0700] rev 17772
hgweb: make the escape filter remove null characters (
issue2567)
Pierre-Yves David <pierre-yves.david@logilab.fr> [Tue, 16 Oct 2012 16:56:14 +0200] rev 17771
histedit: create obsolescence markers in deterministic order
I arbitrary use the revnum of the precursor because it sound a right order.
David M. Carr <david@carrclan.us> [Mon, 15 Oct 2012 23:54:54 -0400] rev 17770
bookmarks: when @ bookmark diverges, don't double the @ sign (BC)
This changeset treats the bookmark "@" as a special case for the naming of
divergent bookmarks, as per the tables below. For the <no alias> case, the
actual suffix will vary, depending on what suffixes are already in use.
Before:
Bookmark | Remote | Divergent Bookmark
--------------------------------------
foo | bar | foo@bar
foo | <no alias> | foo@1
@ | bar | @@bar
@ | <no alias> | @@1
After:
Bookmark | Remote | Divergent Bookmark
--------------------------------------
foo | bar | foo@bar
foo | <no alias> | foo@1
@ | bar | @bar
@ | <no alias> | @1
This case is likely to be more common now that
92980a8dfdfe has made the "@"
bookmark have special meaning to clone.
The change in behavior was discussed on the mailing list in the thread below:
http://markmail.org/thread/rwedgxp7le5j2h2f
Thomas Arendsen Hein <thomas@intevation.de> [Tue, 16 Oct 2012 16:04:28 +0200] rev 17769
histedit: max(x, key=y) and min(x, key=y) are not available in python 2.4
Use sorted(x, key=y)[-1] or sorted(x, key=y)[0] instead.
Matt Mackall <mpm@selenic.com> [Sat, 13 Oct 2012 15:10:39 -0500] rev 17768
vfs: use self.write to write symlink placeholders
The existing write() path is much more robust than the hand-rolled
version that was inlined here.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Sun, 14 Oct 2012 23:49:28 +0200] rev 17767
histedit: do not use "min" on ctx
It does not crash but does not compare revision number at all. We actually
remove any call to min because the list is already topologically sorted.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Sun, 14 Oct 2012 23:58:02 +0200] rev 17766
histedit: clean abort when there is nothing to edit
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Mon, 15 Oct 2012 00:05:16 +0200] rev 17765
histedit: rename `revs` in `ctxs` inside the `between` function
The variable content is actually contexts, not revision numbers.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Sun, 14 Oct 2012 23:03:58 +0200] rev 17764
test: fix invalid redirection for histedit text
Appending to the file is wrong, we want new content.
Matt Mackall <mpm@selenic.com> [Sat, 13 Oct 2012 15:03:00 -0500] rev 17763
vfs: backout fchmod change from
76b73ce0ffac
Only works on Unix with Python >= 2.6, need a different fix.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Fri, 12 Oct 2012 21:41:08 +0200] rev 17762
histedit: refuse to edit public changeset
Public changeset are immutable. This changeset enforce that in histedit.
Pierre-Yves David <pierre-yves.david@logilab.fr> [Thu, 27 Sep 2012 14:00:52 +0200] rev 17761
histedit: ignores hidden revision when checking for orphaned nodes
We do not want hidden revision to block histedit. They are already "dead"
and we do not care about dead orphans. see similar changeset
9e2dc0d292cd for
rebase.
Pierre-Yves David <pierre-yves.david@logilab.fr> [Wed, 10 Oct 2012 06:27:06 +0200] rev 17760
histedit: simplify computation of edited set (
issue3620)
This complex code can be replaced by two simple revset calls.
Pierre-Yves David <pierre-yves.david@logilab.fr> [Thu, 27 Sep 2012 13:59:48 +0200] rev 17759
histedit: add obsolete support
When the obsolete feature is enabled, histedit creates obsolescence marker
instead of stripping replaced changesets.
For now, we keep stripping temporary nodes created along the way.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Thu, 11 Oct 2012 08:36:50 +0200] rev 17758
histedit: replace various nodes lists with replacement graph (and
issue3582)
This changeset rewrites the change tracking logic of histedit to record every
operation it does. Tracked operations record the full list of "old" node that
will eventually be removed to the list of new nodes that replace it. Operations
on temporary nodes are tracked too. Dropped changesets are also recorded as an
"old" node replacement by nothing. This logic is similar to the obsolescence
marker one and will be used for this purpose in later commit.
This new logic implies a big amount of change in the histedit code base.
histedit action functions now always return a tuple of
(new-ctx, [list of rewriting operations])
The old `created`, `replaced` and `tmpnodes` are no longer returned and stored
during histedit operation. When such information is necessary it is computed
from the replacement graph. This computation is done in the `processreplacement`
function.
The `replacemap` is also dropped. It is computed at the end of the command from the
graph. The `bootstrapcontinue` methods are altered to compute this different kind of
information.
This new mechanism requires much less information to be written on disk.
Note:
This changes allows a more accurate bookmark movement. bookmark on dropped
changeset are now move of their parent (or replacement of their parent)
instead of their children.
This fix
issue3582
Matt Mackall <mpm@selenic.com> [Fri, 12 Oct 2012 15:52:59 -0500] rev 17757
merge with durin42
Kevin Bullock <kbullock@ringworld.org> [Wed, 21 Mar 2012 16:53:39 -0500] rev 17756
clone: update to @ bookmark if it exists
Christian Ebert <blacktrash@gmx.net> [Fri, 10 Aug 2012 20:37:20 +0100] rev 17755
templatefilters: avoid traceback caused by bogus date input (
issue3344)
Wrap datefilters which split date texts with util.parsedate.
We do not abort, as the bogus date must have been given by the user.
Michal Sznajder <michalsznajder@gmail.com> [Mon, 13 Aug 2012 22:42:10 +0200] rev 17754
notify: support revset selection for subscriptions
A repo pattern for any notify configuration contains a glob matching the
path to the repo. Additionally, it may now contain a revset spec, separated
from the glob by '#'.
Example:
[reposubs]
*/widgets#branch(release) = qa-team@example.com
This sends to ``qa-team@example.com`` whenever a changeset on the ``release``
branch triggers a notification in any repository ending in ``widgets``.
This patch was completely done by David Champion <dgc@uchicago.edu> with me
making tiny changes to his tests.
Ivan Andrus <darthandrus@gmail.com> [Mon, 13 Aug 2012 21:50:45 +0200] rev 17753
revsets: add branchpoint() function
The branchpoint() function returns changesets with more than one child.
Eventually I would like to be able to see only branch points and merge
points in a graphical log to see the topology of the repository.