Thu, 15 Oct 2015 14:10:57 +0100 destupdate: extract validation logic
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 15 Oct 2015 14:10:57 +0100] rev 26720
destupdate: extract validation logic One of the main goal of having consolidated destination function is to allow extension to play with this logic. We extract sub logic to make is wrapping more practical.
Thu, 15 Oct 2015 01:56:03 +0100 rebase: rename and test '_destrebase'
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 15 Oct 2015 01:56:03 +0100] rev 26719
rebase: rename and test '_destrebase' We make the name consistent with the other similar revsets and make sure it has minimal tests.
Thu, 15 Oct 2015 01:51:53 +0100 rebase: directly use '_destrebase'
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 15 Oct 2015 01:51:53 +0100] rev 26718
rebase: directly use '_destrebase' There is little value in using the revset instead of the function.
Thu, 15 Oct 2015 01:50:31 +0100 rebase: extra default destination in its own function
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 15 Oct 2015 01:50:31 +0100] rev 26717
rebase: extra default destination in its own function This makes it much simple to wrap for other extension.
Thu, 15 Oct 2015 01:47:28 +0100 revset: rename and test '_destmerge'
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 15 Oct 2015 01:47:28 +0100] rev 26716
revset: rename and test '_destmerge' We make the name consistent with the one used by '_destupdate' and we ensure the code is run by testing it (abort is expected and merge would).
Thu, 15 Oct 2015 01:19:32 +0100 merge: directly get destination from destutil
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 15 Oct 2015 01:19:32 +0100] rev 26715
merge: directly get destination from destutil There is no real value in using the revset over the function. The revset have no remaining users and will be taken care of in a later changesets.
Thu, 15 Oct 2015 01:11:00 +0100 destutil: move default merge destination into a function
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 15 Oct 2015 01:11:00 +0100] rev 26714
destutil: move default merge destination into a function Function in destutil are much simpler to wrap and more flexible than revset. This also help consistency as 'destupdate' live here and cannot become a pure revset anyway.
Thu, 15 Oct 2015 01:35:44 +0100 revset: reintroduce and experimental revset for update destination
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 15 Oct 2015 01:35:44 +0100] rev 26713
revset: reintroduce and experimental revset for update destination The revset is not ready for prime time yet. However it is useful to have some version of it exposed to help candidate users to play with it and provide feedback on what we should aim at. We add a small test to make sure the code runs.
Wed, 14 Oct 2015 15:11:53 -0400 changegroup: move manifest unpacking into its own method
Augie Fackler <augie@google.com> [Wed, 14 Oct 2015 15:11:53 -0400] rev 26712
changegroup: move manifest unpacking into its own method The upcoming cg3 will need different logic for unpacking manifests.
Thu, 01 Oct 2015 15:35:10 -0400 changegroup: move manifest packing into a separate function
Augie Fackler <augie@google.com> [Thu, 01 Oct 2015 15:35:10 -0400] rev 26711
changegroup: move manifest packing into a separate function A future change will introduce a new function on a cg3packer that can pack treemanifests as well as flatmanifests.
Wed, 30 Sep 2015 19:59:12 -0400 changegroup: rename manifest linknode closure for clarity
Augie Fackler <augie@google.com> [Wed, 30 Sep 2015 19:59:12 -0400] rev 26710
changegroup: rename manifest linknode closure for clarity Since I'm spending the time to understand this code, I may as well leave it clearer than I found it.
Tue, 29 Sep 2015 15:14:03 -0400 changegroup: reformat packermap and add comment
Augie Fackler <augie@google.com> [Tue, 29 Sep 2015 15:14:03 -0400] rev 26709
changegroup: reformat packermap and add comment I'm about to add a cg3, and it seems prudent to annotate what formats support what features. It strikes me that we may want to consider moving to a more feature-oriented model in the future, but we'll see how that looks in a little while I guess.
Wed, 14 Oct 2015 12:05:27 -0400 changegroup: document the public surface area of cg?unpackers
Augie Fackler <augie@google.com> [Wed, 14 Oct 2015 12:05:27 -0400] rev 26708
changegroup: document the public surface area of cg?unpackers This should help future readers at least a little.
Wed, 14 Oct 2015 11:58:56 -0400 changegroup: mark cg1unpacker.chunklength as private
Augie Fackler <augie@google.com> [Wed, 14 Oct 2015 11:58:56 -0400] rev 26707
changegroup: mark cg1unpacker.chunklength as private
Wed, 14 Oct 2015 11:58:35 -0400 changegroup: note why a few methods on cg1unpacker exist
Augie Fackler <augie@google.com> [Wed, 14 Oct 2015 11:58:35 -0400] rev 26706
changegroup: note why a few methods on cg1unpacker exist I'm not sure what to do abstraction-wise here. It might be more sensible to make a memoryrepo that could apply a bundle in-memory and then we could make the changegroup data be strictly an applyable stream, but that's an idea for Later.
Wed, 14 Oct 2015 11:32:33 -0400 revlog: rename bundle to cg to reflect its nature as a cg?unpacker
Augie Fackler <augie@google.com> [Wed, 14 Oct 2015 11:32:33 -0400] rev 26705
revlog: rename bundle to cg to reflect its nature as a cg?unpacker The new convention is that bundles contain changegroups. bundle1 happens to *only* be a changegroup, but bundle2 is a more featureful container that isn't something you can pass to addgroup().
Tue, 13 Oct 2015 17:16:10 -0400 changegroup: mark _addchangegroupfiles as module-private
Augie Fackler <augie@google.com> [Tue, 13 Oct 2015 17:16:10 -0400] rev 26704
changegroup: mark _addchangegroupfiles as module-private I'm trying to reason about the public surface area of this module now, so it's worth tagging private things as such.
Tue, 13 Oct 2015 17:14:37 -0400 changegroup: delete now-unused addchangegroup method
Augie Fackler <augie@google.com> [Tue, 13 Oct 2015 17:14:37 -0400] rev 26703
changegroup: delete now-unused addchangegroup method
Tue, 13 Oct 2015 17:14:07 -0400 localrepo: use cg?unpacker.apply() instead of changegroup.addchangegroup()
Augie Fackler <augie@google.com> [Tue, 13 Oct 2015 17:14:07 -0400] rev 26702
localrepo: use cg?unpacker.apply() instead of changegroup.addchangegroup() This is in localpeer, so it lives. Had it been in localrepo instead, I would have tried to exterminate it.
Tue, 13 Oct 2015 17:12:46 -0400 repair: use cg?unpacker.apply() instead of changegroup.addchangegroup()
Augie Fackler <augie@google.com> [Tue, 13 Oct 2015 17:12:46 -0400] rev 26701
repair: use cg?unpacker.apply() instead of changegroup.addchangegroup()
Tue, 13 Oct 2015 17:12:29 -0400 exchange: use cg?unpacker.apply() instead of changegroup.addchangegroup()
Augie Fackler <augie@google.com> [Tue, 13 Oct 2015 17:12:29 -0400] rev 26700
exchange: use cg?unpacker.apply() instead of changegroup.addchangegroup()
Tue, 13 Oct 2015 17:12:12 -0400 commands: use cg?unpacker.apply() instead of changegroup.addchangegroup()
Augie Fackler <augie@google.com> [Tue, 13 Oct 2015 17:12:12 -0400] rev 26699
commands: use cg?unpacker.apply() instead of changegroup.addchangegroup()
Tue, 13 Oct 2015 17:11:52 -0400 bundle2: use cg?unpacker.apply() instead of changegroup.addchangegroup()
Augie Fackler <augie@google.com> [Tue, 13 Oct 2015 17:11:52 -0400] rev 26698
bundle2: use cg?unpacker.apply() instead of changegroup.addchangegroup()
Tue, 13 Oct 2015 17:11:18 -0400 shelve: use cg?unpacker.apply() instead of changegroup.addchangegroup()
Augie Fackler <augie@google.com> [Tue, 13 Oct 2015 17:11:18 -0400] rev 26697
shelve: use cg?unpacker.apply() instead of changegroup.addchangegroup()
Tue, 13 Oct 2015 17:14:21 -0400 histedit: use cg?unpacker.apply() instead of changegroup.addchangegroup()
Augie Fackler <augie@google.com> [Tue, 13 Oct 2015 17:14:21 -0400] rev 26696
histedit: use cg?unpacker.apply() instead of changegroup.addchangegroup()
Tue, 13 Oct 2015 16:58:51 -0400 changegroup: migrate addchangegroup() to forward to cg?unpacker.apply()
Augie Fackler <augie@google.com> [Tue, 13 Oct 2015 16:58:51 -0400] rev 26695
changegroup: migrate addchangegroup() to forward to cg?unpacker.apply() I'll clean up callers in subsequent patches, then remove the forwarding.
Tue, 13 Oct 2015 15:54:05 -0400 changegroup: move source check to top of addchangegroup
Augie Fackler <augie@google.com> [Tue, 13 Oct 2015 15:54:05 -0400] rev 26694
changegroup: move source check to top of addchangegroup This is preparation for some refactoring.
Thu, 15 Oct 2015 09:52:32 -0400 error: remove superfluous pass statements
Augie Fackler <augie@google.com> [Thu, 15 Oct 2015 09:52:32 -0400] rev 26693
error: remove superfluous pass statements
Mon, 12 Oct 2015 18:49:23 -0700 hook: raise a separate exception for when loading a hook fails
Siddharth Agarwal <sid0@fb.com> [Mon, 12 Oct 2015 18:49:23 -0700] rev 26692
hook: raise a separate exception for when loading a hook fails For easier catching.
Wed, 14 Oct 2015 11:05:53 -0700 clonebundles: advertise clone bundles feature to clients
Gregory Szorc <gregory.szorc@gmail.com> [Wed, 14 Oct 2015 11:05:53 -0700] rev 26691
clonebundles: advertise clone bundles feature to clients Server operators that have enabled clone bundles probably want clients to use it. This patch introduces a feature that will insert a bundle2 "output" part that advertises the existence of the clone bundles feature to clients that aren't using it. The server uses the "cbattempted" argument to "getbundle" to determine whether a client supports clone bundles and to avoid sending the message to clients that failed the clone bundle for whatever reason.
Wed, 14 Oct 2015 10:36:20 -0700 exchange: advertise if a clone bundle was attempted
Gregory Szorc <gregory.szorc@gmail.com> [Wed, 14 Oct 2015 10:36:20 -0700] rev 26690
exchange: advertise if a clone bundle was attempted The client now sends a "cbattempted" boolean flag to the "getbundle" wire protocol command to tell the server whether a clone bundle was attempted. The presence of this flag will enable the server to conditionally emit a bundle2 "output" part advertising the availability of clone bundles to compatible clients that don't have it enabled.
Tue, 13 Oct 2015 14:55:02 -0700 exchange: record that we attempted to fetch a clone bundle
Gregory Szorc <gregory.szorc@gmail.com> [Tue, 13 Oct 2015 14:55:02 -0700] rev 26689
exchange: record that we attempted to fetch a clone bundle This is needed so a subsequent patch can conditionally add a bundle2 part to the "getbundle" wire protocol command depending on whether a clone bundle was attempted.
Tue, 13 Oct 2015 12:41:32 -0700 exchange: provide hint on how to disable clone bundles
Gregory Szorc <gregory.szorc@gmail.com> [Tue, 13 Oct 2015 12:41:32 -0700] rev 26688
exchange: provide hint on how to disable clone bundles If a clone bundle persistently fails to apply, users need a way to disable it so they have a hope of the clone working. Change the hint for the abort scenario to advertise the config option to disable clone bundles.
Wed, 14 Oct 2015 10:03:26 -0700 exchange: document filterclonebundleentries
Gregory Szorc <gregory.szorc@gmail.com> [Wed, 14 Oct 2015 10:03:26 -0700] rev 26687
exchange: document filterclonebundleentries
Wed, 14 Oct 2015 10:58:35 -0700 wireproto: properly parse false boolean args (BC)
Gregory Szorc <gregory.szorc@gmail.com> [Wed, 14 Oct 2015 10:58:35 -0700] rev 26686
wireproto: properly parse false boolean args (BC) The client represents boolean arguments as '0' and '1'. bool('0') == bool('1') == True, so a simple bool(val) isn't sufficient for converting the argument back to a bool type. Currently, "obsmarkers" is the only boolean argument to getbundle. I /think/ the only place where we currently set the "obsmarkers" argument is during bundle2 pulls. As a result of this bug, the server /might/ be sending obsolete markers bundle2 part(s) to clients that don't request them. That is why I marked this BC. Surprisingly there was no test fall out from this change. I suspect a lapse in test coverage.
Thu, 15 Oct 2015 03:29:00 +0100 bundle2: gracefully skip 'obsmarkers' part if evolution is disabled
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 15 Oct 2015 03:29:00 +0100] rev 26685
bundle2: gracefully skip 'obsmarkers' part if evolution is disabled We would skip the part if it was fully unknown, so we should also skip it if we know we won't be able to apply it. This will allow us to produce bundles with obsolescence markers alongside changegroup while still being able to apply them on any client.
Thu, 15 Oct 2015 12:45:34 +0100 obsstore: make the readonly attribute accessible
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 15 Oct 2015 12:45:34 +0100] rev 26684
obsstore: make the readonly attribute accessible We want to gracefully handle the read only case in some case (current target: advisory obsmarkers parts in bundle2). So we expose the attribute in a clean way.
Mon, 05 Oct 2015 04:26:26 -0700 update: introduce a 'UpdateAbort' exception
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 05 Oct 2015 04:26:26 -0700] rev 26683
update: introduce a 'UpdateAbort' exception The 'postincoming' function used by 'hg pull --update' and 'hg unbundle' is catching 'Abort' exceptions to intercept failed update. This feel a bit too wide to me, so I'm introducing a more precise exception to specify update destination issues.
Mon, 05 Oct 2015 21:42:09 -0700 update: "deprecate" call to 'merge.update' without a destination
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 05 Oct 2015 21:42:09 -0700] rev 26682
update: "deprecate" call to 'merge.update' without a destination Now that all internal callers pre-compute and set a destination at a higher level it feels like we can kill this API. This will allow us to simplify this function. However I feel like this is a bit too central and critical to break now. I'm adding a devel warning to let extension make catch this in the next cycle.
Wed, 14 Oct 2015 20:35:06 -0700 shelve: delete shelve statefile on any exception during abort
Christian Delahousse <cdelahousse@fb.com> [Wed, 14 Oct 2015 20:35:06 -0700] rev 26681
shelve: delete shelve statefile on any exception during abort When a user's repository is in an unfinished unshelve state and they choose to abort, at a minimum, the repo should be out of that state. We've found situations where the user could not leave the state unless manually deleting the state file. This fix ensures that no matter what exception may be raised during the abort, the shelved state file will be deleted, the user will be out of the unshelve state and they can get their repository into a workable condition.
Wed, 14 Oct 2015 18:22:16 -0700 highlight: add option to prevent content-only based fallback
Gregory Szorc <gregory.szorc@gmail.com> [Wed, 14 Oct 2015 18:22:16 -0700] rev 26680
highlight: add option to prevent content-only based fallback When Mozilla enabled Pygments on hg.mozilla.org, we got a lot of weirdly colorized files. Upon further investigation, the hightlight extension is first attempting a filename+content based match then falling back to a purely content-driven detection mode in Pygments. Sounds good in theory. Unfortunately, Pygments' content-driven detection establishes no minimum threshold for returning a lexer. Furthermore, the detection code for a number of languages is very liberal. For example, ActionScript 3 will return a confidence of 0.3 (out of 1.0) if the first 1k of the file we pass in matches the regex "\w+\s*:\s*\w"! Python matches on "import ". It's no coincidence that a number of our extension-less files were getting highlighted improperly. This patch adds an option to have the highlighter not fall back to purely content-based detection when filename+content detection failed. This can be enabled to render unlighted text instead of taking the risk that unknown file types are highlighted incorrectly. The old behavior is still the default.
Wed, 14 Oct 2015 17:43:44 -0700 highlight: inline checkfctx()
Gregory Szorc <gregory.szorc@gmail.com> [Wed, 14 Oct 2015 17:43:44 -0700] rev 26679
highlight: inline checkfctx() It is only used once. pygmentize() is pretty small. Let's just inline it.
Wed, 14 Oct 2015 17:42:07 -0700 highlight: consolidate duplicate code
Gregory Szorc <gregory.szorc@gmail.com> [Wed, 14 Oct 2015 17:42:07 -0700] rev 26678
highlight: consolidate duplicate code I'm adding some logic in a future patch and this will make it so I only have to add it once.
Tue, 13 Oct 2015 14:06:51 -0700 rebase: properly abort when destination is public (issue4896)
Christian Delahousse <cdelahousse@fb.com> [Tue, 13 Oct 2015 14:06:51 -0700] rev 26677
rebase: properly abort when destination is public (issue4896) After rebasing a set of changes onto a public changeset and having the first one be skipped, if you try to abort, the operation fails. This fix adds a check to disallow the target rev into the dstates list within the abort function. This list is checked for immutable states before the rest of abort does its thing.
Wed, 14 Oct 2015 18:03:17 -0500 bookmarks: don't deactivate on no-op update (issue4901)
Matt Mackall <mpm@selenic.com> [Wed, 14 Oct 2015 18:03:17 -0500] rev 26676
bookmarks: don't deactivate on no-op update (issue4901)
Thu, 15 Oct 2015 00:32:20 +0100 rebase: properly handle chains of markers with missing nodes
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 15 Oct 2015 00:32:20 +0100] rev 26675
rebase: properly handle chains of markers with missing nodes As obsolescence markers can contains unknown nodes and 'allsuccessors' returns them, we have to protect again that when looking for successors of the rebase set in the destination. Test have been expanded to catch that.
Wed, 14 Oct 2015 23:42:15 +0100 rebase: use a direct reference to repo.changelog
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 14 Oct 2015 23:42:15 +0100] rev 26674
rebase: use a direct reference to repo.changelog Accessing 'repo.changelog' have a small overhead because we double check that the filtering did not changed. As we make multiple use of this into loops, we should avoid doing the lookup/check every time. This also make the code tidier.
Wed, 14 Oct 2015 22:21:05 -0400 mail: drop python 2.5 support
timeless@mozdev.org [Wed, 14 Oct 2015 22:21:05 -0400] rev 26673
mail: drop python 2.5 support
Tue, 13 Oct 2015 22:53:08 -0700 exchange: use pushop.repo instead of repo
Sean Farley <sean@farley.io> [Tue, 13 Oct 2015 22:53:08 -0700] rev 26672
exchange: use pushop.repo instead of repo
Tue, 13 Oct 2015 03:20:05 -0700 rebase: factor out nothing to rebase return code
Ryan McElroy <rmcelroy@fb.com> [Tue, 13 Oct 2015 03:20:05 -0700] rev 26671
rebase: factor out nothing to rebase return code A rebase call that results in nothing to rebase might be considered successful in some contexts. This factors out the return code from places where hg determines that there is nothing to rebase, so an extenion might change this return code to be something that would allow scripts to run without seeing this as an error.
Thu, 15 Oct 2015 00:04:58 +0800 gitweb: visually highlight source lines when hovering over line numbers
Anton Shestakov <av6@dwimlabs.net> [Thu, 15 Oct 2015 00:04:58 +0800] rev 26670
gitweb: visually highlight source lines when hovering over line numbers Due to how the line links now reside outside of the source lines, hovering over line numbers doesn't count as hovering over the appropriate source line. It can be worked around by using a "+" css selector. However, it's necessary to reorder the elements and put <a> before <span> (which is actually quite logical). It works without further css tweaks because <a> is already absolute-positioned and so the order doesn't matter visually.
Tue, 13 Oct 2015 14:17:15 -0700 rebase: added comments
Christian Delahousse <cdelahousse@fb.com> [Tue, 13 Oct 2015 14:17:15 -0700] rev 26669
rebase: added comments Added comments describing the state variable and constants used throughout the rebase extension
Wed, 14 Oct 2015 22:45:51 +0800 monoblue: visually highlight source lines when hovering over line numbers
Anton Shestakov <av6@dwimlabs.net> [Wed, 14 Oct 2015 22:45:51 +0800] rev 26668
monoblue: visually highlight source lines when hovering over line numbers Due to how the line links now reside outside of the source lines, hovering over line numbers doesn't count as hovering over the appropriate source line. It can be worked around by using a "+" css selector. However, it's necessary to reorder the elements and put <a> before <span> (which is actually quite logical). It works without further css tweaks because <a> is already absolute-positioned and so the order doesn't matter visually.
Wed, 14 Oct 2015 22:24:50 +0800 monoblue: make the size of line links bigger to cover line numbers better
Anton Shestakov <av6@dwimlabs.net> [Wed, 14 Oct 2015 22:24:50 +0800] rev 26667
monoblue: make the size of line links bigger to cover line numbers better Due to how the line numbers in monoblue are formed (via css counters), the size of the area with the numbers and the size of the actually clickable links are not tied together well enough. Before this patch, there were noticeable "gaps" between line links - clicking on the bottom part of a visible line number did nothing as opposed to selecting this line. Let's set font-size for everything in pre.sourcelines so that it also affects the links and then add a bit of padding to them so compensate for layout differences. This way the sizes are still not 100% the same, but should be very close.
Sat, 26 Sep 2015 18:16:49 +0800 gitweb: don't drop current revision context on graph page
Anton Shestakov <av6@dwimlabs.net> [Sat, 26 Sep 2015 18:16:49 +0800] rev 26666
gitweb: don't drop current revision context on graph page In hgweb, some pages have a context of current revision; e.g. changelog and shortlog show changesets starting from this current revision. However, some gitweb templates were dropping current revision from some urls _to_ /graph page and _on_ that page. This patch fixes it.
Tue, 13 Oct 2015 16:05:30 -0700 util: also catch IndexError
Sean Farley <sean@farley.io> [Tue, 13 Oct 2015 16:05:30 -0700] rev 26665
util: also catch IndexError This makes life so, so much easier for hgwatchman, which provides a named tuple but throws an IndexError instead of a TypeError.
(0) -10000 -3000 -1000 -300 -100 -56 +56 +100 +300 +1000 +3000 +10000 tip