We no longer use this experiment and the upstream refactor breaks it. Let's remove it.
Test Plan:
all sqldirstate tests pass now
Differential Revision: https://phab.mercurial-scm.org/D944
When a file changed to include a flag and then the flag is removed we did not
correctly remove the flag. We now correctly set flags for all revisions.
Differential Revision: https://phab.mercurial-scm.org/D920
Summary:
This diff caused a regression - clients may not have a tree manifests entries
for old commits. That causes infinitepush fail with
```
KeyError: ('', 'f6db63080ed0d9a81adf2cb266646cf5cf73bb79')
```
Test Plan: Run infinitepush with this diff reverted, make sure it doesn't fail
Reviewers: #fbhgext, ryanmce, durham
Reviewed By: #fbhgext, ryanmce
Differential Revision: https://phab.mercurial-scm.org/D921
Summary:
In D746, we changed the return value of deltachunk. This diff makes me
a bit sad but it fixes remotefilelog to work with those changes.
Test Plan: tests
Reviewers: #fbhgext, mbthomas
Reviewed By: #fbhgext, mbthomas
Subscribers: mbthomas
Differential Revision: https://phab.mercurial-scm.org/D876
Summary: The goal of the whole series is to have logging around linknode fixup. It's a slow operation, and we have two heuristics to make it faster. Unfortunately we have no idea about how well these heuristics actually help. This series of diffs aims to fix this problem. After this series is landed and logging is enabled, I hope that we can find out if we really these heuristics at all.
Test Plan: Run test-remotefilelog-linknodes.t
Reviewers: #fbhgext, quark
Reviewed By: #fbhgext, quark
Differential Revision: https://phab.mercurial-scm.org/D841
Summary:
The goal of the whole series is to have logging around linknode fixup. It's a slow operation, and we have two heuristics to make it faster. Unfortunately we have no idea about how well these heuristics actually help. This series of diffs aims to fix this problem. After this series is landed and logging is enabled, I hope that we can find out if we really these heuristics at all.
In the next diffs I'll add more logging around remotefilelog prefetching.
In this diff let's move it to the separate function.
Test Plan: Run test-remotefilelog-linknodes.t
Reviewers: #fbhgext, quark
Reviewed By: #fbhgext, quark
Differential Revision: https://phab.mercurial-scm.org/D840
Summary: The goal of the whole series is to have logging around linknode fixup. It's a slow operation, and we have two heuristics to make it faster. Unfortunately we have no idea about how well these heuristics actually help. This series of diffs aims to fix this problem. After this series is landed and logging is enabled, I hope that we can find out if we really these heuristics at all.
Test Plan: Run test-remotefilelog-linknodes.t
Reviewers: #fbhgext, quark
Reviewed By: #fbhgext, quark
Differential Revision: https://phab.mercurial-scm.org/D839
Summary:
The goal of the whole series is to have logging around linknode fixup. It's a slow operation, and we have two heuristics to make it faster. Unfortunately we have no idea about how well these heuristics actually help. This series of diffs aims to fix this problem. After this series is landed and logging is enabled, I hope that we can find out if we really these heuristics at all.
Let's log more data to make it easier to analyze where and how often does
linknode adjusing happen.
Test Plan: Run test-remotefilelog-linknodes.t
Reviewers: #fbhgext, quark
Reviewed By: #fbhgext, quark
Subscribers: quark
Differential Revision: https://phab.mercurial-scm.org/D838
Summary:
The goal of the whole series is to have logging around linknode fixup. It's a slow operation, and we have two heuristics to make it faster. Unfortunately we have no idea about how well these heuristics actually help. This series of diffs aims to fix this problem. After this series is landed and logging is enabled, I hope that we can find out if we really these heuristics at all.
Test Plan: Run test-remotefilelog-linknodes.t
Reviewers: #fbhgext, quark
Reviewed By: #fbhgext, quark
Differential Revision: https://phab.mercurial-scm.org/D837
Summary:
The goal of the whole series is to have logging around linknode fixup. It's a slow operation, and we have two heuristics to make it faster. Unfortunately we have no idea about how well these heuristics actually help. This series of diffs aims to fix this problem. After this series is landed and logging is enabled, I hope that we can find out if we really these heuristics at all.
Let's store all the fastlog logging inside fastlog function. This refactoring helps in the next diffs
Test Plan: Run test-remotefilelog-linknodes.t
Reviewers: #fbhgext, quark
Reviewed By: #fbhgext, quark
Differential Revision: https://phab.mercurial-scm.org/D836
Summary:
The goal of the whole series is to have logging around linknode fixup. It's a slow operation, and we have two heuristics to make it faster. Unfortunately we have no idea about how well these heuristics actually help. This series of diffs aims to fix this problem. After this series is landed and logging is enabled, I hope that we can find out if we really these heuristics at all.
Let's change the name of the logging category. In the next diffs I'll add more
logging, not only related to fastlog, so current name may be misleading.
Test Plan: Run test-remotefilelog-linknodes.t
Reviewers: #fbhgext, quark
Reviewed By: #fbhgext, quark
Differential Revision: https://phab.mercurial-scm.org/D835
This is a simple `rt -i` fix for changes caused by upstream 83b647ce1cec and
976f5a9c1fd2. We probably want to change our template implementation to
de-dup hashes in the future.
This diff adds an option --cwd-list to hg sparse. This will return the
contents of the current directory. The files that are in the sparse profile are
annotated with a '-' indicator.
Test Plan:
Tested by running the command 'hg sparse --cwd-list' in various folders.
Differential Revision: https://phab.mercurial-scm.org/D731
Summary: Regression that wasn't tested by the tests before
Test Plan: This is now tested with a new test
Reviewers: #fbhgext, mjpieters
Reviewed By: mjpieters
Differential Revision: https://phab.mercurial-scm.org/D823
Summary:
I think this is a better way of surfacing this warning. It also allows
us to tweak the message so we can point at new documentation I have already
written up.
Test Plan: Updated test
Reviewers: #fbhgext, mbthomas, durham, singhsrb
Reviewed By: #fbhgext, mbthomas, durham, singhsrb
Subscribers: singhsrb, quark
Differential Revision: https://phab.mercurial-scm.org/D812
D802 added two test cases in the test but the test cases are only used
for a very little portion of the test and therefore, result in needless double
execution for most of the test. Therefore, this commit removes the test cases
and instead, handles the different cases by passing the corresponding config
option.
Test Plan:
ran test-tweakdefaults.t
Differential Revision: https://phab.mercurial-scm.org/D814
Resolving obsoleted revisions (`repo.revs('obsolete()')`) is slow. Let's
move that filtering logic from read code path to write code path. So it does
not get executed for every command.
Test Plan:
`hg bookmark --hidden --profile`. Make sure obsstore loading logic
disappears from the profiling output.
Differential Revision: https://phab.mercurial-scm.org/D806
p4fastimport's reposetup will break other lfs commands or verify. Let's
limit that side effect to p4fastimport related commands. So they won't
affect users with p4fastimport enabled.
Differential Revision: https://phab.mercurial-scm.org/D801
Tested by trying to connect to a non-phabricator URL that responds with HTML to
a POST request and by trying to run hg ssl when not on the corp network.
Depends on D799
Differential Revision: https://phab.mercurial-scm.org/D800
Add a --sparse option to `hg diff` which filters the diff to include only files
that are part of the sparse profile.
When files are moved or copied across the sparse profile boundary, they will
show as added or removed (for moves) in the diff. This is the same behaviour
as `hg diff --root`.
Test Plan:
Expand `tests/test-sparse-diff.t`
Differential Revision: https://phab.mercurial-scm.org/D797
When commands like 'diff' request the contents of files from a workingfilectx,
normally this is satisfied by reading from disk. For files outside the sparse
checkout this doesn't work, so instead we must return the content from the
working copy parent.
Test Plan:
`tests/test-sparse-diff.t`
Differential Revision: https://phab.mercurial-scm.org/D788
We must correctly return the value from the function we are decorating.
Test Plan:
run tests
Differential Revision: https://phab.mercurial-scm.org/D767
Use naming consistent with Mercurial conventions and call the result of
bin(id) a node.
Test Plan:
None
Differential Revision: https://phab.mercurial-scm.org/D766
Summary:
Adding a config to control (only enable/disable for now) developer
warnings. This allows disabling the warnings on platforms like servers.
Test Plan: Updated and ran test-tweakdefaults.t
Reviewers: #fbhgext, durham
Reviewed By: #fbhgext, durham
Differential Revision: https://phab.mercurial-scm.org/D802
Summary:
The _adjustlinknode function in remotefilectx currently has a slow case where
it must prefetch history from the server to lookup the correct linkcode.
This change makes use of fastlog (if enabled for the repo) to speed up the
linknode lookup as fastlog will already have the correct linkrev. If fastlog
is not enabled or the fastlog call fails for some reason then it will fall
back to the old method.
Test Plan: Added new test cases in test-remotefilelog-linknodes.t
Reviewers: ikostia, stash, #fbhgext
Differential Revision: https://phab.mercurial-scm.org/D620
This makes the client side pushes also include tree packs in the push.
Also adds a test to see that the tree parts round trip between two tree-only
clients.
Differential Revision: https://phab.mercurial-scm.org/D721
When serving data from a stored bundle, if we need to rebundle the data first,
we need to make sure that the tree data stored within the bundle gets packaged
up as well.
If we're not rebundling, then things work fine as is since it just forwards the
parts along.
Differential Revision: https://phab.mercurial-scm.org/D720
Previously, when serving the contents of a stored bundle, we would explicitly
pick out the changegroup and serve only that. Let's also send along all other
parts that are stored in the bundle.
At the moment the only other parts that are stored in the bundle are the ones in
the partforwardingwhitelist in processparts, which is only treemanifest packs
right now. Later we'll serve bookmarks using this same pattern.
Differential Revision: https://phab.mercurial-scm.org/D719
Makes the infinitepush server store the received treepack parts in the bundle.
Future patches will enable serving the trees from the bundle, and sending the
trees from the client.
Differential Revision: https://phab.mercurial-scm.org/D718
Upstream Mercurial now has a function that handles the iteration over bundle
parts. As part of making infinitepush handle more part types, let's override
processparts and completely take over part processing.
Initially the part processing will just mimic the existing handlers, but there's
a config flag that causes it to simply redirect the received parts into the new
bundle. This will be useful later for storing all bundle parts (like tree packs
and obsmarkers).
Differential Revision: https://phab.mercurial-scm.org/D717
Previously the logic that created a bundle from a changegroup part and put it in
the store was all in the same function. Let's split it up.
This will be useful in a later part where we stop using the default bundle2 part
handling logic and instead handle each part manually (allowing us to store other
parts in the bundle).
Differential Revision: https://phab.mercurial-scm.org/D716