Na'Tosha Bard <natosha@unity3d.com> [Fri, 09 Mar 2012 17:11:07 +0100] rev 16248
largefiles: fix check-code errors.
Na'Tosha Bard <natosha@unity3d.com> [Fri, 09 Mar 2012 16:11:52 +0100] rev 16247
largefiles: remove use of underscores that breaks coding convention
Na'Tosha Bard <natosha@unity3d.com> [Fri, 09 Mar 2012 15:26:13 +0100] rev 16246
largefiles: only update changed largefiles when transplanting
Na'Tosha Bard <natosha@unity3d.com> [Fri, 09 Mar 2012 16:45:49 +0100] rev 16245
largefiles: move calculation of largefiles for updating to utility function
Johan Samyn <johan.samyn@gmail.com> [Mon, 12 Mar 2012 13:22:28 +0100] rev 16244
help: add verb to sentence in phases.txt
Michael Bacarella <mbacarella@janestreet.com> [Fri, 09 Mar 2012 15:34:21 -0500] rev 16243
localrepo: fix unpushable repos when using bookmarks (issue3317)
bookmarks is copied to journal.bookmarks differently from how dirstate is
copied to journal.dirstate. The different way is less robust, which can render
the repo unpushable by other users if the first pushing user aborts their
transaction.
The underlying cause is that the copyfile method attempts an unnecessary chmod,
which fails if the user is not the owner of the journal.bookmarks file.
This patch makes the bookmarks journaling more consistent with the rest of the
journaling, and will allow users to update lingering journal.bookmarks files
that they're not the owners of.
Thomas Arendsen Hein <thomas@intevation.de> [Mon, 12 Mar 2012 09:39:30 +0100] rev 16242
extdiff: escape filenames with vim/DirDiff and make quoting work with Windows
Use vim function fnameescape() on filenames.
Use double quotes for arguments so cmd.exe is happy.
Matt Mackall <mpm@selenic.com> [Thu, 08 Mar 2012 15:59:47 -0600] rev 16241
posix: disable cygwin's symlink emulation
A. S. Budden <abudden@gmail.com> [Thu, 08 Mar 2012 20:17:36 +0000] rev 16240
posix: ignore execution bit in cygwin (issue3301)
Paul Boddie <paul@boddie.org.uk> [Sat, 18 Feb 2012 20:10:19 +0100] rev 16239
hgweb: support multi-level repository indexes by enabling descend and collapse
The descend option in hgweb can be used to display all reachable repositories
within a directory hierarchy if set to True. However, all reachable
repositories, regardless of their depth below the root of the hierarchy, are
then listed at the same level - expanded - in the hgweb interface. This patch
adds support for showing only each level of a directory hierarchy, with
subrepositories being shown alongside their parent repositories only at the
appropriate level (because there is no way to navigate to subrepositories from
within repositories), and the contents of directories hidden - collapsed -
behind a link for each directory. To enable this multi-level navigation, a new
option called collapse must be set to True when the descend option is set to
True.
Idan Kamara <idankk86@gmail.com> [Tue, 06 Mar 2012 18:43:05 +0200] rev 16238
mq: no need to delete undo files after strip
repair.strip takes care of that
Idan Kamara <idankk86@gmail.com> [Tue, 06 Mar 2012 18:43:05 +0200] rev 16237
repair: remove undo files after strip
Idan Kamara <idankk86@gmail.com> [Tue, 06 Mar 2012 18:42:52 +0200] rev 16236
localrepo: refactor retrieving of journal/undo files paths
We'd like to remove undo files after stripping
"Yann E. MORIN" <yann.morin.1998@free.fr> [Tue, 06 Mar 2012 23:23:30 +0100] rev 16235
templates/filters: strip quotes from {author|person}
RFC5322 (Internet Message Format) [0] says that the 'display name' of
an internet address [1] (what Mercurial calls 'person') can be quoted
with DQUOTE (ASCII 34: ") if it contains non-atom characters [2].
For example, dot '.' is a non-atom character. Also, DQUOTEs in a
quoted string will be escaped using "\" [2][3].
The current {author|person} template+filter just extracts the part
before an email address as-is. This can look ugly, especially on the
web interface, or when generating output for post-processing...
Moreover, as an example, the Mercurial repository has a bunch of
incoherent uses of DQUOTES in author names. As per Matt's digging:
$ hg log --template "{author|person}\n" | grep '"' | sort | uniq
"Andrei Vermel
"Aurelien Jacobs
"Daniel Santa Cruz
"Hidetaka Iwai
"Hiroshi Funai"
"Mathieu Clabaut
"Paul Moore
"Peter Arrenbrecht"
"Rafael Villar Burke
"Shun-ichi GOTO"
"Wallace, Eric S"
"Yann E. MORIN"
Josef "Jeff" Sipek
Radoslaw "AstralStorm" Szkodzinski
Fix the 'person' filter to remove leading and trailing DQUOTES,
and unescape remaining DQUOTES.
Given this author: "J. \"random\" DOE" <john@doe.net>
before: {author|person} : "J. \"random\" DOE"
after: {author|person} : J. "random" DOE
For the Mercurial repository, that leaves us with two authors with
DQUOTES, in acceptable positions:
$ hg log --template "{author|person}\n" | grep '"' | sort | uniq
Josef "Jeff" Sipek
Radoslaw "AstralStorm" Szkodzinski
[0] https://tools.ietf.org/html/rfc5322
[1] https://tools.ietf.org/html/rfc5322#section-3.4
[2] https://tools.ietf.org/html/rfc5322#section-3.2.4
[3] https://tools.ietf.org/html/rfc5322#section-3.2.1
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Matt Mackall <mpm@selenic.com> [Thu, 08 Mar 2012 15:59:44 -0600] rev 16234
check-code: check for % inside _()
Matt Mackall <mpm@selenic.com> [Thu, 08 Mar 2012 15:59:41 -0600] rev 16233
patchbomb: add (optional) note to 0 of 0 prompt
Matt Mackall <mpm@selenic.com> [Thu, 08 Mar 2012 15:59:33 -0600] rev 16232
merge with stable
Matt Mackall <mpm@selenic.com> [Thu, 08 Mar 2012 13:35:27 -0600] rev 16231
i18n: fix all remaining uses of % inside _()
Javi Merino <cibervicho@gmail.com> [Wed, 07 Mar 2012 23:21:11 +0000] rev 16230
update: don't translate the abort message twice
The string representation of util.Abort() is translated when
merge.update() raises the exception. For languages with characters
out of the valid ascii range, if we feed them again to i18n.gettext()
mercurial dies with:
[...]
File "/home/javi/src/mercurial/mercurial/hg-mpm/mercurial/commands.py", line 4287, in postincoming
ui.warn(_("not updating: %s\n" % str(inst)))
File "/home/javi/src/mercurial/mercurial/hg-mpm/mercurial/i18n.py", line 42, in gettext
u = u'\n\n'.join([p and t.ugettext(p) or '' for p in paragraphs])
File "/usr/lib/python2.7/gettext.py", line 404, in ugettext
return unicode(message)
UnicodeDecodeError: 'ascii' codec can't decode byte 0xd0 in position 14: ordinal not in range(128)
To reproduce this error, just try to pull a changeset that crosses
branches with LANG=ru_RU.UTF-8
Matt Mackall <mpm@selenic.com> [Sun, 04 Mar 2012 17:14:30 -0600] rev 16229
merge with stable
Matt Mackall <mpm@selenic.com> [Sun, 04 Mar 2012 17:12:12 -0600] rev 16228
rebase: move bookmarks as needed with pull --rebase (issue3285)
Matt Mackall <mpm@selenic.com> [Sun, 04 Mar 2012 16:48:04 -0600] rev 16227
merge with stable
Jim Hague <jim.hague@acm.org> [Thu, 01 Mar 2012 14:42:23 +0000] rev 16226
bugzilla: correct comment typo
Javi Merino <cibervicho@gmail.com> [Thu, 01 Mar 2012 23:29:52 +0000] rev 16225
tests: ignore the return code of chmod in test-inherit-mode
In freebsd, a newly created directory has the same group as the parent
directory by default. That means that the test directory created by
test-inherit-mode.t is owned by root's group, so "chmod g+s .hg/store"
fails to set the SGID bit and returns 1. If we ignore chmod's return
code, the testsuite passes again.
Jim Hague <jim.hague@acm.org> [Thu, 01 Mar 2012 14:50:31 +0000] rev 16224
bugzilla: add xmlrpcemail submission for Bugzilla 3.6 email interface
Some of the formatting details required for bug submission via email
changed between Bugzilla 3.4 and 3.6. Bugzilla 3.4 requires lines of
the form '@fieldname = value', while 3.6 wants '@fieldname value'.
Also the field @bug_id in 3.4 becomes @id in 3.6.
Bugzilla up to and including 4.0 also recognises the 3.4 format. To save
surprises in the future, check the Bugzilla version and use the 3.6
format from all major versions >= 4. At some point we will
drop support for Bugzilla prior to 3.6 and support the new format only.
Jim Hague <jim.hague@acm.org> [Thu, 01 Mar 2012 15:27:24 +0000] rev 16223
bugzilla: allow change comment to mark bugs fixed
Add a second regular expression used when scanning change comments.
Bugs matched by this new regular expression have the bug comments and
optionally hours updated as with the first regular expression, but they
are also marked as fixed.
The bug status and resolution to set to mark a bug as fixed can be
configured. By default status is set to RESOLVED and resolution to
FIXED, the default Bugzilla settings.
For example, a change comment containing 'Fixes 1234 h1.5' will be
added to bug 1234, the bug will have its working time increased by
1.65 hours, and the bug will be marked RESOLVED/FIXED.
Change comments may contain both bug update and fix instructions. If
the same bug ID occurs in both, the last instruction found takes
precedence.
The patch adds new bug states 'bug_status' and 'resolution' and actions
to update them to the XMLRPC and XMLRPC/email access methods. XMLRPC does
not support marking bugs as fixed when used with Bugzilla versions prior
to 4.0. When used with an earlier Bugzilla version, a warning is issued
and only comment and hours updated.
Jim Hague <jim.hague@acm.org> [Thu, 01 Mar 2012 15:25:37 +0000] rev 16222
bugzilla: extract optional hours from commit message and update bug time
If an 'hours' group is present in the bug matching regular expression,
and that group contains a float value, update the bug working time in
Bugzilla with those hours.
The patch adds a key 'hours' to the bug state dictionary, and adds
support for the key to the XMLRPC and XMLRPC/email access methods.
The MySQL access method is not supported; a warning is given.
Jim Hague <jim.hague@acm.org> [Thu, 01 Mar 2012 14:51:40 +0000] rev 16221
bugzilla: modify access interface to include new bug states
As a first step to allowing comment text to update bug state, rework the
Bugzilla access interface to use a dictionary keyed on bug ID. Dictionary
entries will contain new state info in future changes.
Steve Borho <steve@borho.org> [Sat, 03 Mar 2012 23:14:31 -0600] rev 16220
wix: add phases help text and two more translations (issue 3288)
Wagner Bruna <wbruna@softwareexpress.com.br> [Fri, 02 Mar 2012 11:46:18 -0300] rev 16219
debugbuilddag: fix starting a dag on a non-default branch
Patrick Mezard <patrick@mezard.eu> [Fri, 24 Feb 2012 11:02:21 +0100] rev 16218
debugrevspec: pretty print output
Before:
('func', ('symbol', 'reverse'), ('func', ('symbol', 'sort'), ('list', ('or',
('symbol', '2'), ('symbol', '3')), ('symbol', 'date'))))
After:
(func
('symbol', 'reverse')
(func
('symbol', 'sort')
(list
(or
('symbol', '2')
('symbol', '3'))
('symbol', 'date'))))
v2:
- Rebased on stable to avoid having to merge tests output
Ross Lagerwall <rosslagerwall@gmail.com> [Fri, 02 Mar 2012 21:43:55 +0200] rev 16217
readme: mention how to run in-place
The README describes how to install Mercurial but it does not describe how to
run it in place (for developers). This adds a short paragraph to the README
describing how to do run Mercurial inplace.
Matt Mackall <mpm@selenic.com> [Fri, 02 Mar 2012 14:12:06 -0600] rev 16216
merge with stable
Matt Mackall <mpm@selenic.com> [Fri, 02 Mar 2012 14:11:06 -0600] rev 16215
merge with i18n
Wagner Bruna <wbruna@softwareexpress.com.br> [Wed, 29 Feb 2012 13:17:41 -0300] rev 16214
i18n-pt_BR: synchronized with 6b52963ced73
Wagner Bruna <wbruna@softwareexpress.com.br> [Wed, 29 Feb 2012 13:16:51 -0300] rev 16213
merge with i18n
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Wed, 29 Feb 2012 21:09:21 +0900] rev 16212
i18n-ja: synchronized with 87d37aceb5e3
Wagner Bruna <wbruna@softwareexpress.com.br> [Fri, 24 Feb 2012 19:50:03 -0200] rev 16211
i18n-pt_BR: synchronized with 60101427d618
Brendan Cully <brendan@kublai.com> [Fri, 02 Mar 2012 10:43:06 -0800] rev 16210
Merge with stable
Brendan Cully <brendan@kublai.com> [Fri, 02 Mar 2012 10:42:12 -0800] rev 16209
setup.py: don't call splitlines twice on the output of xcodebuild (issue3277)
Thomas Arendsen Hein <thomas@intevation.de> [Fri, 02 Mar 2012 09:57:09 +0100] rev 16208
merge with stable
Thomas Arendsen Hein <thomas@intevation.de> [Fri, 02 Mar 2012 09:54:45 +0100] rev 16207
merge stable heads
Thomas Arendsen Hein <thomas@intevation.de> [Thu, 01 Mar 2012 17:45:13 +0100] rev 16206
merge with stable
mercurial/filemerge.py in the default branch does not need the additional
unlink calls, because the unlink calls at the end of filemerge.filemerge()
are called for internal:dump, too.
Thomas Arendsen Hein <thomas@intevation.de> [Thu, 01 Mar 2012 17:35:12 +0100] rev 16205
filemerge: remove temporary files when using internal:dump as merge-tool
Matt Mackall <mpm@selenic.com> [Thu, 01 Mar 2012 16:28:24 -0600] rev 16204
Added signature for changeset 53e2cd303ecf
Matt Mackall <mpm@selenic.com> [Thu, 01 Mar 2012 16:27:59 -0600] rev 16203
Added tag 2.1.1 for changeset 53e2cd303ecf
Idan Kamara <idankk86@gmail.com> [Thu, 01 Mar 2012 17:49:59 +0200] rev 16202
dirstate: filecacheify _ignore (issue3278)
This still doesn't handle the case where a command is run with
--config ui.ignore=path since we only look for changes in .hgignore.
Idan Kamara <idankk86@gmail.com> [Thu, 01 Mar 2012 17:42:49 +0200] rev 16201
dirstate: filecacheify _branch
The opener is relative to .hg, use it in a subclass of filecache to compute
the final path.
Idan Kamara <idankk86@gmail.com> [Thu, 01 Mar 2012 17:39:58 +0200] rev 16200
dirstate: add filecache support
Idan Kamara <idankk86@gmail.com> [Thu, 01 Mar 2012 17:39:58 +0200] rev 16199
scmutil: add join method to opener to construct path relative to base
Useful when we only have the opener without the base path used when it was
constructed.
Idan Kamara <idankk86@gmail.com> [Thu, 01 Mar 2012 17:39:58 +0200] rev 16198
filecache: refactor path join logic to a function
New users of filecache use different names for the function used to compute
the runtime path of the cached file.
Users should subclass filecache and provide their own version of this
function to call the appropriate join function on 'obj' (an instance
of the class that its member function was decorated).
Matt Mackall <mpm@selenic.com> [Wed, 29 Feb 2012 17:27:24 -0600] rev 16197
merge with stable
Friedrich Kastner-Masilko <kastner_masilko@at.festo.com> [Wed, 29 Feb 2012 14:24:57 +0100] rev 16196
subrepo: fix for merge inconsistencies
Merging ancestors with children is allowed if they are on different
named branches. This did not work for subrepo merges before. To fix
this inconsistency, the mergefunc() will now use the simple update
path only if both versions are on the same named branch. If not, they
get merged into a new changeset, just as if you did the merge from the
subrepo's root directly.
Pierre-Yves David <pierre-yves.david@logilab.fr> [Wed, 29 Feb 2012 14:41:11 +0100] rev 16195
bundlerepo: bundle repos should be non-publishing (issue3266)
Bundle repo contains both the bundle content and the content of the repository
used as a base. This create bugs with phases exchange because the "remote"
repository claim to contains changeset it does not. The easiest way to fix this
bug is to ensure a bundle repo as non publishing. This way changeset will be
seen in the same phase than locally.
This patch does not alter in which phase bundle revision are seen. For now they
are seen as if an old client had add them on the remote: They inherit their
phase from parent whatever the parent is. This is to be fixed in a later patch
Gilles Moris <gilles.moris@free.fr> [Wed, 29 Feb 2012 09:34:19 +0100] rev 16194
bookmarks: restore python 2.4 compatibility
Remove py25 'try except finally' clause.
Jim Hague <jim.hague@acm.org> [Wed, 29 Feb 2012 17:43:03 +0000] rev 16193
bugzilla: stop XMLRPC requests from requesting gzipped responses
Python 2.7 introduced support for gzip encoding in xmlrpclib.Transport.
We do our own handling of responses, and don't currently support gzip encoding.
So to run successfully under Python 2.7 with a web server configured
to gzip encode, stop XMLRPC requests from announcing gzip encoding support.
Matt Mackall <mpm@selenic.com> [Tue, 28 Feb 2012 21:17:53 -0600] rev 16192
merge with stable
Idan Kamara <idankk86@gmail.com> [Tue, 28 Feb 2012 23:47:46 +0200] rev 16191
update: delete bookmarks.current when explicitly updating to a rev (issue3276)
Patrick Mezard <patrick@mezard.eu> [Tue, 28 Feb 2012 10:06:35 +0100] rev 16190
convert: ignore blank lines in mapfiles (issue3286)
Idan Kamara <idankk86@gmail.com> [Tue, 28 Feb 2012 01:07:55 +0200] rev 16189
update: don't move the active bookmark if a rev is specified with -r
Patrick Mezard <patrick@mezard.eu> [Mon, 27 Feb 2012 18:23:18 +0100] rev 16188
mq: fix qapplied --last and qprev documentation (issue3282)
qapplied --last is qprev not qtop.
v2:
- Replace "previous" with "preceding" as suggested here and there
Greg Ward <greg@gerg.ca> [Mon, 27 Feb 2012 08:54:26 -0500] rev 16187
setup: handle output from Apple's Xcode 4.3 better (issue3277)
Apparently, it prints nothing at all if the user installed only the
command-line tools. In that case, don't try to parse the empty output
-- just assume they have Xcode >= 4.
Patrick Mezard <patrick@mezard.eu> [Sun, 26 Feb 2012 17:12:15 +0100] rev 16186
graphlog: apply file filters --patch/--stat output
When passing --patch/--stat, file filters have to be applied to generate the
correct diff or stat output:
- Without --follow, the static match object can be reused
- With --follow, the files displayed at revision X are the ancestors of
selected files at parent revision. To do this, we reproduce the ancestry
calculations done by --follow, lazily.
test-glog.t changes show that --patch output is not satisfying because renames
are reported as copies. This can probably be fixed by:
- Without --follow: compute files to display, look for renames sources and
extend the matcher to include them.
- With --follow: detect .path() transitions between parent/child filectx,
filter them using the linked changectx .removed() field and extend fcache
with them.
Patrick Mezard <patrick@mezard.eu> [Sun, 26 Feb 2012 17:10:57 +0100] rev 16185
context: add followfirst arg to filectx and workingfilectx
When _followfirst() revset was introduced it seemed to be the sole user of such
an argument, so filectx.ancestors() was duplicated and modified instead. It now
appears this argument could be used when computing the set of files to be
considered when --patch or --stat are passed along with --follow FILE.
Patrick Mezard <patrick@mezard.eu> [Sun, 26 Feb 2012 17:10:57 +0100] rev 16184
graphlog: fix --removed
"hg log --removed FILE" does not return changesets where FILE was removed, but
ones where FILE was changed and possibly removed. The flag is really here to
disable walkchangerevs() fast path, which cannot see file removals by scanning
filelogs.
Patrick Mezard <patrick@mezard.eu> [Sun, 26 Feb 2012 17:10:56 +0100] rev 16183
test-glog: rewrite more tests using testlog() function
Patrick Mezard <patrick@mezard.eu> [Sun, 26 Feb 2012 17:10:55 +0100] rev 16182
match: consider filesets as "anypats"
Matt suggested this on IRC, I do not think the choice is obvious, but this one
makes things simpler because while filesets are turned into a list of files
into the match objects, it would more be difficult to tell invalid files passed
in pats from those expanded from filesets.
Patrick Mezard <patrick@mezard.eu> [Sun, 26 Feb 2012 17:10:51 +0100] rev 16181
graphlog: evaluate FILE/-I/-X filesets on the working dir
This subtlety is not documented yet but:
- pats/--include/--exclude filesets are evaluated against the working directory
- --rev filesets are reevaluated against every revisions
Patrick Mezard <patrick@mezard.eu> [Sun, 26 Feb 2012 16:56:32 +0100] rev 16180
graphlog: implement --copies
Greg Ward <greg@gerg.ca> [Sat, 18 Feb 2012 16:30:17 -0500] rev 16179
test-check-code-hg: skip test if not in a working dir (issue3248).
Matt Mackall <mpm@selenic.com> [Sun, 26 Feb 2012 16:45:59 -0600] rev 16178
copies: use ctx.dirs() for directory rename detection
Matt Mackall <mpm@selenic.com> [Sun, 26 Feb 2012 15:51:56 -0600] rev 16177
copies: fix mergecopies doc mapping direction
Matt Mackall <mpm@selenic.com> [Sat, 25 Feb 2012 16:48:07 -0600] rev 16176
merge with stable
Patrick Mezard <patrick@mezard.eu> [Sat, 25 Feb 2012 19:39:55 +0100] rev 16175
log: restore cache used by --copies
The {filelog -> linkrev -> copyfrom} cache was refactored and broken by:
changeset: 10060:f780b1098efc
user: Patrick Mezard <pmezard@gmail.com>
date: Sun Dec 13 18:06:24 2009 +0100
summary: templatekw: change {file_copies} behaviour, add
{file_copies_switch}
With --copies, this cache is accessed for every touched file of every revision.
Unfortunately it is recreated for every revision, which means filelogs are
parsed again. This patch makes the cache global again for all revisions.
A couple of indicative timings of "hg log --copies", before and after:
hg: 44s / 5s
mozilla --limit 10000: 3m51s / 2m32s
mozilla: 23m46s / 12m23s
I do not know any good tool to trace memory consumption of these runs for
comparisons. Watching the full mozilla run in top, the process did not seem to
misbehave.
Patrick Mezard <patrick@mezard.eu> [Sat, 25 Feb 2012 22:11:36 +0100] rev 16174
graphlog: implement --follow-first
log --graph --follow-first FILE cannot be compared with the regular version
because it never worked: --follow-first is not taken in account in
walkchangerevs() fast path and is explicitely bypassed in FILE case in
walkchangerevs() nested iterate() function.
Patrick Mezard <patrick@mezard.eu> [Sat, 25 Feb 2012 22:11:36 +0100] rev 16173
graphlog: implement --follow with file arguments
Patrick Mezard <patrick@mezard.eu> [Sat, 25 Feb 2012 22:11:35 +0100] rev 16172
test-glog: test multiple --prune values
Patrick Mezard <patrick@mezard.eu> [Sat, 25 Feb 2012 22:11:34 +0100] rev 16171
graphlog: restore FILE glob expansion on Windows
On platforms not supporting shell expansion, scmutil.match() performs glob
expansion on 'pats' arguments. But _matchfiles() revset calls match.match()
directly, bypassing this behaviour. To avoid duplicating scmutil.match(), a
secondary scmutil.matchandpats() is introduced returning both the match object
and the expanded inputs. Note the expanded pats are also needed in the fast
path, and will be used by --follow code path.
Patrick Mezard <patrick@mezard.eu> [Sat, 25 Feb 2012 21:51:13 +0100] rev 16170
glog: restore multiple --rev test lost in rebasing
Matt Mackall <mpm@selenic.com> [Sat, 25 Feb 2012 14:22:58 -0600] rev 16169
copies: remove checkdirs options
This removes the undocumented merge.followdirs option, which has
always been true.
Matt Mackall <mpm@selenic.com> [Fri, 24 Feb 2012 18:21:06 -0600] rev 16168
copies: add docstring for mergecopies
Matt Mackall <mpm@selenic.com> [Fri, 24 Feb 2012 16:52:32 -0600] rev 16167
addremove: return 1 if we failed to handle any explicit files
Matt Mackall <mpm@selenic.com> [Fri, 24 Feb 2012 16:16:48 -0600] rev 16166
merge with stable
Patrick Mezard <patrick@mezard.eu> [Fri, 24 Feb 2012 20:57:59 +0100] rev 16165
log: fix --follow FILE ancestry calculation
Currently, --follow FILE looks for a FILE filelog, scans it and collects
linkrevs and renames, then filters them. The problem is the filelog scan does
not start at FILE filenode in parent revision but at the last filelog revision.
So:
- Files not in the parent revision can be followed, the starting node is
unexpected
- Files in the parent revision can be followed from an incorrect starting
node.
This patch makes log --follow FILE fail if FILE is not in parent revision, and
computes ancestors of the parent revision FILE filenode.
Patrick Mezard <patrick@mezard.eu> [Fri, 24 Feb 2012 20:56:18 +0100] rev 16164
test-glog: extend a test before fixing --follow issues
The changes add a lot of noise to the test output, I prefer to separate it from
the changes which are to be introduced by --follow fixes.
Matt Mackall <mpm@selenic.com> [Fri, 24 Feb 2012 16:09:15 -0600] rev 16163
graft: use proper revisions for copy detection (issue3265)
Wagner Bruna <wbruna@softwareexpress.com.br> [Fri, 24 Feb 2012 19:11:35 -0200] rev 16162
convert: fix typos in error messages
Patrick Mezard <patrick@mezard.eu> [Thu, 23 Feb 2012 18:05:20 +0100] rev 16161
graphlog: paths/-I/-X handling requires a new revset
The filtering logic of match objects cannot be reproduced with the existing
revsets as it operates at changeset files level. A changeset touching "a" and
"b" is matched by "-I a -X b" but not by "file(a) and not file(b)".
To solve this, a new internal "_matchfiles(...)" revset is introduced. It works
like "file(x)" but accepts more than one argument and its arguments are
prefixed with "p:", "i:" and "x:" to be used as patterns, include patterns or
exclude patterns respectively.
The _matchfiles revset is kept private for now:
- There are probably smarter ways to pass the arguments in a user-friendly way
- A "rev:" argument is likely appear at some point to emulate log command
behaviour with regard to filesets: they are evaluated for the parent revision
and applied everywhere instead of being reevaluated for each revision.
Patrick Mezard <patrick@mezard.eu> [Thu, 23 Feb 2012 17:55:07 +0100] rev 16160
graphlog: imitate log slowpath when inputs are explicit files
Patrick Mezard <patrick@mezard.eu> [Thu, 23 Feb 2012 17:54:42 +0100] rev 16159
graphlog: paths arguments must be or'ed
Patrick Mezard <patrick@mezard.eu> [Thu, 23 Feb 2012 11:21:30 +0100] rev 16158
graphlog: rewrite --rev like all other options
Patrick Mezard <patrick@mezard.eu> [Thu, 23 Feb 2012 11:21:04 +0100] rev 16157
graphlog: --branch and --only-branch are the same
Handling the aliasing in fancyopts would be cleaner but I do not want to make
this change for stable.
Patrick Mezard <patrick@mezard.eu> [Thu, 23 Feb 2012 17:46:57 +0100] rev 16156
test-check-code-hg: fix xargs exit status on OSX
When xargs subcommand invocation fails in a normal way, GNU xargs returns 123
and BSD one returns 1.
Martin Geisler <mg@aragost.com> [Thu, 23 Feb 2012 13:37:10 +0100] rev 16155
largefiles: respect store.createmode and avoid extra file copy
Before, a tempfile was used to create a temp file was created with 600
permissions and the uploaded data was written into it. This file was
then *copied* to .hg/largefiles/<hash>.
We now simply use atomictempfile to write the data to a temp file with
the right permissions and then rename that into place.
Martin Geisler <mg@aragost.com> [Thu, 23 Feb 2012 13:37:10 +0100] rev 16154
largefiles: respect store.createmode in basestore.get
This replaces another use of tempfile with atomictempfile. The problem
with tempfile is that it creates files with 600 permissions instead of
respecting repo.store.createmode.
Martin Geisler <mg@aragost.com> [Thu, 23 Feb 2012 13:22:55 +0100] rev 16153
largefiles: use repo.store.createmode for new files in .hg/largefiles
Before, the mode was copied from the file in the working copy. This is
inconsistent with how Mercurial normally creates files inside the .hg
folder. This can lead to a situation where you can read the files
under .hg/store but not under .hg/largefiles and so a clone will fail
if it needs to access a largefile.