Martin von Zweigbergk <martinvonz@google.com> [Thu, 12 Mar 2015 09:06:45 -0700] rev 24286
lazymanifest: don't depend on printf's 'hh' format to work
Where we convert a 20-byte binary to a 40-byte hex string in
lazymanifest_setitem(), we use sprintf("%02hhx", hash[i]). As Matt
Harbison found out, 'hh' seems to be ignored on some platforms (Visual
Studio?). If char is signed on such platforms, the value gets
sign-extended as it gets promoted into an int when passed into the
variadic sprintf(). The resulting integer value will then be printed
with leading f's (14 of them on 64-bit systems), since the '2' in the
format string indicates only minimum number of characters. This is
both incorrect and runs the risk of writing outside of allocated
memory (as Matt reported).
To fix, let's cast the value to unsigned char before passing it to
sprintf(). Also drop the poorly supported 'hh' formatting that now
becomes unnecessary.
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 11 Mar 2015 17:53:50 -0700] rev 24285
bundle2: test hooking using the new transaction-level hook
There is no strong reason to keep a bundle2-level hook as we can use the
transaction-level hook.
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 0x
7f5af2e8d8c0>, 'author'),
(<function runsymbol at 0x
7f5af2e8d8c0>, '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.