- Jul 16, 2020
-
-
Manuel Jacob authored
This makes its functionality and signature equivalent to Python 3.7’s contextlib.nullcontext().
-
- Jul 17, 2020
-
-
Manuel Jacob authored
-
Manuel Jacob authored
The attribute `missingheads` was recently renamed to `ancestorsof`, as it, despite the old name, doesn’t contain the missing heads but the changesets that were requested (including ancestors) for the outgoing operation. Changing all the users enables to print a warning if the old name is used. There is a good chance that some of the users are buggy because of the old name. Changing them to use the new name makes it more obvious that they are buggy. All users need to be reviewed for bugs. When sending patches for fixing them, the change will be more obvious without having to explain again and again the discrepancy of the old attribute name and what it actually contained.
-
- Jul 15, 2020
-
-
Manuel Jacob authored
Also, introduce a more correct name `ancestorsof` for what was named `missingheads` before. For now, we just forward `ancestorsof` to `missingheads` until all users are changed. There were some mistakes in the old docstring / name: * `missingheads` (new name: `ancestorsof`) contains the revs whose ancestors are included in the outgoing operation. It may contain non-head revs and revs which are already on the remote, so the name "missingheads" is wrong in two ways. * `missing` contains only ancestors of `missingheads`, so not *all nodes* present in local but not in remote. * `common` might not contain all common revs, e.g. not some that are not an ancestor of `missingheads`. It seems like the misleading name have fostered an actual bug (issue6372), where `outgoing.missingheads` was used assuming that it contains the heads of the missing changesets.
-
Manuel Jacob authored
As the test case shows, the claim is not true in general.
-
- Jul 16, 2020
-
-
Jörg Sonnenberger authored
Differential Revision: https://phab.mercurial-scm.org/D8760
-
- Jul 15, 2020
-
-
Matt Harbison authored
Differential Revision: https://phab.mercurial-scm.org/D8756
-
Matt Harbison authored
Differential Revision: https://phab.mercurial-scm.org/D8755
-
Matt Harbison authored
Differential Revision: https://phab.mercurial-scm.org/D8754
-
Matt Harbison authored
(Yes, the transaction name and final state in the comment here do differ.) Differential Revision: https://phab.mercurial-scm.org/D8753
-
Matt Harbison authored
Differential Revision: https://phab.mercurial-scm.org/D8752
-
Matt Harbison authored
Differential Revision: https://phab.mercurial-scm.org/D8751
-
- Jul 16, 2020
-
-
Jörg Sonnenberger authored
The ! category in the main status help text is defined as "missing", so use the same text for the help text of --delete. Differential Revision: https://phab.mercurial-scm.org/D8759
-
- Jul 15, 2020
-
-
Martin von Zweigbergk authored
It seems to me that `hg purge` is clearly a "working directory management" command and not a "repository management" command. The working copy is all that's affected, after all; the repo is not affected at all. Differential Revision: https://phab.mercurial-scm.org/D8757
-
- Jul 16, 2020
-
-
Martin von Zweigbergk authored
`setup.py` has a mechanism for generating a list of bundled extensions and their documenation and putting it in a `hgext/__index__.py` file. That file is then read from `extensions.py`, which makes `hg help extensions` work in py2exe binaries. This patch makes it so `setup.py` produces the `hgext/__index__.py` file also when called by PyOxidizer. Thanks to Matt Harbison for pointing out the existence of `__index__.py`! Differential Revision: https://phab.mercurial-scm.org/D8758
-
- Jul 07, 2020
-
-
Jörg Sonnenberger authored
As final step of dealing with the holes in the phase numbers, make phaseroots and phasesets both dictionaries indexed by the phase number. Further adjust the interface of the C module by pushing the node to revision mapping down as it is cheaper on the C side to deal with revision numbers. Overall, the patch series improves a no-change "hg up" for my NetBSD test repository from 4.7s to 1.3s. Differential Revision: https://phab.mercurial-scm.org/D8698
-
Pulkit Goyal authored
It was not obvious to understand the code so I added some comments. Differential Revision: https://phab.mercurial-scm.org/D8690
-
Pulkit Goyal authored
Some variable names were now confusing as we refactored the code in a separate function. For example, `node1a` leads to ideas why `1a` and not `1`. The variable storing path to patch file was named as `dirX` instead of `fileX`. Renamed these variables and added couple of comments. Differential Revision: https://phab.mercurial-scm.org/D8689
-
Pulkit Goyal authored
When we are diffing patches, there is no 3 way diff. Differential Revision: https://phab.mercurial-scm.org/D8688
-
Pulkit Goyal authored
Now that code for both cases, diffing patches or files is in separate function, it will be better to refactor them more and understand. Differential Revision: https://phab.mercurial-scm.org/D8687
-
Pulkit Goyal authored
The current extdiff code is hard to understand on first look. Took me few hours to grasp the code. Before adding more things, decided to do some refactoring. Differential Revision: https://phab.mercurial-scm.org/D8686
-
- Jun 01, 2020
-
-
Manuel Jacob authored
If the config rewrite.empty-successor=skip is set, a message "became empty and was dropped" is shown if the changeset became empty. If the config rewrite.empty-successor=keep is set, absorb may create changesets even if they became empty. It’s probably a good idea to make that explicit. Therefore the message is changed to be a combination of both: "became empty and became ...". Repeating the word "became" is not very elegant. This results from the fact that "became" was and is overloaded to indicate both the change from non-empty to empty and the successor relation. In the combinated message, both meanings are used in one sentence.
-
Manuel Jacob authored
This adds support for the recently added rewrite.empty-successor configuration.
-
Manuel Jacob authored
This adds support for the recently added rewrite.empty-successor configuration.
-
- Jul 12, 2020
-
-
Manuel Jacob authored
-
- Jul 11, 2020
-
-
Manuel Jacob authored
The default for many history-rewriting commands (e.g. rebase and absorb) is that changesets which would become empty are not created in the target branch. This makes sense if the source branch consists of small fix-up changes. For more advanced workflows that make heavy use of history-editing to create curated patch series, dropping empty changesets is not as important or even undesirable. Some users want to keep the meta-history, e.g. to make finding comments in a code review tool easier or to avoid that divergent bookmarks are created. For that, obsmarkers from the (to-be) empty changeset to the changeset(s) that already made the changes should be added. If a to-be empty changeset is pruned without a successor, adding the obsmarkers is hard because the changeset has to be found within the hidden part of the history. If rebasing in TortoiseHg, it’s easy to miss the fact that the to-be empty changeset was pruned. An empty changeset will function as a reminder that obsmarkers should be added. Martin von Zweigbergk mentioned another advantage. Stripping the successor will de-obsolete the predecessor. If no (empty) successor is created, this won’t be possible. In the future, we may want to consider other behaviors, like e.g. creating the empty successor, but pruning it right away. Therefore this configuration accepts 'skip' and 'keep' instead of being a boolean configuration.
-
- Aug 31, 2019
-
-
Pierre-Yves David authored
Small cleanup for future when we have an option to show configs from shared rc. Differential Revision: https://phab.mercurial-scm.org/D8658
-
- Jul 06, 2020
-
-
Jörg Sonnenberger authored
Differential Revision: https://phab.mercurial-scm.org/D8684
-
Jörg Sonnenberger authored
In the manifest line, flags are put directly after the hash, so the parser has been guessing the presence of flags based on the length of the hash. Replace this assumption by an enumeration of the valid flags and removing them from the hash first as they are distinct input values. Consistently handle the expected 256bit length of the SHA1-replacement in the pure Python parser. Check that setting flags will use one of the blessed values. Extend write logic in the C version to handle 256bit hashes as well. Verify that hashes always have exactly the expected length. Since 1070df141718 we should no longer depend on the old extra-byte hack. Differential Revision: https://phab.mercurial-scm.org/D8679
-
- Jul 07, 2020
-
-
Jörg Sonnenberger authored
When the internal and archived phase was added, allphase became a large, sparsely populated list. This dramatically increased the number of lookup operations for public relations in `phasecache.phase`. As a first step, define allphases and related lists explicitly to contain only the actual phases. Make phasenames a dictionary and create corresponding dictionaries for mapping phase names back to numbers. Adjust various list to be sparse as well with the exception of phaseroots and phasesets members of phasecache. Keep those as a separate step as it involves changes to the C module. Differential Revision: https://phab.mercurial-scm.org/D8697
-
Jörg Sonnenberger authored
Historically, updatephases used to skip the secret phase, but wasn't updated when archived and internal were added. Differential Revision: https://phab.mercurial-scm.org/D8696
-
- Jun 27, 2020
-
-
Jörg Sonnenberger authored
This speeds up no-change updates from 1.3s to 0.85s for my NetBSD test repository. Differential Revision: https://phab.mercurial-scm.org/D8670
-
- Jul 07, 2020
-
-
Jörg Sonnenberger authored
This decouples users from the implementation details of the phasecache. Also document a historic artifact about the stored phaseroots. Differential Revision: https://phab.mercurial-scm.org/D8694
-
- Jun 24, 2020
-
-
Raphaël Gomès authored
This is 3/3 in a series of patches to improve dirstate status' code. Following in the footsteps of a46e36b82461, we move the main status functionality to an `Operation`. This will most likely be subject to change in the future (what function signature, what parameters, etc., but we will see when `rhg` gets `hg status` support. Differential Revision: https://phab.mercurial-scm.org/D8663
-
Raphaël Gomès authored
This patch is 2/3 in the series to improve the dirstate status code. It adds a number of common type aliases to add more obvious semantics to function signatures, improves/adds documentation where necessary and improves one or two patterns to be more idiomatic. Differential Revision: https://phab.mercurial-scm.org/D8662
-
Raphaël Gomès authored
The code for `dirstate/status` has grown too large for comfort, this is the first of three patches that try to improve maintainability. In this patch, refactoring dirstate's status into a struct allows for slimming down function signatures drastically, keeping the mental (and maintenance) burden lower, since pretty much all of them shared a few common arguments. This had the pleasant side-effect of simplifying lifetimes a little. This has no observable impact on performance. The next patch will add/improve documentation and refactor some types. I tried to keep new code down to a minimum in this patch because it's already pretty big. Differential Revision: https://phab.mercurial-scm.org/D8661
-
- Dec 14, 2019
-
-
Martin von Zweigbergk authored
This helps with readability. Differential Revision: https://phab.mercurial-scm.org/D8735
-
Martin von Zweigbergk authored
This helps with readability. Differential Revision: https://phab.mercurial-scm.org/D8734
-
- Jun 22, 2020
-
-
Pulkit Goyal authored
If we have multiple cases in a test, that leads us to a temp path of format "<temp-path>-<case1>#<case2>". This leads to hg.parseurl() parsing the path and take part after `#` as a branch name. I encountered this bug while adding support for share-safe case in next patch. Differential Revision: https://phab.mercurial-scm.org/D8647
-
- Apr 14, 2020
-
-
Pulkit Goyal authored
This for now just prints out the list of current requirements. In future this will be helpful in reading requirements from couple of sources, and checking which requirement comes from where. Differential Revision: https://phab.mercurial-scm.org/D8632
-