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