- Sep 30, 2020
-
-
Raphaël Gomès authored
Maybe there is a small divergence in the nightly formatter? This didn't seem to trip the CI. Differential Revision: https://phab.mercurial-scm.org/D9131
-
- Sep 23, 2020
-
-
Raphaël Gomès authored
Before this patch, it is not possible to create a `Matcher` trait-object (like `Box<dyn Matcher>`), because of the use of a generic parameters in some methods, namely `impl AsRef<HgPath>`. While this makes the interface less flexible for callers in theory, it does not change anything in the current codebase. Until something like [1] is implemented, this is a "tradeoff" that we need to make anyway. [1] https://internals.rust-lang.org/t/pre-rfc-expand-object-safety/12693 Differential Revision: https://phab.mercurial-scm.org/D9071
-
- Sep 28, 2020
-
-
Raphaël Gomès authored
This removes some justified warnings and one hard error that, while technically not a bug, was an ugly oversight on my part. Differential Revision: https://phab.mercurial-scm.org/D9094
-
Martin von Zweigbergk authored
We just moved all in-tree callers off of the function, but we're leaving it here for a bit to help extension writers. Differential Revision: https://phab.mercurial-scm.org/D9110
-
Antoine cezar authored
Differential Revision: https://phab.mercurial-scm.org/D9109
-
Antoine cezar authored
Differential Revision: https://phab.mercurial-scm.org/D9108
-
Antoine cezar authored
(D8958#inline-14994 followup 2/2) [X] make `Index` owner of its bytes [X] make `Index::new` return an error if `offset != bytes.len()` Differential Revision: https://phab.mercurial-scm.org/D9107
-
Antoine cezar authored
Prevent building `Index` every time it is needed. It was a bad idea anyway. When `Index::new` will return `Result` it will avoid things like `Revlog::len` returning `Result<usize>` instead of `usize`. [X] make `Index` owner of its bytes [ ] make `Index::new` return an error if `offset != bytes.len()` Differential Revision: https://phab.mercurial-scm.org/D9106
-
Antoine cezar authored
Differential Revision: https://phab.mercurial-scm.org/D9105
-
Antoine cezar authored
Differential Revision: https://phab.mercurial-scm.org/D9104
-
Antoine cezar authored
Differential Revision: https://phab.mercurial-scm.org/D9103
-
Antoine cezar authored
Differential Revision: https://phab.mercurial-scm.org/D9102
-
Antoine cezar authored
Differential Revision: https://phab.mercurial-scm.org/D9101
-
Antoine cezar authored
Differential Revision: https://phab.mercurial-scm.org/D9100
-
Antoine cezar authored
Differential Revision: https://phab.mercurial-scm.org/D9099
-
Antoine cezar authored
Differential Revision: https://phab.mercurial-scm.org/D9097
-
Antoine cezar authored
Differential Revision: https://phab.mercurial-scm.org/D9096
-
Antoine cezar authored
(D8958#inline-14992 followup) Differential Revision: https://phab.mercurial-scm.org/D9095
-
Antoine cezar authored
Differential Revision: https://phab.mercurial-scm.org/D9083
-
- Sep 24, 2020
-
-
Pierre-Yves David authored
According to Augie Fackler, using tuple as default value confuse PyType when actual values are passed at init time. Differential Revision: https://phab.mercurial-scm.org/D9086
-
- Sep 28, 2020
-
-
Raphaël Gomès authored
I suppose I ran the formatter on the tip but not on every patch. Differential Revision: https://phab.mercurial-scm.org/D9093
-
- Aug 24, 2020
-
-
Pulkit Goyal authored
Some merges can result in file being absent form working directory. This can be one of file was kept deleted or file was removed by merge code. User might revert the file back before committing. In such cases we will like to have better handling and create new filenodes. We store this info in mergestate as commitinfo so that we can use it while committing to create new filenode if required. Differential Revision: https://phab.mercurial-scm.org/D9003
-
- Sep 14, 2020
-
-
Pulkit Goyal authored
Differential Revision: https://phab.mercurial-scm.org/D9029
-
- Sep 03, 2020
-
-
Pulkit Goyal authored
For reasons mentioned in previous commits, we will like to forcefully create a new filenode sometimes. Combination of this patch and previous one, we fixed a case in `test-merge-combination.t`. This does not yet results in conflict where it should, I need to investigate more about what's happening as it should be a change-delete conflict now. Differential Revision: https://phab.mercurial-scm.org/D8989
-
Pulkit Goyal authored
delete-changed or changed-delete conflicts can either be resolved by mergetool, if some tool is passed and using or by user choose something on prompt or user doing some `hg revert` after choosing the file to remain conflicted. If the user decides to keep the changed side, on commit we just reuse the parent filenode. This is mostly fine unless we are in a distributed environment and people are doing criss-cross merges. Since, we don't have recursive merges or any other way of describing the end result of the merge was an explicit choice and it should be differentiated from it's ancestors, merge algo during criss-cross merges fails to take in account the explicit choice made by user and end up with a what-can-be-said-wrong-merge. The solution which we are trying to fix this is by creating a filenode on commit instead of reusing the parent filenode. This helps differentiate between pre-merged filenode and post-merge filenode and kind of tells about the choice user made. To implement creating new filenode functionality, we store info about these files in mergestate so that we can read them on commit and force create a new filenode. Differential Revision: https://phab.mercurial-scm.org/D8988
-
- Sep 25, 2020
-
-
Pulkit Goyal authored
`merge.applyupdates()` can store extras for a file and _stateextras may not be empty always. Hence reassigning loses the old values. We can directly update like this because we switched to using `collections.defaultdict` for `_stateextras` sometime ago.
-
- Sep 14, 2020
-
-
Pulkit Goyal authored
This will help notice the change in upcoming patches much better. Differential Revision: https://phab.mercurial-scm.org/D9028
-
- Sep 03, 2020
-
-
Pulkit Goyal authored
In upcoming patches, we will create a new filenode in couple of cases. Let's add some debugrevlogindex and a log call so that we can observe those changes better. Differential Revision: https://phab.mercurial-scm.org/D8987
-
- Sep 14, 2020
-
-
Pulkit Goyal authored
The `m2-vs-ma` optimization filters out the file which have not changed between second parent and the ancestor of the merge. This results in the m1-vs-m2 diff not processing those files. These files will be required when we are creating new filenode for salvaged cases as we need to track them to store in mergestate that file can be salvaged. Differential Revision: https://phab.mercurial-scm.org/D9027
-
Pulkit Goyal authored
This series is adding functionality where we can force create a new filenode for some files on a merge-commit. This is meant to represent an explicit choice made by user and hence distingusing the file in the merged commit with the file in parent by creating a new filenode instead of using the parent one. This introduces a experimental config option under which this functionality will be hidden. A new testcase is added in tests/test-merge-criss-cross.t to test the new functionality while making the option does not break other scenarios. Differential Revision: https://phab.mercurial-scm.org/D9026
-
- Sep 23, 2020
-
-
Connor Sheehan authored
Shows `hg commit -i` working on a git repo via the `git` extension. Adds working directory changes to files `alpha` and `beta`, then selects only `alpha` changes and commits them. As of now this would fail for a filename that includes uppercase characters due to the lack of case folding support in the extension. Differential Revision: https://phab.mercurial-scm.org/D9081
-
- Sep 21, 2020
-
-
Martin von Zweigbergk authored
The former no longer buys us anything. Differential Revision: https://phab.mercurial-scm.org/D9067
-
Martin von Zweigbergk authored
This is different from the `update()` function that I just made private. The new function is specifically for the normal `hg update` use case. It doesn't do a merge and it doesn't do a clean (forced) update. Differential Revision: https://phab.mercurial-scm.org/D9066
-
- Sep 23, 2020
-
-
Pierre-Yves David authored
-
Pierre-Yves David authored
-
Pierre-Yves David authored
-
Pierre-Yves David authored
-
Pierre-Yves David authored
Right now the function mostly gather existing code to build a consistent object. However having this function allow us prepare all user code independently from the actual side data format change (and associated encoding/decoding changes) Strictly speaking, we could not need to passe the sidedata explicitly since we have access to it though the `changelogrevision` object. However, the short term goal is to drop that first parameter to only pass the sidedata binaries.
-
- Sep 15, 2020
-
-
Pierre-Yves David authored
For the sidedata storage we are moving toward "all in one" block containing the equivalent of a "ChangingFiles" instance. We do various refactoring beforehand to prepare the usage of theses new data in the code. Since the object use slots, the "property cache" tricks cannot be used, and we cache the value manually.
-
- Sep 22, 2020
-
-
Pierre-Yves David authored
We are storing more than copies information, so lets make it clear.
-