Summary:
Adds ancestors-difference subcommand that returns all commits that are ancestors of a set of commits (heads) excluding ancestors of another set of commits (common).
Might be useful but primarily will be used to investigate the new commit graph performance.
Reviewed By: RajivTS
Differential Revision: D42778384
fbshipit-source-id: 43676d853b1792331fb7412f6bb2865ea931a80f
Summary: This allows using other schemes directly instead of having to do a conversion first.
Reviewed By: RajivTS
Differential Revision: D42776315
fbshipit-source-id: 9b29ff2f3c7b2307029ed2fb1ecf51778842d7af
Summary: Use the caching layer to speed up backfilling
Reviewed By: Croohand
Differential Revision: D42778273
fbshipit-source-id: 05f45e0fc79b7cb6b2b96ccbe0a040a0129a7a31
Summary: This allows removing auto_impl(Arc) for CommitGraphStorage and is more consistent with the rest of the code.
Reviewed By: RajivTS
Differential Revision: D42775167
fbshipit-source-id: c90a88070487ea2ab846bc7073caeb8a7aa54a8b
Summary: Make sure we only pass valid utf-8 strings to Rust's text styling.
Reviewed By: quark-zju
Differential Revision: D42886530
fbshipit-source-id: 2dc7f1ade57d3324997aa9c9a111016cfef51e07
Summary: This adds logging for two optional params that we dind't log before.
Differential Revision: D42843210
fbshipit-source-id: 2a724484100d5025cbd465492da21b873b4f30de
Summary: Switch to modern repo config to resolve "hg status" errors. Somehow missed this one (I probably assumed it was a test using git instead of an hg test importing git diff format).
Reviewed By: sggutier
Differential Revision: D42863480
fbshipit-source-id: 9d595954fb7f7c9693b6d91ef9485acdc37ddc2d
Summary:
Bumps [ua-parser-js](https://github.com/faisalman/ua-parser-js) from 0.7.31 to 0.7.33.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/faisalman/ua-parser-js/blob/master/changelog.md">ua-parser-js's changelog</a>.</em></p>
<blockquote>
<h2>Version 0.7.31 / 1.0.2</h2>
<ul>
<li>Fix OPPO Reno A5 incorrect detection</li>
<li>Fix TypeError Bug</li>
<li>Use AST to extract regexes and verify them with safe-regex</li>
</ul>
<h2>Version 0.7.32 / 1.0.32</h2>
<ul>
<li>Add new browser : DuckDuckGo, Huawei Browser, LinkedIn</li>
<li>Add new OS : HarmonyOS</li>
<li>Add some Huawei models</li>
<li>Add Sharp Aquos TV</li>
<li>Improve detection Xiaomi Mi CC9</li>
<li>Fix Sony Xperia 1 III misidentified as Acer tablet</li>
<li>Fix Detect Sony BRAVIA as SmartTV</li>
<li>Fix Detect Xiaomi Mi TV as SmartTV</li>
<li>Fix Detect Galaxy Tab S8 as tablet</li>
<li>Fix WeGame mistakenly identified as WeChat</li>
<li>Fix included commas in Safari / Mobile Safari version</li>
<li>Increase UA_MAX_LENGTH to 350</li>
</ul>
<h2>Version 0.7.33 / 1.0.33</h2>
<ul>
<li>Add new browser : Cobalt</li>
<li>Identify Macintosh as an Apple device</li>
<li>Fix ReDoS vulnerability</li>
</ul>
<h1>Version 0.8</h1>
<p>Version 0.8 was created by accident. This version is now deprecated and no longer maintained, please update to version 0.7 / 1.0.</p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="f2d0db001d"><code>f2d0db0</code></a> Bump version 0.7.33</li>
<li><a href="a6140a17dd"><code>a6140a1</code></a> Remove unsafe regex in trim() function</li>
<li><a href="a886604935"><code>a886604</code></a> Fix <a href="https://github-redirect.dependabot.com/faisalman/ua-parser-js/issues/605">#605</a> - Identify Macintosh as Apple device</li>
<li><a href="b814bcd791"><code>b814bcd</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/faisalman/ua-parser-js/issues/606">#606</a> from rileyjshaw/patch-1</li>
<li><a href="7f71024161"><code>7f71024</code></a> Fix documentation</li>
<li><a href="c239ac5167"><code>c239ac5</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/faisalman/ua-parser-js/issues/604">#604</a> from obecerra3/master</li>
<li><a href="8d3c2d327c"><code>8d3c2d3</code></a> Add new browser: Cobalt</li>
<li><a href="d11fc47dc9"><code>d11fc47</code></a> Bump version 0.7.32</li>
<li><a href="b490110109"><code>b490110</code></a> Merge branch 'develop' of github.com:faisalman/ua-parser-js</li>
<li><a href="cb5da5ea4b"><code>cb5da5e</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/faisalman/ua-parser-js/issues/600">#600</a> from moekm/develop</li>
<li>Additional commits viewable in <a href="https://github.com/faisalman/ua-parser-js/compare/0.7.31...0.7.33">compare view</a></li>
</ul>
</details>
<br />
[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=ua-parser-js&package-manager=npm_and_yarn&previous-version=0.7.31&new-version=0.7.33)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `dependabot rebase` will rebase this PR
- `dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `dependabot merge` will merge this PR after your CI passes on it
- `dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `dependabot cancel merge` will cancel a previously requested merge and block automerging
- `dependabot reopen` will reopen this PR if it is closed
- `dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
- `dependabot use these labels` will set the current labels as the default for future PRs for this repo and language
- `dependabot use these reviewers` will set the current reviewers as the default for future PRs for this repo and language
- `dependabot use these assignees` will set the current assignees as the default for future PRs for this repo and language
- `dependabot use this milestone` will set the current milestone as the default for future PRs for this repo and language
You can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/facebook/sapling/network/alerts).
</details>
Pull Request resolved: https://github.com/facebook/sapling/pull/498
Reviewed By: quark-zju
Differential Revision: D42786303
Pulled By: sggutier
fbshipit-source-id: 99c98ed79f1703b267d21369e95f42bc1e8994c1
Summary:
Bumps [ua-parser-js](https://github.com/faisalman/ua-parser-js) from 0.7.31 to 0.7.33.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/faisalman/ua-parser-js/blob/master/changelog.md">ua-parser-js's changelog</a>.</em></p>
<blockquote>
<h2>Version 0.7.31 / 1.0.2</h2>
<ul>
<li>Fix OPPO Reno A5 incorrect detection</li>
<li>Fix TypeError Bug</li>
<li>Use AST to extract regexes and verify them with safe-regex</li>
</ul>
<h2>Version 0.7.32 / 1.0.32</h2>
<ul>
<li>Add new browser : DuckDuckGo, Huawei Browser, LinkedIn</li>
<li>Add new OS : HarmonyOS</li>
<li>Add some Huawei models</li>
<li>Add Sharp Aquos TV</li>
<li>Improve detection Xiaomi Mi CC9</li>
<li>Fix Sony Xperia 1 III misidentified as Acer tablet</li>
<li>Fix Detect Sony BRAVIA as SmartTV</li>
<li>Fix Detect Xiaomi Mi TV as SmartTV</li>
<li>Fix Detect Galaxy Tab S8 as tablet</li>
<li>Fix WeGame mistakenly identified as WeChat</li>
<li>Fix included commas in Safari / Mobile Safari version</li>
<li>Increase UA_MAX_LENGTH to 350</li>
</ul>
<h2>Version 0.7.33 / 1.0.33</h2>
<ul>
<li>Add new browser : Cobalt</li>
<li>Identify Macintosh as an Apple device</li>
<li>Fix ReDoS vulnerability</li>
</ul>
<h1>Version 0.8</h1>
<p>Version 0.8 was created by accident. This version is now deprecated and no longer maintained, please update to version 0.7 / 1.0.</p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="f2d0db001d"><code>f2d0db0</code></a> Bump version 0.7.33</li>
<li><a href="a6140a17dd"><code>a6140a1</code></a> Remove unsafe regex in trim() function</li>
<li><a href="a886604935"><code>a886604</code></a> Fix <a href="https://github-redirect.dependabot.com/faisalman/ua-parser-js/issues/605">#605</a> - Identify Macintosh as Apple device</li>
<li><a href="b814bcd791"><code>b814bcd</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/faisalman/ua-parser-js/issues/606">#606</a> from rileyjshaw/patch-1</li>
<li><a href="7f71024161"><code>7f71024</code></a> Fix documentation</li>
<li><a href="c239ac5167"><code>c239ac5</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/faisalman/ua-parser-js/issues/604">#604</a> from obecerra3/master</li>
<li><a href="8d3c2d327c"><code>8d3c2d3</code></a> Add new browser: Cobalt</li>
<li><a href="d11fc47dc9"><code>d11fc47</code></a> Bump version 0.7.32</li>
<li><a href="b490110109"><code>b490110</code></a> Merge branch 'develop' of github.com:faisalman/ua-parser-js</li>
<li><a href="cb5da5ea4b"><code>cb5da5e</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/faisalman/ua-parser-js/issues/600">#600</a> from moekm/develop</li>
<li>Additional commits viewable in <a href="https://github.com/faisalman/ua-parser-js/compare/0.7.31...0.7.33">compare view</a></li>
</ul>
</details>
<br />
[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=ua-parser-js&package-manager=npm_and_yarn&previous-version=0.7.31&new-version=0.7.33)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `dependabot rebase` will rebase this PR
- `dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `dependabot merge` will merge this PR after your CI passes on it
- `dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `dependabot cancel merge` will cancel a previously requested merge and block automerging
- `dependabot reopen` will reopen this PR if it is closed
- `dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
- `dependabot use these labels` will set the current labels as the default for future PRs for this repo and language
- `dependabot use these reviewers` will set the current reviewers as the default for future PRs for this repo and language
- `dependabot use these assignees` will set the current assignees as the default for future PRs for this repo and language
- `dependabot use this milestone` will set the current milestone as the default for future PRs for this repo and language
You can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/facebook/sapling/network/alerts).
</details>
Pull Request resolved: https://github.com/facebook/sapling/pull/499
Reviewed By: bolinfest
Differential Revision: D42789132
Pulled By: sggutier
fbshipit-source-id: 6cf1157fe1705a0131c91582d6aabc7a7d4fe94d
Summary: `hg status` fails when a checkout is currently in progress. Instead of surfacing this error to the user, we should just silently log it and wait for the checkout to finish. After the checkout finishes, `hg status` is reran automatically and should succeed.
Reviewed By: evangrayk
Differential Revision: D42866406
fbshipit-source-id: fc0a61a20348ec29bfd88acf1853ec6c43e2ab47
Summary:
Currently our CI is failing due to various issues related to the `verify-addons-folder.py` script.
This was related to `eslint` marking some code as unused, which this diff fixes.
Reviewed By: evangrayk
Differential Revision: D42819731
fbshipit-source-id: 24f16af311684bfab9d5b13738b0399f9339999c
Summary:
Currently our CI is failing due to various issues related to the `verify-addons-folder.py` script.
This commit fixes an issue related to having an oudated list of browsers when running `yarn build` by updating `caniuse-lite` to 1.0.30001449.
Pull Request resolved: https://github.com/facebook/sapling/pull/504
Test Plan:
## Before
Ran `./verify-addons-folder.py`, and failed with
```
[stderr]
Browserslist: caniuse-lite is outdated.
```
## After
Ran `./verify-addons-folder.py`, and now failed with
```
[eslint]
src/analytics/index.ts
Line 10:8: 'serverAPI' is defined but never used typescript-eslint/no-unused-vars
Line 20:3: 'data' is defined but never used. Allowed unused args must match /^_/u typescript-eslint/no-unused-vars
```
Reviewed By: bolinfest
Differential Revision: D42819312
Pulled By: sggutier
fbshipit-source-id: 0725c8b3d071f31e83067d0f159e38e6a4181f87
Summary:
Currently our CI is failing due to various issues related to the `verify-addons-folder.py` script.
This commit fixes a linter issue related to `yarn build` that made the aforementioned script fail.
Pull Request resolved: https://github.com/facebook/sapling/pull/503
Test Plan:
## Before
Ran `./verify-addons-folder.py`, and failed with
```
[eslint]
src/analytics/index.ts
Line 10:8: 'serverAPI' is defined but never used typescript-eslint/no-unused-vars
Line 20:3: 'data' is defined but never used. Allowed unused args must match /^_/u typescript-eslint/no-unused-vars
```
## After
Ran `./verify-addons-folder.py`, but this time failed with a `Browserslist: caniuse-lite is outdated` instead
Reviewed By: muirdm
Differential Revision: D42818973
Pulled By: sggutier
fbshipit-source-id: ab127e8f986986a942fc7daca33853ed7fffc88d
Summary:
Currently our CI is failing due to various issues related to the `verify-addons-folder.py` script.
This commit fixes a linter issue related to `prettier-check` that made the aforementioned script fail.
Pull Request resolved: https://github.com/facebook/sapling/pull/501
Test Plan:
## Before
Ran `./verify-addons-folder.py`, and failed with
```
RuntimeError: command failed: yarn run prettier-check
```
Also ran `yarn run prettier-check`, and failed with:
```
yarn run v1.22.19
$ prettier --check .
Checking formatting...
[warn] isl/src/analytics/index.ts
[warn] Code style issues found in the above file. Forgot to run Prettier?
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this comm
```
## After
Ran `./verify-addons-folder.py`, and now failed with `RuntimeError: command failed: yarn codegen` instead.
Also, `yarn run prettier-check` worked without issues.
Reviewed By: muirdm
Differential Revision: D42818837
Pulled By: sggutier
fbshipit-source-id: 5478356ad20766c5af7634da19763410236b3059
Summary: This diff fixes the clickable area in the changed file list area.
Reviewed By: evangrayk
Differential Revision: D42864628
fbshipit-source-id: 800aea5106a707fb36db6f00e7cadaf53b15d2aa
Summary:
`checkserverbookmark` was added by D15450801 (865b8b3a46) for early Mononoke migration.
It is no longer relevant.
Reviewed By: zzl0
Differential Revision: D42823312
fbshipit-source-id: f120255c4c33b919718e46052967d28e7ab772a4
Summary:
Previously, `conch_parser` was built as a separate Python module (`.so`)
so it is not distributed with the main executable, for portability and
binary size considerations.
However, it's annoying to maintain a separate Python module, for example,
buck macOS build would have issues importing it. The binary size concern also
seems minor: stripped Linux binary increases from 43174872 to 43537624 bytes,
+363KB, less than 1%.
Therefore, let's just embed `conch_parser` directly for better macOS support.
`conch_parser` is kept in case someone wants to build a standalone Python extension.
Reviewed By: zzl0
Differential Revision: D42822105
fbshipit-source-id: 287f25aa1860836a3c7df913233b9cb92d6fd0e3
Summary:
Teach `debugchangelog --migrate lazytext` to fetch commit hashes and migrate
the repo to not using lazy commit hashes, which supports
`devel.segmented-changelog-rev-compat` for compatibility with legacy tests.
Reviewed By: muirdm
Differential Revision: D42788588
fbshipit-source-id: b95045bba48f4fbc5c10d94780656163f1335587
Summary:
In the case where an engineers has removed all of their mounts, `eden du`
should be able to help them cleanup their orphaned redirections. Due to this,
not having mounts shouldn't be an error.
Reviewed By: fanzeyi
Differential Revision: D42824046
fbshipit-source-id: aee6ae5f145e4d189be7267bd8ea1ca1cb53b41a
Summary: The PR revset is hard to discover as it is. This adds some hints about its existence on the Sapling website.
Reviewed By: muirdm
Differential Revision: D42760527
fbshipit-source-id: 91177196c4e9dfd42e82ddde49e20684485b0711
Summary:
Currently, the `BonsaiChangeset` is capable of representing Mononoke and HG commits. However, Git objects have certain other properties which don't exactly fit in the current `BonsaiChangeset` structure. This prevents round-trippable conversion (or two way conversion) between Git repos and their Mononoke mirrors.
This diff introduces changes as per Simon's [initial plan](https://docs.google.com/document/d/1kyix9hlSoIWXHaYt-808MNoRL8snF4h4ko7mxYfwfJc/edit?usp=sharing) that parly solve the problem. In particular, to make commits roundtrippable between Git and Mononoke we need:
- Extra git header support in BonsaiChangeset
- Tag object support in Mononoke
- Means to represent refs or tags that point to Trees
This diff achieves the second point from the above list. 1 and 3 were already added in previous diff.
Differential Revision: D42743098
fbshipit-source-id: 6e75be5cb450586a2935fde8d9d70bdcc52a9aad
Summary:
Currently, the `BonsaiChangeset` is capable of representing Mononoke and HG commits. However, Git objects have certain other properties which don't exactly fit in the current `BonsaiChangeset` structure. This prevents round-trippable conversion (or two way conversion) between Git repos and their Mononoke mirrors.
This diff introduces changes as per Simon's [initial plan](https://docs.google.com/document/d/1kyix9hlSoIWXHaYt-808MNoRL8snF4h4ko7mxYfwfJc/edit?usp=sharing) that parly solve the problem. In particular, to make commits roundtrippable between Git and Mononoke we need:
- Extra git header support in BonsaiChangeset
- Tag object support in Mononoke
- Means to represent refs or tags that point to Trees
This diff achieves 1 and 3. Support for 2 will be added in a follow-up diff.
Differential Revision: D42709492
fbshipit-source-id: 438def9612ce41d6a259532bf3b085e8b40e274e
Summary:
When the application command line is too long for the terminal, the output is
messed up and comfy_table doesn't do any smart wrapping by default. We can however configure it to do so.
Reviewed By: MichaelCuevas
Differential Revision: D42822207
fbshipit-source-id: cb1a2814414cb872d8fafafb2ff13e7effa96c27
Summary:
These functions are returning an ImmediateFuture which is then converted to a
SemiFuture to then be converted to an ImmediateFuture. We can avoid the double
conversion by simply removing the .semi().
Reviewed By: fanzeyi
Differential Revision: D42789453
fbshipit-source-id: 64b336fa523cc8831691d1c627441293c1fcfa38
Summary:
All of these functions are returning an ImmediateFuture already, so there is no
need to construct another ImmediateFuture on top.
Reviewed By: mshroyer, fanzeyi
Differential Revision: D42788619
fbshipit-source-id: b40cd1027d183920e858cb21c91ee7b14d2ea929
Summary:
EdenFS is often started in the background. Because of this users can not easily
see the startup status. The only place it is avaiable other than the eden start
command is the logs. Those are hard to find and not really intended to be easy
to read.
Because users don't see EdenFS making progress while it is starting, users
reachout for help in the support group (leading to the oncall having to read out
the logs to them), or they will try to self service and kill EdenFS which land
themselves in a worse state, and lead to start up taking even longer due to
unclean startup or EdenFS corruption (proxy hashes).
In this diff I am exposing a way to subscribe to the status of EdenFS's startup
process. I also introduce the `--verbose` flag on the `status` command that
displays this startup status when EdenFS is running.
Reviewed By: xavierd
Differential Revision: D38962809
fbshipit-source-id: 2a8f03218df33e4fbfd4d0be919d48d9523c85b8
Summary:
The test was intended to check that the nonnormalset is a subset of files
tracked by dirstate. Previously the nonnormalset is tracked separately so
it can be buggy and include files not in the main dirstate map. But the
TreeState format enforces the nonnormalset to be a subset of files tracked
by TreeState (dirstate). Therefore the test is no longer relevant.
Reviewed By: sggutier
Differential Revision: D42818816
fbshipit-source-id: 24277f4cd16efc82ac803e1ff2b5b53941289abd