Fri, 09 May 2014 13:10:23 -0500 pager: variable reorder
Matt Mackall <mpm@selenic.com> [Fri, 09 May 2014 13:10:23 -0500] rev 21280
pager: variable reorder
Fri, 09 May 2014 13:07:50 -0500 pager: break auto out of command check loop
Matt Mackall <mpm@selenic.com> [Fri, 09 May 2014 13:07:50 -0500] rev 21279
pager: break auto out of command check loop
Fri, 09 May 2014 13:05:52 -0500 pager: break always out of command check loop
Matt Mackall <mpm@selenic.com> [Fri, 09 May 2014 13:05:52 -0500] rev 21278
pager: break always out of command check loop
Fri, 09 May 2014 12:58:53 -0500 pager: break pager invocation out of command check loop
Matt Mackall <mpm@selenic.com> [Fri, 09 May 2014 12:58:53 -0500] rev 21277
pager: break pager invocation out of command check loop
Thu, 08 May 2014 11:11:27 -0500 tests: fix test failure on vfat
Matt Mackall <mpm@selenic.com> [Thu, 08 May 2014 11:11:27 -0500] rev 21276
tests: fix test failure on vfat It can't handle filenames with spaces. We don't have a good hghave test for this, so we wrap it with unix-permissions.
Thu, 08 May 2014 19:45:22 +0200 largefiles: include largefiles when doing log on a directory (issue4241)
Mads Kiilerich <madski@unity3d.com> [Thu, 08 May 2014 19:45:22 +0200] rev 21275
largefiles: include largefiles when doing log on a directory (issue4241) The matchers _files had to include both the real root and the standin version of the root.
Thu, 08 May 2014 14:58:25 +0000 journal: set Abort hint when failing due to an abandoned transaction
Johan Bjork <jbjoerk@gmail.com> [Thu, 08 May 2014 14:58:25 +0000] rev 21274
journal: set Abort hint when failing due to an abandoned transaction
Thu, 08 May 2014 16:37:33 -0700 merge: define conflict marker labels in filemerge()
Durham Goode <durham@fb.com> [Thu, 08 May 2014 16:37:33 -0700] rev 21273
merge: define conflict marker labels in filemerge() Moves the conflict marker definition up to filemerge, so it gets applied to all merge strategies, and so in a future patch we can manipulate the markers.
Thu, 08 May 2014 16:33:06 -0700 merge: prevent simplemerge from mutating label list
Durham Goode <durham@fb.com> [Thu, 08 May 2014 16:33:06 -0700] rev 21272
merge: prevent simplemerge from mutating label list simplemerge was using list.pop() to remove items from the labels list. This mutated the list and made it unusable by other calls (for instance, it might be used in both the premerge and actual merge stages).
Fri, 09 May 2014 08:44:53 +0900 tests: ignore "undefined name 'memoryview'" pyflakes error on earlier Python
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Fri, 09 May 2014 08:44:53 +0900] rev 21271
tests: ignore "undefined name 'memoryview'" pyflakes error on earlier Python Before this patch, "test-check-pyflakes.t" shows unexpected "undefined name 'memoryview'" error for "mercurial/util.py" on Python 2.6.x or earlier, because they don't define symbol 'memoryview'. This patch introduces excluding patterns into "filterpyflakes.py" to ignore "undefined name 'memoryview'" pyflakes error on Python 2.6.x or earlier
Fri, 09 May 2014 08:44:53 +0900 mq: eliminate unused variable for test-check-pyflakes.t
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Fri, 09 May 2014 08:44:53 +0900] rev 21270
mq: eliminate unused variable for test-check-pyflakes.t "user" in "fold()" has become useless since 49148d7868df.
Tue, 22 Apr 2014 02:09:24 +0200 merge: make debug output slightly more helpful by including message for action
Mads Kiilerich <madski@unity3d.com> [Tue, 22 Apr 2014 02:09:24 +0200] rev 21269
merge: make debug output slightly more helpful by including message for action Make recently introduced messages more useful. Instead of: f1: g f2: m say: f1: remote is newer -> g f2: versions differ -> m
Sun, 13 May 2012 17:45:08 +0200 merge: simplify mergestate iter
Mads Kiilerich <mads@kiilerich.com> [Sun, 13 May 2012 17:45:08 +0200] rev 21268
merge: simplify mergestate iter
Fri, 09 May 2014 14:46:50 -0500 resolve: simplify "finished" message
Matt Mackall <mpm@selenic.com> [Fri, 09 May 2014 14:46:50 -0500] rev 21267
resolve: simplify "finished" message The recently introduced message was: no unresolved files; you may continue your unfinished operation This had three problems: - looks a bit like an error message because it's not saying "we've just resolved the last file" - refers to "unfinished operation", which won't be the case with "update" or "merge" - introduces semicolons to error messages, which is stylistically questionable I've simplified this to: no more unresolved files In the future, if we want to prompt someone to continue a particular operation, we should use a hint style: no more unresolved files (use 'hg graft --continue' to finish grafting)
Fri, 18 Apr 2014 22:19:25 -0700 resolve: print message when no unresolved files remain (issue4214)
Gregory Szorc <gregory.szorc@gmail.com> [Fri, 18 Apr 2014 22:19:25 -0700] rev 21266
resolve: print message when no unresolved files remain (issue4214) When using resolve, users often have to consult with the output of |hg resolve -l| to see if any unresolved files remain. This step is tedious and adds overhead to resolving. This patch will notify a user if there are no unresolved files remaining after executing |hg resolve|:: no unresolved files; you may continue your unfinished operation The patch stops short of telling the user exactly what command should be executed to continue the unfinished operation. That is because this information is not currently captured anywhere. This would make a compelling follow-up feature.
Fri, 18 Apr 2014 18:56:26 -0700 resolve: print warning when no work performed (issue4208)
Gregory Szorc <gregory.szorc@gmail.com> [Fri, 18 Apr 2014 18:56:26 -0700] rev 21265
resolve: print warning when no work performed (issue4208) Previously, if the paths specified as arguments to |hg resolve| were invalid, they were silently ignored and a no-op would ensue. This patch fixes that in some scenarios. If none of the paths specified to |hg resolve| match a path that is in mergestate, a warning will be emitted. Ideally, a warning would be emitted for every path/pattern specified that doesn't match anything. To achieve this would require significant refactoring of the matching subsystem. That work is beyond the scope of this patch series. Something is better than nothing and this patch gets us something.
Fri, 18 Apr 2014 19:08:32 -0700 resolve: abort when not applicable (BC)
Gregory Szorc <gregory.szorc@gmail.com> [Fri, 18 Apr 2014 19:08:32 -0700] rev 21264
resolve: abort when not applicable (BC) The resolve command is only relevant when mergestate is present. This patch will make resolve abort when no mergestate is present. This change will let people know when they are using resolve when they shouldn't be. This change will let people know when their use of resolve doesn't do anything. Previously, |hg resolve -m| would allow mergestate to be created. This patch now forbids that. Strictly speaking, this is backwards incompatible. The author of this patch believes creating mergestate via resolve doesn't make much sense and this side-effect was unintended.
Fri, 18 Apr 2014 18:26:42 -0700 resolve: split test
Gregory Szorc <gregory.szorc@gmail.com> [Fri, 18 Apr 2014 18:26:42 -0700] rev 21263
resolve: split test Part of test-resolve.t is split into multiple tests to create an injection point for new tests that will be added in subsequent patches.
Fri, 18 Apr 2014 18:19:46 -0700 resolve: use early continue and deindent
Gregory Szorc <gregory.szorc@gmail.com> [Fri, 18 Apr 2014 18:19:46 -0700] rev 21262
resolve: use early continue and deindent
Thu, 08 May 2014 16:48:28 -0700 mergestate: consistently set variables to None
Gregory Szorc <gregory.szorc@gmail.com> [Thu, 08 May 2014 16:48:28 -0700] rev 21261
mergestate: consistently set variables to None Some code branches and exceptional circumstances such as empty mergestate files could result in mergestate._local and mergestate._other not being defined or reset to None. These variables are now correctly set to None when they should be.
Wed, 07 May 2014 17:22:34 -0700 changegroup: refactor outgoing logic into a function
Durham Goode <durham@fb.com> [Wed, 07 May 2014 17:22:34 -0700] rev 21260
changegroup: refactor outgoing logic into a function Extensions that add to bundle2 will want to know which commits are outgoing so they can bundle data that is appropriate to those commits. This moves the logic for figuring that out to a separate function so extensions can do the same computation.
Wed, 07 May 2014 17:24:19 -0700 bundle2: fix bundle2 pulling all revs on empty pulls
Durham Goode <durham@fb.com> [Wed, 07 May 2014 17:24:19 -0700] rev 21259
bundle2: fix bundle2 pulling all revs on empty pulls When bundle2 was enabled, if hg pull had no commits to pull, it would print 'no changes found' and then download the entire repository from the server. This was caused by heads and common being set to None, which gets treated as heads=cl.heads() and common=[nullid], which means download the entire repo. Pulling bundles without a changegroup is a valid use case (like if we're just updating bookmarks), so this modifes the bundle code to allow not adding changegroups.
Wed, 07 May 2014 19:26:15 -0700 exchange: fix bad indentation
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 07 May 2014 19:26:15 -0700] rev 21258
exchange: fix bad indentation Those two lines where double indented for no good reasons.
Wed, 07 May 2014 19:28:17 -0700 exchange: propagate arguments to the _getbundleextrapart function
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 07 May 2014 19:28:17 -0700] rev 21257
exchange: propagate arguments to the _getbundleextrapart function The arguments was wrongly propagated (again).
Wed, 07 May 2014 17:20:38 -0700 bundle2: fix configuration name mismatch
Durham Goode <durham@fb.com> [Wed, 07 May 2014 17:20:38 -0700] rev 21256
bundle2: fix configuration name mismatch During pulls bundle2 was checking server.bundle2, but during pushes it was checking experimental.bundle2. This makes them both experimental.bundle2.
Wed, 07 May 2014 17:58:13 -0500 build: initial support for in-tree autobuilding recipes
Matt Mackall <mpm@selenic.com> [Wed, 07 May 2014 17:58:13 -0500] rev 21255
build: initial support for in-tree autobuilding recipes
Sun, 04 May 2014 22:48:07 -0700 tests: declare commands using decorator
Gregory Szorc <gregory.szorc@gmail.com> [Sun, 04 May 2014 22:48:07 -0700] rev 21254
tests: declare commands using decorator
Sun, 04 May 2014 21:33:14 -0700 share: declare commands using decorator
Gregory Szorc <gregory.szorc@gmail.com> [Sun, 04 May 2014 21:33:14 -0700] rev 21253
share: declare commands using decorator
Sun, 04 May 2014 21:52:25 -0700 relink: declare command using decorator
Gregory Szorc <gregory.szorc@gmail.com> [Sun, 04 May 2014 21:52:25 -0700] rev 21252
relink: declare command using decorator
Sun, 04 May 2014 22:35:37 -0700 record: declare commands using decorator
Gregory Szorc <gregory.szorc@gmail.com> [Sun, 04 May 2014 22:35:37 -0700] rev 21251
record: declare commands using decorator
Sun, 04 May 2014 21:31:51 -0700 hgk: declare commands using decorator
Gregory Szorc <gregory.szorc@gmail.com> [Sun, 04 May 2014 21:31:51 -0700] rev 21250
hgk: declare commands using decorator
Sun, 04 May 2014 21:48:10 -0700 color: declare command using decorator
Gregory Szorc <gregory.szorc@gmail.com> [Sun, 04 May 2014 21:48:10 -0700] rev 21249
color: declare command using decorator
Sun, 04 May 2014 21:46:49 -0700 children: declare command using decorator
Gregory Szorc <gregory.szorc@gmail.com> [Sun, 04 May 2014 21:46:49 -0700] rev 21248
children: declare command using decorator
Sun, 04 May 2014 21:48:41 -0700 fetch: declare command using decorator
Gregory Szorc <gregory.szorc@gmail.com> [Sun, 04 May 2014 21:48:41 -0700] rev 21247
fetch: declare command using decorator
Sun, 04 May 2014 21:54:01 -0700 extdiff: declare command using decorator
Gregory Szorc <gregory.szorc@gmail.com> [Sun, 04 May 2014 21:54:01 -0700] rev 21246
extdiff: declare command using decorator
Sun, 04 May 2014 21:46:24 -0700 churn: declare command using decorator
Gregory Szorc <gregory.szorc@gmail.com> [Sun, 04 May 2014 21:46:24 -0700] rev 21245
churn: declare command using decorator
Sun, 04 May 2014 21:17:04 -0700 convert: declare commands using decorator
Gregory Szorc <gregory.szorc@gmail.com> [Sun, 04 May 2014 21:17:04 -0700] rev 21244
convert: declare commands using decorator
Sun, 04 May 2014 21:19:31 -0700 debugshell: declare command using decorator
Gregory Szorc <gregory.szorc@gmail.com> [Sun, 04 May 2014 21:19:31 -0700] rev 21243
debugshell: declare command using decorator
Sun, 04 May 2014 21:09:06 -0700 largefiles: declare commands using decorator
Gregory Szorc <gregory.szorc@gmail.com> [Sun, 04 May 2014 21:09:06 -0700] rev 21242
largefiles: declare commands using decorator
Mon, 05 May 2014 21:26:40 +0900 cmdutil: omit redundant "savecommitmessage()" in "tryimportone()"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Mon, 05 May 2014 21:26:40 +0900] rev 21241
cmdutil: omit redundant "savecommitmessage()" in "tryimportone()" The preceding patch causes that "makememctx()" with "editor" argument saves (manually edited) commit message into ".hg/last-message.txt": saving itself is executed indirectly in "memctx.__init__()". This makes it redundant to invoke "savecommitmessage()" on caller side of "makememctx()". This patch omits such redundant "savecommitmessage()" invocation in "tryimportone()". "tryimportone()" uses one of "commiteditor" or "commitforceeditor" as "editor" argument, and this causes saving commit message always.
Mon, 05 May 2014 21:26:40 +0900 amend: use "editor" argument for "memctx.__init__" to save commit message
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Mon, 05 May 2014 21:26:40 +0900] rev 21240
amend: use "editor" argument for "memctx.__init__" to save commit message This patch uses "editor" argument of "memctx.__init__" to save commit message, instead of explicit editor invocation and saving commit message by "localrepository.savecommitmessage()". By passing one of "commiteditor" or "commitforceeditor" as "editor", "memctx.__init__" saves commit message, even when editor invocation is not needed.
Mon, 05 May 2014 21:26:40 +0900 histedit: pass "editor" argument to "memctx.__init__()" for "collapse" command
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Mon, 05 May 2014 21:26:40 +0900] rev 21239
histedit: pass "editor" argument to "memctx.__init__()" for "collapse" command The preceding patch causes that "memctx.__init__()" with "editor" argument invokes editor and saves edited commit message into ".hg/last-message.txt". This patch passes "editor" argument to "memctx.__init__()" instead of explicit invocations of "commitforceeditor()" and "savecommitmessage()" for "collapse" command.
Mon, 05 May 2014 21:26:40 +0900 context: move editor invocation from "makememctx()" to "memctx.__init__()"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Mon, 05 May 2014 21:26:40 +0900] rev 21238
context: move editor invocation from "makememctx()" to "memctx.__init__()" This patch introduces "editor" argument to "memctx.__init__()", and moves editor invocation from "makememctx()" to "memctx.__init__()", to centralize editor invocation into "memctx" object creation. This relocation is needed, because "makememctx()" requires the "store" object providing "getfile()" to create "memfilectx" object, and this prevents some code paths from using "makememctx()" instead of "memctx.__init__()". This patch also invokes "localrepository.savecommitmessage()", when "editor" is specified explicitly, to centralize saving commit message into "memctx" object creation: passing "cmdutil.commiteditor" as "editor" can achieve both suppressing editor invocation and saving into ".hg/last-message.txt" for non empty commit messages.
Mon, 05 May 2014 21:26:40 +0900 localrepo: add "editor" argument to "tag()"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Mon, 05 May 2014 21:26:40 +0900] rev 21237
localrepo: add "editor" argument to "tag()" Before this patch, "localrepository.tag()" doesn't take "editor" argument, and this prevents callers from passing "editor" argument to "localrepository.commit()" invoked internally. This patch adds "editor" argument to "localrepository.tag()" (and "_tag()", too), and makes "commands.tag()" invoke it with "editor" argument. This patch also omits explicit "localrepository.savecommitmesssage()" invocation, because "localrepository.commit()" will invoke specified "editor" and save edited commit message into ".hg/last-message.txt" automatically.
Mon, 05 May 2014 21:26:40 +0900 qrefresh: use "editor" argument of "commit()" instead of explicit "ui.edit()"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Mon, 05 May 2014 21:26:40 +0900] rev 21236
qrefresh: use "editor" argument of "commit()" instead of explicit "ui.edit()" Before this patch, "hg qrefresh" and "hg qfold" invoke "ui.edit()" explicitly to get commit message edited manually. This requires explicit "localrepository.savecommitmessage()" invocation to save edited commit message into ".hg/last-message.txt", because unexpected exception raising may abort command execution before saving it in "localrepository.commit()". This patch uses "editor" argument of "localrepository.commit()" instead of explicit "ui.edit()" invocation for "hg qnew" and "hg qfold" "localrepository.commit()" will invoke "desceditor()" function newly added by this patch, and save edited commit message into ".hg/last-message.txt" automatically. This patch passes not "editor" but "desceditor" to "commit()", because "hg qnew" and "hg qfold" require editor function to return edited message (and invoke "patchheader.setmessage()" with it) if not empty, or default message otherwise. This patch also avoids "not q.applied" check at "hg qrefresh --edit", because it is also checked in "queue.refresh()", and it is not needed to get commit message from patch header before "queue.refresh()".
Mon, 05 May 2014 21:26:40 +0900 qrefresh: relocate message/patch-header handling to delay message determination
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Mon, 05 May 2014 21:26:40 +0900] rev 21235
qrefresh: relocate message/patch-header handling to delay message determination Before this patch, commit message for refreshed MQ changeset is determined, and written into refreshed patch file before "localrepository.commit()" invocation. This makes refactoring to use "editor" argument of "commit()" instead of explicit "ui.edit()" invocation in succeeding patch difficult. This patch relocates message/patch-header handling to delay message determination.
Mon, 05 May 2014 21:26:40 +0900 qnew: use "editor" argument of "commit()" instead of explicit "ui.edit()"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Mon, 05 May 2014 21:26:40 +0900] rev 21234
qnew: use "editor" argument of "commit()" instead of explicit "ui.edit()" Before this patch, "hg qnew" invokes "ui.edit()" explicitly to get commit message edited manually. This requires explicit "localrepository.savecommitmessage()" invocation to save edited commit message into ".hg/last-message.txt", because unexpected exception raising may abort command execution before saving it in "localrepository.commit()". This patch uses "editor" argument of "localrepository.commit()" instead of explicit "ui.edit()" invocation for "hg qnew". "localrepository.commit()" will invoke "desceditor()" function newly added by this patch, and save edited commit message into ".hg/last-message.txt" automatically. This patch passes not "editor" but "desceditor" to "commit()", because "hg qnew" requires editor function to return edited message if not empty, or default message otherwise. This patch applies "rstrip()" on "defaultmsg" at comparison between "nctx.description()" and "defaultmsg", because the former should be stripped by "changelog.stripdesc()" and the latter may have tail white spaces inherited from "patchfn".
Mon, 05 May 2014 21:26:40 +0900 histedit: use "editor" argument of "commit()" instead of explicit "ui.edit()"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Mon, 05 May 2014 21:26:40 +0900] rev 21233
histedit: use "editor" argument of "commit()" instead of explicit "ui.edit()" Before this patch, "message" action of "hg histedit" uses "ui.edit()" explicitly to get commit message edited manually. This requires explicit "localrepository.savecommitmessage()" invocation to save edited commit message into ".hg/last-message.txt", because unexpected exception raising may abort command execution before saving it in "localrepository.commit()". This patch uses "editor" argument of "localrepository.commit()" instead of explicit "ui.edit()" invocation for "message" action of "hg histedit" "localrepository.commit()" will invoke "editor()" function newly added in this patch, and save edited commit message into ".hg/last-message.txt" automatically.
Tue, 29 Apr 2014 12:54:01 +0900 test-pyflakes: detect undefined name error
Yuya Nishihara <yuya@tcha.org> [Tue, 29 Apr 2014 12:54:01 +0900] rev 21232
test-pyflakes: detect undefined name error It should be able to catch the following mistakes at 2606e7f227f6: mercurial/exchange.py:590: undefined name 'UnknownPartError' mercurial/match.py:346: undefined name 'pat' mercurial/win32.py:365: undefined name '_ERROR_NO_MORE_FILES' tests/killdaemons.py:46: undefined name 'check'
Fri, 02 May 2014 18:25:23 +0900 run-tests: initialize global variables to suppress pyflakes warning
Yuya Nishihara <yuya@tcha.org> [Fri, 02 May 2014 18:25:23 +0900] rev 21231
run-tests: initialize global variables to suppress pyflakes warning
Tue, 06 May 2014 12:47:59 -0500 merge with stable
Matt Mackall <mpm@selenic.com> [Tue, 06 May 2014 12:47:59 -0500] rev 21230
merge with stable
Mon, 05 May 2014 16:54:15 +0200 setup.py, make: avoid problems with outdated, existing hgext/__index__.py* stable
Thomas Arendsen Hein <thomas@intevation.de> [Mon, 05 May 2014 16:54:15 +0200] rev 21229
setup.py, make: avoid problems with outdated, existing hgext/__index__.py* "make clean" already removed __index__.py[cdo], but not the __index__.py (automatically generated by "python setup.py build_hgextindex"). "setup.py build_hgextindex" did not generate a new index if file __index__.py[cdo] already existed, because if __index__.py was removed, the compiled file containing the old information was imported and used. Generate an empty file (with a new timestamp to generate a new .py[cdo]) instead and make mercurial.extensions ignore the unset docs attribute. One of the problems was a failed test-help.t, to reproduce: $ rm hgext/__index__.py* $ echo 'docs = {"mq": "dummy"}' > hgext/__index__.py $ make test-help.t With this a "make clean" or "python setup.py build_hgextindex" helps.
Fri, 02 May 2014 18:24:10 +0900 factotum: initialize global variables to suppress pyflakes warning
Yuya Nishihara <yuya@tcha.org> [Fri, 02 May 2014 18:24:10 +0900] rev 21228
factotum: initialize global variables to suppress pyflakes warning
Sat, 03 May 2014 03:29:30 +0200 color: don't fail on error messages when no curses (issue4237) stable
Mads Kiilerich <madski@unity3d.com> [Sat, 03 May 2014 03:29:30 +0200] rev 21227
color: don't fail on error messages when no curses (issue4237) The error only occured when Python didn't have curses - such as on Windows and when Python was built without curses support. No curses can also be emulated by (re)moving .../lib/python2.7/curses/ from the Python installation. It is left as an exercise to figure out exactly what changed in Mercurial that triggered this error.
Sat, 03 May 2014 10:33:54 +0200 win32: backout 1a9ebc83a74c stable
Steve Borho <steve@borho.org> [Sat, 03 May 2014 10:33:54 +0200] rev 21226
win32: backout 1a9ebc83a74c This change conflicted with TortoiseHg's use of QFileSystemWatcher. Files which were being monitored (for file-system events) were unable to be reliably updated using util.atomictempfile. Often the update would error out in the middle of the process leaving neither the old or the new file in place. My guess is that _kernel32.CreateFileA() is triggering an exception that is not handled correctly within unlink()
Mon, 05 May 2014 13:42:08 -0500 test-check-code-hg: use locate instead of manifest
Matt Mackall <mpm@selenic.com> [Mon, 05 May 2014 13:42:08 -0500] rev 21225
test-check-code-hg: use locate instead of manifest
Mon, 05 May 2014 13:41:29 -0500 test-check-code-hg: drop manual check of non-.py scripts
Matt Mackall <mpm@selenic.com> [Mon, 05 May 2014 13:41:29 -0500] rev 21224
test-check-code-hg: drop manual check of non-.py scripts
Mon, 05 May 2014 13:42:58 -0500 test-check-code-hg: use test-repo check
Matt Mackall <mpm@selenic.com> [Mon, 05 May 2014 13:42:58 -0500] rev 21223
test-check-code-hg: use test-repo check
Mon, 05 May 2014 13:37:59 -0500 check-code: look at shebang to identify Python scripts
Matt Mackall <mpm@selenic.com> [Mon, 05 May 2014 13:37:59 -0500] rev 21222
check-code: look at shebang to identify Python scripts
Fri, 02 May 2014 00:23:58 -0500 tests: use locate to find files for pyflakes check
Matt Mackall <mpm@selenic.com> [Fri, 02 May 2014 00:23:58 -0500] rev 21221
tests: use locate to find files for pyflakes check Based on a suggestion by Yuya Nishihara
Thu, 01 May 2014 19:24:03 -0500 merge with stable
Matt Mackall <mpm@selenic.com> [Thu, 01 May 2014 19:24:03 -0500] rev 21220
merge with stable
Thu, 01 May 2014 17:48:02 -0500 Added signature for changeset 2195ac506c6a stable
Matt Mackall <mpm@selenic.com> [Thu, 01 May 2014 17:48:02 -0500] rev 21219
Added signature for changeset 2195ac506c6a
Thu, 01 May 2014 17:47:24 -0500 Added tag 3.0 for changeset 2195ac506c6a stable
Matt Mackall <mpm@selenic.com> [Thu, 01 May 2014 17:47:24 -0500] rev 21218
Added tag 3.0 for changeset 2195ac506c6a
Thu, 01 May 2014 14:07:04 -0700 revset: directly use __contains__ instead of a lambda stable 3.0
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 01 May 2014 14:07:04 -0700] rev 21217
revset: directly use __contains__ instead of a lambda We get rid of lambda in a bunch of other place. This is equivalent and much faster. (no new timing as this is the same change as three other changesets)
Thu, 01 May 2014 14:33:06 -0500 tests: suppress spurious lchmod error from unzip (issue4088) stable
Matt Mackall <mpm@selenic.com> [Thu, 01 May 2014 14:33:06 -0500] rev 21216
tests: suppress spurious lchmod error from unzip (issue4088) Because lchmod doesn't exist on Linux, unzip should be built without lchmod support. A few distros get this wrong.
Thu, 01 May 2014 12:15:28 -0700 orderedlazyset: directly use __contains__ instead of a lambda stable
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 01 May 2014 12:15:28 -0700] rev 21215
orderedlazyset: directly use __contains__ instead of a lambda We apply the same speedup as in spanset, getting rid of the useless lambda. (No new timing, as this is the very same change)
Thu, 01 May 2014 12:15:00 -0700 lazyset: directly use __contains__ instead of a lambda stable
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 01 May 2014 12:15:00 -0700] rev 21214
lazyset: directly use __contains__ instead of a lambda We apply the same speedup as in spanset, getting rid of the useless lambda. (No new timing, as this is the very same change)
Thu, 01 May 2014 13:42:12 -0500 merge with i18n stable
Matt Mackall <mpm@selenic.com> [Thu, 01 May 2014 13:42:12 -0500] rev 21213
merge with i18n
Wed, 30 Apr 2014 23:20:46 +0900 i18n-ja: synchronized with e9c2f76be74b stable
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Wed, 30 Apr 2014 23:20:46 +0900] rev 21212
i18n-ja: synchronized with e9c2f76be74b
Wed, 30 Apr 2014 11:01:50 -0300 i18n-pt_BR: synchronized with e9c2f76be74b stable
Wagner Bruna <wbruna@softwareexpress.com.br> [Wed, 30 Apr 2014 11:01:50 -0300] rev 21211
i18n-pt_BR: synchronized with e9c2f76be74b
Thu, 01 May 2014 16:47:50 +0200 rebase: empty revset should be a gentle no-op with exit code 1, not an error stable
Mads Kiilerich <madski@unity3d.com> [Thu, 01 May 2014 16:47:50 +0200] rev 21210
rebase: empty revset should be a gentle no-op with exit code 1, not an error
Thu, 01 May 2014 15:12:49 +0200 largefiles: better handling of log from other working directory (issue4236) stable
Mads Kiilerich <madski@unity3d.com> [Thu, 01 May 2014 15:12:49 +0200] rev 21209
largefiles: better handling of log from other working directory (issue4236) When invoked from another directory, the matchers m._cwd will be the absolute path. The code for calculating relative path to .hglf did not consider that and log would fail with weird errors and paths. For now, just don't do any largefile magic when invoked from other directories.
Thu, 01 May 2014 09:42:23 -0500 tests: add repository check for pyflakes test stable
Matt Mackall <mpm@selenic.com> [Thu, 01 May 2014 09:42:23 -0500] rev 21208
tests: add repository check for pyflakes test If this test was run from a tarball with no Mercurial repository, it would fail because 'hg manifest' didn't work.
Sat, 26 Apr 2014 00:38:02 -0700 spanset: directly use __contains__ instead of a lambda stable
Pierre-Yves David <pierre-yves.david@fb.com> [Sat, 26 Apr 2014 00:38:02 -0700] rev 21207
spanset: directly use __contains__ instead of a lambda Spanset are massively used in revset. First because the initial subset itself is a repo wide spanset. We speed up the __and__ operation by getting rid of a gratuitous lambda call. A more long terms solution would be to: 1. speed up operation between spansets, 2. have a special smartset for `all` revisions. In the mean time, this is a very simple fix that buyback some of the performance regression. Below is performance benchmark for trival `and` operation between two spansets. (Run on an unspecified fairly large repository.) revset tip:0 2.9.2) wall 0.282543 comb 0.280000 user 0.260000 sys 0.020000 (best of 35) before) wall 0.819181 comb 0.820000 user 0.820000 sys 0.000000 (best of 12) after) wall 0.645358 comb 0.650000 user 0.650000 sys 0.000000 (best of 16) Proof of concept implementation of an `all` smartset brings this to 0.10 but it's too invasive for stable.
Wed, 30 Apr 2014 15:36:38 -0700 transaction: fix file descriptor leak for journal.backupfiles stable
Durham Goode <durham@fb.com> [Wed, 30 Apr 2014 15:36:38 -0700] rev 21206
transaction: fix file descriptor leak for journal.backupfiles The journal.backupfiles descriptor wasn't being closed. This resulted in hgsubversion test runs having a bagillion descriptors open, which crashed on platforms with low open file limits (like OSX).
Fri, 25 Apr 2014 18:00:07 -0700 revset: also inline spanset._contained in __len__ stable
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 25 Apr 2014 18:00:07 -0700] rev 21205
revset: also inline spanset._contained in __len__ For consistency with what happen in `__contains__`, we inline the range test into `__len__` too.
Mon, 28 Apr 2014 15:15:36 -0700 revset: inline spanset containment check (fix perf regression) stable
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 28 Apr 2014 15:15:36 -0700] rev 21204
revset: inline spanset containment check (fix perf regression) Calling a function is super expensive in python. We inline the trivial range comparison to get back to more sensible performance on common revset operation. Benchmark result below: Revision mapping: 0) 3f83fc5cfe71 2.9.2 release 1) bcfd44abad93 current @ 2) This revision revset #0: public() 0) wall 0.010890 comb 0.010000 user 0.010000 sys 0.000000 (best of 201) 1) wall 0.012109 comb 0.010000 user 0.010000 sys 0.000000 (best of 199) 2) wall 0.012211 comb 0.020000 user 0.020000 sys 0.000000 (best of 197) revset #1: :10000 and public() 0) wall 0.007141 comb 0.010000 user 0.010000 sys 0.000000 (best of 361) 1) wall 0.014139 comb 0.010000 user 0.010000 sys 0.000000 (best of 186) 2) wall 0.008334 comb 0.010000 user 0.010000 sys 0.000000 (best of 308) revset #2: draft() 0) wall 0.009610 comb 0.010000 user 0.010000 sys 0.000000 (best of 279) 1) wall 0.010942 comb 0.010000 user 0.010000 sys 0.000000 (best of 243) 2) wall 0.011036 comb 0.010000 user 0.010000 sys 0.000000 (best of 239) revset #3: :10000 and draft() 0) wall 0.006852 comb 0.010000 user 0.010000 sys 0.000000 (best of 383) 1) wall 0.014641 comb 0.010000 user 0.010000 sys 0.000000 (best of 183) 2) wall 0.008314 comb 0.010000 user 0.010000 sys 0.000000 (best of 299) We can see this changeset gains back the regression for `and` operation on spanset. We are still a bit slowerfor the `public()` and `draft()`. Predicates not touched by this changeset.
Wed, 30 Apr 2014 14:19:01 -0500 ancestor: silence multiple ancestor warning outside of merge (issue4234) stable
Matt Mackall <mpm@selenic.com> [Wed, 30 Apr 2014 14:19:01 -0500] rev 21203
ancestor: silence multiple ancestor warning outside of merge (issue4234) The current situation is a bit of a layering violation as merge-specific knowledge is pushed down to lower layers and leaks merge assumptions into other code paths. Here, we simply silence the warning with a hack. Both the warning and the hack will probably go away in the near future when bid merge is made the default.
Fri, 25 Apr 2014 13:44:51 -0700 revsetbenchmark: fix error raising stable
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 25 Apr 2014 13:44:51 -0700] rev 21202
revsetbenchmark: fix error raising We want to display the commands, not all arguments of the function. (The old code actually crash, failing to joining a list of lists.)
Mon, 28 Apr 2014 16:28:52 -0700 revset: fix revision filtering in spanset.contains (regression) stable
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 28 Apr 2014 16:28:52 -0700] rev 21201
revset: fix revision filtering in spanset.contains (regression) The argument is `x` but the variable tested for filtering is `rev`. `rev` happens to be a revset methods, ... never part of the filtered revs. This method is now using `rev` for everything.
Mon, 28 Apr 2014 17:25:36 -0700 graft: do not use `.remove` on a smart set (regression) stable
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 28 Apr 2014 17:25:36 -0700] rev 21200
graft: do not use `.remove` on a smart set (regression) Revset calls use to return a list. Graft use to mutate that list. We cannot do this anymore leading to a crash when grafting multiple changeset with a revset. File ".../mercurial/commands.py", line 3117, in graft revs.remove(rev) AttributeError: '_addset' object has no attribute 'remove' We are late in code-freeze so we make the shortest possible fix by turning it back to a list.
Mon, 28 Apr 2014 15:09:23 -0700 help: clarify distinction among `contains`/`file`/`filelog` stable
Greg Hurrell <glh@fb.com> [Mon, 28 Apr 2014 15:09:23 -0700] rev 21199
help: clarify distinction among `contains`/`file`/`filelog` For a Mercurial new-comer, the distinction between `contains(x)`, `file(x)`, and `filelog(x)` in the "revsets" help page may not be obvious. This commit tries to make things more obvious (text based on an explanation from Matt in an FB group thread).
Thu, 24 Apr 2014 16:47:22 +0200 discovery: don't report all "unsynced" remote heads (issue4230) stable
Mads Kiilerich <madski@unity3d.com> [Thu, 24 Apr 2014 16:47:22 +0200] rev 21198
discovery: don't report all "unsynced" remote heads (issue4230) 8a9e0b523d2d made discovery more helpful - too helpful for some extreme use cases. Instead, we arbitrarily limit the list it at 4 and add 'or more'.
Wed, 23 Apr 2014 13:51:35 +0200 rebase: don't abort if we're asked to rebase an empty revset stable
Julien Cristau <julien.cristau@logilab.fr> [Wed, 23 Apr 2014 13:51:35 +0200] rev 21197
rebase: don't abort if we're asked to rebase an empty revset The documentation says we exit 1 if we have nothing to do, so avoid breaking that contract when we're passed an empty revset. This was changed in http://www.selenic.com/hg/rev/a259f7b488ab to improve the error message; keep the improved message, just not the abort.
Fri, 25 Apr 2014 22:34:09 -0400 largefiles: remove directories emptied after their files are moved (issue3515) stable
Matt Harbison <matt_harbison@yahoo.com> [Fri, 25 Apr 2014 22:34:09 -0400] rev 21196
largefiles: remove directories emptied after their files are moved (issue3515)
Sat, 26 Apr 2014 18:13:06 +0900 cmdserver: forcibly use L channel to read password input (issue3161) stable
Yuya Nishihara <yuya@tcha.org> [Sat, 26 Apr 2014 18:13:06 +0900] rev 21195
cmdserver: forcibly use L channel to read password input (issue3161) Command server is designed to use the channel protocol even if the server process is accessible to tty, whereas vanilla hg should be able to read password from tty in that case. So it isn't enough to swap sys.stdin: # works only if the server process is detached from the console sys.stdin = self.fin getpass.getpass('') sys.stdin = oldin or test isatty: # vanilla hg can't talk to tty if stdin is redirected if self._isatty(self.fin): return getpass.getpass('') else: ... Since ui.nontty flag is undocumented and command-server channels don't provide isatty(), this change won't affect the other uses of ui._isatty(). issue3161 also suggests to provide some context of messages. I think it can be implemented by using the generic templating function.
Tue, 29 Apr 2014 12:37:36 +0900 killdaemons: correct typo of _check() function caught by pyflakes stable
Yuya Nishihara <yuya@tcha.org> [Tue, 29 Apr 2014 12:37:36 +0900] rev 21194
killdaemons: correct typo of _check() function caught by pyflakes
Tue, 29 Apr 2014 12:35:50 +0900 win32: add missing definition of _ERROR_NO_MORE_FILES caught by pyflakes stable
Yuya Nishihara <yuya@tcha.org> [Tue, 29 Apr 2014 12:35:50 +0900] rev 21193
win32: add missing definition of _ERROR_NO_MORE_FILES caught by pyflakes
Tue, 29 Apr 2014 12:35:02 +0900 exchange: fix invalid reference to bundle2.UnknownPartError caught by pyflakes stable
Yuya Nishihara <yuya@tcha.org> [Tue, 29 Apr 2014 12:35:02 +0900] rev 21192
exchange: fix invalid reference to bundle2.UnknownPartError caught by pyflakes
Tue, 29 Apr 2014 11:02:40 +0900 match: fix NameError 'pat' on overflow of regex pattern length stable
Yuya Nishihara <yuya@tcha.org> [Tue, 29 Apr 2014 11:02:40 +0900] rev 21191
match: fix NameError 'pat' on overflow of regex pattern length 'pat' was renamed to 'regex' in 9d28fd795215.
Sun, 27 Apr 2014 15:09:48 +0900 color: add missing handling of stderr capture introduced by 350dc24a553d stable
Yuya Nishihara <yuya@tcha.org> [Sun, 27 Apr 2014 15:09:48 +0900] rev 21190
color: add missing handling of stderr capture introduced by 350dc24a553d It wouldn't raise exception without this change, but _bufferstates was wrong because of missing _bufferstates.pop() in colorui.popbuffer().
Wed, 23 Apr 2014 20:23:30 +0100 hgweb: replace excanvas.js with a newer version stable
Javi Merino <cibervicho@gmail.com> [Wed, 23 Apr 2014 20:23:30 +0100] rev 21189
hgweb: replace excanvas.js with a newer version The current version of excanvas is unknown. Substitute it with the latest version from the excanvas website: http://code.google.com/p/explorercanvas/ Instead of using the "compiled" version, just use the readable one.
Wed, 23 Apr 2014 23:29:55 +0200 httppeer: reintroduce _abort that accidentally was removed in 167047ba3cfa stable
Mads Kiilerich <madski@unity3d.com> [Wed, 23 Apr 2014 23:29:55 +0200] rev 21188
httppeer: reintroduce _abort that accidentally was removed in 167047ba3cfa Including the missing test coverage that would have caught it.
Mon, 21 Apr 2014 16:13:15 -0700 bundle2: gracefully handle hook abort stable
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 21 Apr 2014 16:13:15 -0700] rev 21187
bundle2: gracefully handle hook abort We make sure any exceptions raised during the whole span of handling bundle2 processing are decorated. This let us catch exceptions raised by hooks prior to transaction commit.
Mon, 21 Apr 2014 17:51:58 -0700 bundle2: gracefully handle PushRaced error during unbundle stable
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 21 Apr 2014 17:51:58 -0700] rev 21186
bundle2: gracefully handle PushRaced error during unbundle Same drill again. We catch the PushRaced error, check if it cames from a bundle2 processing, if so we turn it into a bundle2 with a part transporting error information to be reraised client side.
Mon, 21 Apr 2014 20:04:54 -0700 bundle2: add an error message to push race error stable
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 21 Apr 2014 20:04:54 -0700] rev 21185
bundle2: add an error message to push race error Errors with no explanations makes my uncle Bob sad.
Mon, 21 Apr 2014 18:59:09 -0700 bundle2: fix raising errors during heads checking stable
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 21 Apr 2014 18:59:09 -0700] rev 21184
bundle2: fix raising errors during heads checking If the heads on the server differ from the ones reported seen by the client at bundle time, we raise a PushRaced exception. However, the part raising the exception was broken. To fix it, we move the PushRaced class in the error module so it can be accessible everywhere without an import cycle. A test is also added to prevent regression.
Mon, 21 Apr 2014 16:02:03 -0700 bundle2: gracefully handle UnknownPartError during unbundle stable
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 21 Apr 2014 16:02:03 -0700] rev 21183
bundle2: gracefully handle UnknownPartError during unbundle Same as for Abort error, we catch the error, encode it into a bundle2 reply (expected by the client) and stream this reply. The client processing of the error will raise the exception again.
Tue, 22 Apr 2014 11:41:34 -0700 bundle2: catch UnknownPartError during local push stable
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 22 Apr 2014 11:41:34 -0700] rev 21182
bundle2: catch UnknownPartError during local push When doing local push, UnknownPartError from the server will be raised directly to the client. We need to catch them too.
Mon, 21 Apr 2014 19:43:01 -0700 bundle2: catch UnknownPartError during pull stable
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 21 Apr 2014 19:43:01 -0700] rev 21181
bundle2: catch UnknownPartError during pull We narrow the exception catching while pulling.
Mon, 21 Apr 2014 19:42:51 -0700 bundle2: catch UnknownPartError during push stable
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 21 Apr 2014 19:42:51 -0700] rev 21180
bundle2: catch UnknownPartError during push We narrow the exception catching while unbundling the push reply.
Mon, 21 Apr 2014 19:42:40 -0700 bundle2: use a more specific UnknownPartError when no handler is found stable
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 21 Apr 2014 19:42:40 -0700] rev 21179
bundle2: use a more specific UnknownPartError when no handler is found KeyError is very generic, we need something more specific for proper error handling.
Mon, 21 Apr 2014 15:59:55 -0700 bundle2: make error testing more modular stable
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 21 Apr 2014 15:59:55 -0700] rev 21178
bundle2: make error testing more modular We have more than Abort to test.
Mon, 21 Apr 2014 15:48:52 -0700 bundle2: gracefully handle abort during unbundle stable
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 21 Apr 2014 15:48:52 -0700] rev 21177
bundle2: gracefully handle abort during unbundle Clients expect a bundle2 reply to their bundle2 submission. So we catch the Abort error and turn it into a bundle2 containing a part transporting the exception data. The unbundling of this reply will raise the error again.
Tue, 22 Apr 2014 11:22:41 -0700 bundle2: decorate exception raised during bundle processing stable
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 22 Apr 2014 11:22:41 -0700] rev 21176
bundle2: decorate exception raised during bundle processing This is a small hack to help us do some graceful error handling in bundle2 without major refactoring. See embedded comment for details.
Tue, 22 Apr 2014 10:14:16 -0300 histedit, i18n: replace '+' with concatenation to make hggettext happy stable
Wagner Bruna <wbruna@softwareexpress.com.br> [Tue, 22 Apr 2014 10:14:16 -0300] rev 21175
histedit, i18n: replace '+' with concatenation to make hggettext happy
Tue, 22 Apr 2014 10:12:21 -0300 commands: fix typo in --graph description stable
Wagner Bruna <wbruna@softwareexpress.com.br> [Tue, 22 Apr 2014 10:12:21 -0300] rev 21174
commands: fix typo in --graph description
Tue, 22 Apr 2014 10:12:13 -0300 revset, i18n: add translator comment to "only" stable
Wagner Bruna <wbruna@softwareexpress.com.br> [Tue, 22 Apr 2014 10:12:13 -0300] rev 21173
revset, i18n: add translator comment to "only"
Mon, 21 Apr 2014 20:24:54 +0200 merge: improve notes for listing the bids for ambiguous merges stable
Mads Kiilerich <madski@unity3d.com> [Mon, 21 Apr 2014 20:24:54 +0200] rev 21172
merge: improve notes for listing the bids for ambiguous merges
Fri, 18 Apr 2014 13:33:20 +0200 merge: tell the user when we are using bid merge stable
Mads Kiilerich <madski@unity3d.com> [Fri, 18 Apr 2014 13:33:20 +0200] rev 21171
merge: tell the user when we are using bid merge Bid merge is a new rarely used feature that the user explicitly enabled - we should tell/warn when the user actually is using it, just like we tell when we not are using it. Give a message like note: merging 3b08d01b0ab5+ and adfe50279922 using bids from ancestors 0f6b37dbe527 and 40663881a6dd
Mon, 21 Apr 2014 20:22:14 +0200 merge: fix stray character in bid merge message stable
Mads Kiilerich <madski@unity3d.com> [Mon, 21 Apr 2014 20:22:14 +0200] rev 21170
merge: fix stray character in bid merge message
Mon, 21 Apr 2014 20:18:42 +0200 tests: better test coverage for bid merge stable
Mads Kiilerich <madski@unity3d.com> [Mon, 21 Apr 2014 20:18:42 +0200] rev 21169
tests: better test coverage for bid merge Martin Geisler's test case revealed the previous message argument error.
Mon, 21 Apr 2014 19:53:19 +0200 merge: fix wrong number of arguments for bid merge message stable
Mads Kiilerich <madski@unity3d.com> [Mon, 21 Apr 2014 19:53:19 +0200] rev 21168
merge: fix wrong number of arguments for bid merge message
Mon, 21 Apr 2014 15:08:39 -0500 merge: fix test failures with new merge code on OS X stable
Matt Mackall <mpm@selenic.com> [Mon, 21 Apr 2014 15:08:39 -0500] rev 21167
merge: fix test failures with new merge code on OS X The case collision checker was missing a op entry for 'k'eep.
Sat, 19 Apr 2014 20:12:53 +0200 obsolete: fix one-element tuple in module docstring stable
Martin Geisler <martin@geisler.net> [Sat, 19 Apr 2014 20:12:53 +0200] rev 21166
obsolete: fix one-element tuple in module docstring
Sat, 19 Apr 2014 19:53:46 +0200 obsolete: let N denote number of obsoleted changestes in a marker stable
Martin Geisler <martin@geisler.net> [Sat, 19 Apr 2014 19:53:46 +0200] rev 21165
obsolete: let N denote number of obsoleted changestes in a marker The number of obsoleted changesets is referred to as N later in the docstring.
Sat, 19 Apr 2014 19:52:09 +0200 obsolete: fix language and grammar in module docstring stable
Martin Geisler <martin@geisler.net> [Sat, 19 Apr 2014 19:52:09 +0200] rev 21164
obsolete: fix language and grammar in module docstring
Sat, 19 Apr 2014 15:11:25 +0200 churn: compute padding with unicode strings stable
Isaac Jurado <diptongo@gmail.com> [Sat, 19 Apr 2014 15:11:25 +0200] rev 21163
churn: compute padding with unicode strings Most UTF-8 aware terminals convert multibyte sequences into a single displayed characters. Because the first column is padded by counting bytes, the second column is not perfectly aligned in the presence of non ASCII characters.
Thu, 17 Apr 2014 19:39:04 -0400 Added signature for changeset 564f55b25122 stable
Matt Mackall <mpm@selenic.com> [Thu, 17 Apr 2014 19:39:04 -0400] rev 21162
Added signature for changeset 564f55b25122
Thu, 17 Apr 2014 19:39:00 -0400 Added tag 3.0-rc for changeset 564f55b25122 stable
Matt Mackall <mpm@selenic.com> [Thu, 17 Apr 2014 19:39:00 -0400] rev 21161
Added tag 3.0-rc for changeset 564f55b25122
(0) -10000 -3000 -1000 -120 +120 +1000 +3000 +10000 +30000 tip