Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 09 Mar 2015 22:50:49 -0700] rev 24284
hook: add a generic hook right before we commit a transaction
We are adding a 'txnclose' hook that will be run right before a transaction is
closed. Hooks running at that time will have access to the full transaction
content through both 'hookargs' content and on-disk reading. They will be able
to abort the transaction.
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 09 Mar 2015 22:43:36 -0700] rev 24283
transaction: add a validation stage
The 'transaction' object can now be fed a 'validator' function. This function
will be run right before the transaction is closed to validate its content. The
target usage is hooks. The validation function is expected to raise an exception
when it wants to abort the transaction.
This only introduce the idea with a default no-op validator. Actual usage is in
the next changeset.
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 09 Mar 2015 22:36:56 -0700] rev 24282
hook: add a generic hook after transaction has been closed
We are adding generic hooking for all transactions. We may have useful
information about what happened during the transaction, user of the transaction
should have filled the 'hookargs' dictionnary of the transaction. This hook is
simple because it has no power to rollback the transaction.
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 10 Dec 2014 18:19:49 -0800] rev 24281
hook: have a generic hook for transaction opening
We are adding generic hooking for all transactions. We do not really have any
useful information to include when opening the transaction but this is a
useful time to allow a hook anyway. We better let people abort transaction before
they happen than after multiple seconds/minutes of processing.
Yuya Nishihara <yuya@tcha.org> [Tue, 24 Feb 2015 00:04:55 +0900] rev 24280
templater: allow piping generator-type function output to filters
Template functions use "yield"s assuming that the result will be combined
into a string, which means both "f -> str" and "f -> generator" should behave
in the same way.
Before this patch, piping generator function resulted in a cryptic error.
We had to insert "|stringify" in this case.
$ hg log --template '{if(author, author)|user}\n'
abort: template filter 'userfilter' is not compatible with keyword
'[(<function runsymbol at 0x7f5af2e8d8c0>, 'author'),
(<function runsymbol at 0x7f5af2e8d8c0>, 'author')]'
Laurent Charignon <lcharignon@fb.com> [Wed, 11 Mar 2015 15:22:34 -0700] rev 24279
record: add new tests for commit interactive (same tests as record)
Laurent Charignon <lcharignon@fb.com> [Wed, 11 Mar 2015 15:22:04 -0700] rev 24278
record: add interactive option to the commit command
Martin von Zweigbergk <martinvonz@google.com> [Tue, 10 Mar 2015 16:26:13 -0700] rev 24277
manifest: don't let find() look inside manifestdict
The find() method is currently implemented by looking inside the _lm
field of the manifest dict. Future manifests types (tree manifests)
may not have such a field, so add a method for getting to the data
instead.
Martin von Zweigbergk <martinvonz@google.com> [Mon, 09 Mar 2015 17:13:22 -0700] rev 24276
largefiles: replace manifestdict.__contains__, don't extend class
We're soon going to add an alternative manifest class
(treemanifest). Rather than extending both those classes by
largesfiles versions, let's replace the method on the manifest
instances.
Matt Harbison <matt_harbison@yahoo.com> [Sun, 08 Mar 2015 16:50:57 -0400] rev 24275
files: split reusable implementation into cmdutil for subrepo support
Matt Harbison <matt_harbison@yahoo.com> [Sun, 08 Mar 2015 16:45:29 -0400] rev 24274
files: use ctx object to access dirstate
This allows the cmdutil method to not need to be passed the repo as well as the
ctx.
Durham Goode <durham@fb.com> [Tue, 10 Mar 2015 13:56:05 -0700] rev 24273
copies: added manifests to computenonoverlap
Commit 30219bd46ed7 changed the computenonoverlap api's to not require the
manifests. We actually need the manifests in the remotefilelog extension so
we can find the file nodes for the various files that change. Let's add it
back to the function signature with a note explaining why.
This doesn't affect any behavior.
Laurent Charignon <lcharignon@fb.com> [Tue, 10 Mar 2015 17:14:33 -0700] rev 24272
record: move dorecord from record to cmdutil
Part of a serie of patches to move record from hgext to core
Laurent Charignon <lcharignon@fb.com> [Tue, 10 Mar 2015 17:09:07 -0700] rev 24271
record: remove dependency on hg module in record
Part of a series of patches to move record from hgext to core
Laurent Charignon <lcharignon@fb.com> [Tue, 10 Mar 2015 17:03:40 -0700] rev 24270
record: remove dependency on extensions module in dorecord
Part of a series of patches to move record from hgext to core
Laurent Charignon <lcharignon@fb.com> [Tue, 10 Mar 2015 14:42:07 -0700] rev 24269
record: move filterpatch from record to patch
Part of a series of patches to move record from hgext to core
Siddharth Agarwal <sid0@fb.com> [Tue, 10 Mar 2015 17:34:42 -0700] rev 24268
patch.internalpatch: add a default value for prefix
Rev 60c279ab7bd3 adding a parameter here. This breaks third-party extensions
like crecord and also makes the issue fairly hard to fix on the extension's
side if it wants to retain compatibility across Mercurial versions -- in old
versions, the positional argument will be passed into the next unknown
argument, which is 'files'.
The patch also undoes a change to the record extension that is no longer
necessary.
Durham Goode <durham@fb.com> [Wed, 11 Mar 2015 07:19:55 -0700] rev 24267
histedit: remove extra histedit constructor call
In a previous commit we removed the extra histedit object instance being
constructed in --continue and --abort. The new --edit-todo missed this fix
though (which means the state object it produces doesn't have the locks on it).
It's not breaking anything now, but let's go ahead and clean that up before we
forget.
Jordi Gutiérrez Hermoso <jordigh@octave.org> [Wed, 11 Mar 2015 09:34:22 -0400] rev 24266
color: consolidate cut-and-paste code
This fixes a mild case of cut-and-paste code regarding failing to set
terminal modes. This is evident in the win32 comment that is misplaced
for the terminfo mode since cset ad6ad51cc0dd.
Instead, we refactor this C&P into a small local function.
Laurent Charignon <lcharignon@fb.com> [Mon, 09 Mar 2015 13:16:25 -0700] rev 24265
record: move parsepatch from record to patch
Part of a series of patches to move record from hgext to core
Laurent Charignon <lcharignon@fb.com> [Mon, 09 Mar 2015 13:14:31 -0700] rev 24264
record: move scanpatch from record to patch
Part of a series of patches to move record from hgext to core
Laurent Charignon <lcharignon@fb.com> [Mon, 09 Mar 2015 13:09:15 -0700] rev 24263
record: move hunk class from record to patch
Part of a series of patches to move record from hgext to core
Laurent Charignon <lcharignon@fb.com> [Mon, 09 Mar 2015 13:08:19 -0700] rev 24262
record: move countChanges in the hunk class
Part of a series of patches to move record from hgext to core
Laurent Charignon <lcharignon@fb.com> [Mon, 09 Mar 2015 13:04:50 -0700] rev 24261
record: move header class from record to patch
Part of a series of patches to move record from hgext to core
Siddharth Agarwal <sid0@fb.com> [Tue, 10 Mar 2015 13:06:38 -0700] rev 24260
cmdutil.tryimportone: allow importing relative patches with --bypass
Siddharth Agarwal <sid0@fb.com> [Mon, 09 Mar 2015 18:22:24 -0700] rev 24259
cmdutil.tryimportone: allow importing relative patches into the working dir
This makes hg import --prefix dir/ (without bypass) work.
Siddharth Agarwal <sid0@fb.com> [Fri, 06 Mar 2015 22:56:19 -0800] rev 24258
commands.import: accept a prefix option
The --prefix option is meant to be relative to the root rather than the current
working directory. This is for consistency with the rest of 'hg import' --
paths in patches are otherwise considered to be relative to the root.
In upcoming patches we'll hook this option up to the patch functions.
--exact with --prefix is currently disallowed because I can't really come up
with sensible semantics for it, especially when only part of the patch is
preserved.
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 10 Mar 2015 11:01:10 -0700] rev 24257
test: make version based test-extensions failure more explanatory
A buggy __version__ content (usually from setup.py's hg being unable to read the
repo) can make this test fails in an obscure manner. We make the root of the
failure more explicit.
Mathias De Maré <mathias.demare@gmail.com> [Mon, 09 Mar 2015 22:14:09 +0100] rev 24256
subrepo: add status support for ignored and clean files in git subrepos
Mike Edgar <adgar@google.com> [Wed, 14 Jan 2015 15:16:08 -0500] rev 24255
revlog: addgroup checks if incoming deltas add censored revs, sets flag bit
A censored revision stored in a revlog should have the censored revlog index
flag bit set. This implies we must know if a revision is censored before we
add it to the revlog. When adding revisions from exchanged deltas, we would
prefer to determine this flag without decoding every single full text.
This change introduces a heuristic based on assumptions around the Mercurial
delta format and filelog metadata. Since deltas which produce a censored
revision must be full-replacement deltas, we can read the delta's first bytes
to check the filelog metadata. Since "censored" is the alphabetically first
filelog metadata key, censored filelog revisions have a well-known prefix we
can look for.
For more on the design and background of the censorship feature, see:
http://mercurial.selenic.com/wiki/CensorPlan
Siddharth Agarwal <sid0@fb.com> [Fri, 06 Mar 2015 22:43:47 -0800] rev 24254
patch.internalpatch: accept a prefix parameter
Siddharth Agarwal <sid0@fb.com> [Fri, 06 Mar 2015 22:27:41 -0800] rev 24253
patch.patchbackend: accept a prefix parameter