Renato Cunha <renatoc@gmail.com> [Wed, 14 Jul 2010 23:03:21 -0300] rev 11567
removed exception args indexing (not supported by py3k)
Py3k removed __getitem__ for exception classes. The correct way of
getting the exception arguments is by using the args method.
Renato Cunha <renatoc@gmail.com> [Wed, 14 Jul 2010 22:59:57 -0300] rev 11566
util: use fakebuffer as buffer in py3k
There's no buffer type in py3k, util.py has a function, called
fakebuffer, that implements a similar API. This patch implements
fakebuffer as a memoryview wrapper in py3k.
Renato Cunha <renatoc@gmail.com> [Wed, 14 Jul 2010 22:59:43 -0300] rev 11565
util: improved the check for the existence of the 'buffer' builtin
2to3 is unable to translate '__builtin__' calls to 'builtins' when
hasattr is used (as in hasattr(__builtin__, buffer)). Translating the
check to the format
try:
whatever
except NameError
# define whatever
__builtin__.whatever = whatever
is a correct way of checking for the name and has the benefit of being
translated by 2to3. This patch implements the same idea for the
aforementioned example.
Renato Cunha <renatoc@gmail.com> [Wed, 14 Jul 2010 22:58:29 -0300] rev 11564
record: removed 'has_key' usage
Py3k has removed the dictionary has_key method. This patch implements
a one argument function that can be used as a callback by hg.revert in
the record extension.
Martin Geisler <mg@lazybytes.net> [Wed, 14 Jul 2010 21:30:50 +0200] rev 11563
Merge with stable
Joel Rosdahl <joel@rosdahl.net> [Thu, 08 Jul 2010 22:44:15 +0200] rev 11562
test-log: Add test for "hg log -pf" (
issue647)
To test
f786fc4b8764 we analyze this repo:
0 | 1 | 2 | 3 | 4
a ------------> b
\
b -> dir/b -------> e
d
We follow dir/b and expects rev 0, 1 and 2.
A log following b will surprisingly report rev 0 and 1. That's because the
content and the parents are the same in rev 1 and rev 3, and the revlog entry
from rev 1 is thus reused in rev 3 even though the revlink is incorrect.
Note that if we follow e then we will get all revs, including rev 3, because b
gets added to the set of interesting filenames we are following through all
revisions. That might be surprising, but that's (currently) how it is.
Original test case by Joel Rosdahl <joel@rosdahl.net>
Original test reviewed by Nicolas Dumazet <nicdumz@gmail.com>
Brodie Rao <brodie@bitheap.org> [Wed, 14 Jul 2010 11:02:20 -0400] rev 11561
bookmarks: ensure current bookmark is updated when specified with -r .
"hg bookmark -r . foo" should be equivalent to "hg bookmark foo".
Martin Geisler <mg@lazybytes.net> [Wed, 14 Jul 2010 20:25:31 +0200] rev 11560
subrepos: let caller specify a filename for SVN commands
Martin Geisler <mg@lazybytes.net> [Wed, 14 Jul 2010 20:25:31 +0200] rev 11559
subrepo: add abstract superclass for subrepo classes
Martin Geisler <mg@lazybytes.net> [Wed, 14 Jul 2010 20:25:31 +0200] rev 11558
archival: remove prefix argument from archivers
When the archivers work on the full we can reuse the same archiver
with different prefixes (for different subrepositories).
Martin Geisler <mg@lazybytes.net> [Wed, 14 Jul 2010 20:25:31 +0200] rev 11557
archival: move commands.archive.guess_type to archival.guesskind
The list of suffixes for each kind of archive belongs in archival.
Renamed function to fit with out code style.
Henrik Stuart <hg@hstuart.dk> [Wed, 14 Jul 2010 20:41:01 +0200] rev 11556
merge stable to default
Brodie Rao <brodie@bitheap.org> [Thu, 01 Jul 2010 19:23:26 -0500] rev 11555
color/progress: subclass ui instead of using wrapfunction (
issue2096)
This resolves the issue of hg cmd --mq not being colorized. This was due
to color wrapping only the instance of ui passed to dispatch._runcommand(),
which isn't the same ui object that mq.mqcommand() receives. After dispatch
calls extensions.loadall(), it makes sure any changes to ui.__class__ in
uisetup are propagated.
progress is updated to wrap ui in the same manner because wrapfunction
doesn't play well when ui.__class__ has been replaced by another extension
(orig will point to the old class method instead of color's).
Henrik Stuart <hg@hstuart.dk> [Wed, 14 Jul 2010 19:44:49 +0200] rev 11554
merge with stable
Henrik Stuart <hg@hstuart.dk> [Wed, 14 Jul 2010 19:44:12 +0200] rev 11553
merge crew and main
Henrik Stuart <hg@hstuart.dk> [Wed, 14 Jul 2010 19:43:31 +0200] rev 11552
merge crew and main
Dirkjan Ochtman <dirkjan@ochtman.nl> [Tue, 13 Jul 2010 17:30:29 +0200] rev 11551
commands: addremove does similarity 100 by default
Nicolas Dumazet <nicdumz.commits@gmail.com> [Tue, 13 Jul 2010 22:56:01 +0900] rev 11550
merge with stable
Renato Cunha <renatoc@gmail.com> [Fri, 02 Jul 2010 16:22:59 -0300] rev 11549
inotify: Port of the C module to py3k.
This patch accomplishes the port of the inotify C module to py3k by #including
mercurial's util.h file, and by defining the necessary boilerplate code
required by py3k through conditional compilation.
Renato Cunha <renatoc@gmail.com> [Fri, 02 Jul 2010 16:21:46 -0300] rev 11548
inotify: Better implementation of the event string representation.
This patch reimplements the event_repr function. It got mostly rewritten to
eliminate the need for conditional compilation of the module when building in
py3k. The trick there (thanks to Antoine Pitrou) is to use the % operator to
let the python interpreter format the string to be returned.
Renato Cunha <renatoc@gmail.com> [Fri, 02 Jul 2010 16:21:42 -0300] rev 11547
inotify: make proper use of Python API to get object size.
In older python versions, it was ok to access an object's type by accessing its
ob_type "member". With python 2.6+, the proper way of accessing it is via
Py_TYPE(object). This patch implements the correct call for the inotify
extension. When under python < 2.6, this macro is defined in mercurial's
util.h.
Nicolas Dumazet <nicdumz.commits@gmail.com> [Tue, 13 Jul 2010 22:30:01 +0900] rev 11546
mq: qrepo.add(mq.added) inside save_dirty inside of doing it manually
This should make the MQ API more transparent: callers only have to
call save_dirty, and no mq.added magic or knowledge is required.
Renato Cunha <renatoc@gmail.com> [Tue, 06 Jul 2010 22:22:18 -0300] rev 11545
inotify: check all components of filenames against hgignore (
issue884)
With inotify enabled, files that should be ignored could be detected as
untracked by mercurial. This behavior was wrong because inotify's filestatus
implementation only matched filenames against ignore patterns, instead of
checking if other elements of their paths matched them. This patch fixes the
behavior by checking the file paths against the ignore patterns.
A new test has also been added to the main inotify test to prevent any
regressions.
Nicolas Dumazet <nicdumz.commits@gmail.com> [Fri, 02 Jul 2010 15:05:21 +0900] rev 11544
hg.clone: fix branch value when passing a repo object (
issue2267)
Since
3d6915f5a2bb the branch argument for addbranchrevs should be a tuple:
(hashbranch, branches)
The right empty value therefore is (None, []) instead of None.
Nicolas Dumazet <nicdumz.commits@gmail.com> [Tue, 06 Jul 2010 15:05:03 +0900] rev 11543
test-bheads: use a case-insensitive set of filenames (
issue2274)
This prevents false negatives on case-insensitive systems.
Nicolas Dumazet <nicdumz.commits@gmail.com> [Tue, 06 Jul 2010 18:24:04 +0900] rev 11542
mail: ensure that Python2.4 to 2.7 use the same header format
Wrapping format for long headers changed in Python2.7 (see Python
issue1974).
Adopt the Python2.7 behaviour and backport it for 2.4-2.6
Nicolas Dumazet <nicdumz.commits@gmail.com> [Mon, 05 Jul 2010 19:49:54 +0900] rev 11541
filelog: cmp: don't read data if hashes are identical (
issue2273)
filelog.renamed() is an expensive call as it reads the filelog if p1 == nullid.
It's more efficient to first compute the hash, and to bail early if
the computed hash is the same as the stored nodeid.
'samehashes' variable is not strictly necessary, but helps for comprehension.
Nicolas Dumazet <nicdumz.commits@gmail.com> [Mon, 05 Jul 2010 18:43:46 +0900] rev 11540
filelog: test behaviour for data starting with "\1\n"
Because "\1\n" is a separator for metadata, data starting with "\1\n" is
handled specifically. It was not tested.
size() call return incorrect data if original data had been "\1\n-escaped".
There's no obvious way to fix it for now, just flag the error in the code
and add an "expected failure" kind of test.
Nicolas Dumazet <nicdumz.commits@gmail.com> [Fri, 09 Jul 2010 11:02:39 +0900] rev 11539
cmp: document the fact that we return True if content is different
This is similar to the __builtin__.cmp behaviour, but still not
straightforward, as the dailylife meaning of a comparison usually is
"find out if they are different".
Nicolas Dumazet <nicdumz.commits@gmail.com> [Fri, 09 Jul 2010 11:59:48 +0900] rev 11538
workingfilectx.cmp: invert boolean return value
Apparently we mostly used filectx.cmp(workingfilectx.read()), so no error
was ever triggered, but since all cmp() methods return True when content
are different, that == should in fact be !=
Nicolas Dumazet <nicdumz.commits@gmail.com> [Mon, 12 Jul 2010 19:04:07 +0900] rev 11537
rebase: small cosmetic cleanups
Giorgos Keramidas <keramida@ceid.upatras.gr> [Mon, 12 Jul 2010 09:19:28 +0300] rev 11536
rebase: add a test for committed MQ patches (
59bd20451ab6)
Renato Cunha <renatoc@gmail.com> [Fri, 02 Jul 2010 16:21:40 -0300] rev 11535
util.h: Defined macros for working "with" PyStrings in py3k.
PyString* functions are defined as PyUnicode* to permit correct compilation in
both python 2.x and 3.x.
Renato Cunha <renatoc@gmail.com> [Fri, 02 Jul 2010 16:21:38 -0300] rev 11534
util.h: Add a PyInt_AsLong definition for usage in the inotify module.
Renato Cunha <renatoc@gmail.com> [Fri, 02 Jul 2010 16:21:36 -0300] rev 11533
setup.py: Add 'mercurial' as include dir for the inotify compiler.
This patch adds access to util.h for the inotify C module by adding the
"mercurial" directory as an include dir, enabling access to the macros defined
in util.h.
Renato Cunha <renatoc@gmail.com> [Fri, 02 Jul 2010 16:21:34 -0300] rev 11532
setup.py: Adjustments to make setup.py run in py3k.
In py3k, subprocess.Popen.communicate's output are bytes objects. String
literals are Unicode objects. Thus, when a bytes object startswith method is
called, with string literals, it fails. What this patch does is:
* Convert the string (unicode in py3k) literals to bytes objects;
* As "bytes" is not a builtin in python < 2.6, it defines a "b" helper
function that merely returns its argument, as suggested by Antoine Pitrou.
Nicolas Dumazet <nicdumz.commits@gmail.com> [Tue, 13 Jul 2010 20:12:32 +0900] rev 11531
rebase: re-add patches to mq repo after rebase
Since
1b82a26635d7, we are adding patches after the qimport call, and not
inside it anymore. Correct updatemq to match the new behaviour.
Nicolas Dumazet <nicdumz.commits@gmail.com> [Mon, 12 Jul 2010 17:55:23 +0900] rev 11530
mq: reset self.added after the mq transaction instead of inside qimport
It seems wiser to reset mq.added at the end of the mq transaction instead of at
the beginning of a qimport call: this way, calling several times qimport()
without saving mq state in-between does not overwrite the previous value of
mq.added (this happens, for example in rebase, where we import several patches
in a batch before calling .save_dirty() )
Matt Mackall <mpm@selenic.com> [Mon, 12 Jul 2010 17:27:32 -0500] rev 11529
Merge with stable
Wagner Bruna <wbruna@yahoo.com> [Sat, 10 Jul 2010 14:28:38 -0300] rev 11528
i18n-pt_BR: synchronized with
dec57aa0f8ca
Wagner Bruna <wbruna@yahoo.com> [Sat, 10 Jul 2010 14:01:10 -0300] rev 11527
merge with stable
Wagner Bruna <wbruna@softwareexpress.com.br> [Thu, 08 Jul 2010 15:36:14 -0300] rev 11526
i18n-pt_BR: synchronized with
9d905b9769af
Martin Geisler <mg@aragost.com> [Fri, 09 Jul 2010 14:21:45 +0200] rev 11525
Merge with stable
Steve Losh <steve@stevelosh.com> [Wed, 07 Jul 2010 18:49:43 -0400] rev 11524
dispatch: add shell aliases
This patch adds git-style "shell aliases" to Mercurial.
Any alias with a definition beginning with a '!' will be treated as a shell
alias. For example:
[alias]
echo = !echo
qempty = !hg qrefresh -X "`hg root`" ; echo Emptied patch "`hg qtop`"
$ hg echo foo
foo
$ hg qempty
Emptied patch foo
$
Mads Kiilerich <mads@kiilerich.com> [Thu, 08 Jul 2010 15:44:14 +0200] rev 11523
convert: cleanup of filemap help text
Clarify that:
- Specified paths are matched by comparing name of file or directory.
- Line order (thus) doesn't matter.
- Rename doesn't imply include.
Martin Geisler <mg@aragost.com> [Fri, 09 Jul 2010 14:01:55 +0200] rev 11522
check-code: add test for callable
Dan Villiom Podlaski Christiansen <danchr@gmail.com> [Fri, 09 Jul 2010 11:04:00 +0200] rev 11521
extensions: add a few assertions to wrapfunction() and wrapcommand().
Specifically, assert that the given wrapper is callable in both
functions, and assert that the original was also callable in
wrapfunction().
Dan Villiom Podlaski Christiansen <danchr@gmail.com> [Fri, 09 Jul 2010 11:13:45 +0200] rev 11520
extensions: improve language for wrapfunction() docstring.
Dan Villiom Podlaski Christiansen <danchr@gmail.com> [Fri, 09 Jul 2010 10:57:57 +0200] rev 11519
extensions: add docstring for wrapcommand().
Arnab Bose <hirak99@gmail.com> [Fri, 09 Jul 2010 13:31:37 +0200] rev 11518
commands: mention "hg status -C" in addremove help
Martin Geisler <mg@aragost.com> [Wed, 07 Jul 2010 14:29:40 +0200] rev 11517
Merge with stable
Martin Geisler <mg@aragost.com> [Wed, 07 Jul 2010 14:13:23 +0200] rev 11516
test-merge-closedheads: test
cc982ff2dcf8
Robert Bauck Hamar <r.b.hamar@usit.uio.no> [Wed, 07 Jul 2010 14:11:59 +0200] rev 11515
commands: only warn when reopening the workdir's branch
When commiting, a check is made to see if one of the parents is a
closed head. However this did not check that the branch of the commit
is the same as the closed head, so one could get a warning message on
the sequence
hg commit --close-branch
hg branch new-branch
hg commit
or when merging in a closed head.
Martin Geisler <mg@lazybytes.net> [Tue, 06 Jul 2010 20:43:19 +0200] rev 11514
Merge with stable
Yuya Nishihara <yuya@tcha.org> [Sun, 28 Mar 2010 15:23:11 +0900] rev 11513
mq: fixed ENOENT when qrename to new/directory.patch
MQ patch name can contain slashes, e.g. 'foo/bar.patch'.
Currently "qnew foo/bar.patch" works, but
"qrename foo/bar.patch new/dir.patch" fails with
"No such file or directory".
Also added test case for "qnew foo/bar.patch"
Julian Cowley <julian@lava.net> [Fri, 02 Jul 2010 14:14:30 -1000] rev 11512
mercurial.spec: rename docutils to python-docutils in BuildRequires
Even though the name of the project is Docutils, most packagers use
the package name python-docutils to fit into the naming scheme of
other packages written in Python. The name is used by Fedora, EPEL,
DAG, Mandriva, and a few other distributions.