Commit Graph

544 Commits

Author SHA1 Message Date
Xavier Deguillard
2fd60707dc bindings: rename methods of DataStorePyExt and HistoryStorePyExt
Summary:
While conflicting method names are allowed in Rust, it usually leads to subpar
compiler warnings and code to be written in a non-traditional way. Let's rename
the methods on these 2 traits so there isn't any conflict to avoid this.

Reviewed By: kulshrax

Differential Revision: D15474311

fbshipit-source-id: 64e4f4cef2aa89c18f51b81260eff70f57183465
2019-05-23 15:41:42 -07:00
Xavier Deguillard
49e96a3f99 revisionstore: all MutableDeltaStore must also be DataStore
Summary:
In all cases, the mutable stores also support reading from them. Let's have the
compiler enforce this, and implement the missing traits.

Reviewed By: kulshrax

Differential Revision: D15474315

fbshipit-source-id: dfcd93f319582ff3cd54aeabaa66bc6df9ce63a8
2019-05-23 15:41:42 -07:00
Durham Goode
7e146b80f1 phases: remove O(changelog) loop
Summary:
The phases command had some naive code that looped over every revision
in the repository. Twice. This was really slow on huge repos, so let's get rid
of the need for it.

I originally attempted to optimize it by only looking at commits greater than
the ones being passed in, but this is incorrect since changing a commit to
public may affect it's ancestors. Instead of trying to optimize it further,
let's just drop the output text entirely.

Reviewed By: quark-zju

Differential Revision: D15465942

fbshipit-source-id: ba63a1096a515032fe13a8699807fe69c73c80ed
2019-05-23 15:10:46 -07:00
Durham Goode
4e2e3b9940 revlog: implement more efficient not-contains check
Summary:
When writing to a revlog we need to check if the revlog already
contains the node. A normal `node in self.nodemap` is quite expensive in large
repositories because it's likely the node is not in the nodemap and therefore it
must scan the entire index.

This new function uses the knowledge about the parents to limit how many nodes
are inspected when adding a new revision. In the degenerate case this could end
up traversing a large chunk of the graph in a slow way, so we catch the case
where the parents are far from the tip and revert to the old native path.

Reviewed By: quark-zju

Differential Revision: D15444548

fbshipit-source-id: 5f19ccf85fb11f1c787ebda09df9c4bef17a2a31
2019-05-23 14:18:46 -07:00
Durham Goode
55575572b8 hgsql: use mmap for hgsql revlog validation
Summary:
Opening all the revlogs to validate them is showing up as a performance
bottleneck for hgsql transactions. Let's switch them to using mmap to avoid
reading a bunch of data from disk.

Actually making this have an effect on our servers will also require setting the
experimental.mmapindexthreshold config.

Reviewed By: quark-zju

Differential Revision: D15441867

fbshipit-source-id: 4edde0bc3419ef75f82a4234c9dfc6604c6db9f4
2019-05-23 10:50:29 -07:00
Arun Kulshreshtha
cafacdf6b4 remotefilelog: print HTTP stats in debug output
Summary: Print out download stats when `edenapi.debug` is set. Pretty printing of the stats has been improved to make these numbers more useful to humans.

Reviewed By: xavierd

Differential Revision: D15466702

fbshipit-source-id: 6fac9ca5976b98874fc7a5f9b89d42975e1520ce
2019-05-23 09:22:04 -07:00
Arun Kulshreshtha
16cd491afe remotefilelog: use gated ui.warn instead of ui.develwarn
Summary:
When EdenAPI encounters an error, the current behavior is to print an error message and then fall back to SSH. In addition to the fallback notice, we were previously printing the exception message using `ui.develwarn`, with the understanding that this information is only really useful to Mercurial developers.

Instead of using `develwarn`, let's use `ui.warn` but gate the call so that only users with `edenapi.debug` set to `True` see the error message.

I initially tried printing the entire backtrace with `ui.traceback`, but this proved too verbose to print out in the middle of normal command output. The full traceback is logged to Scuba, and can be obtained from the `hg_errors` Scuba table, so just logging the exception message should be sufficient.

Reviewed By: quark-zju

Differential Revision: D15466332

fbshipit-source-id: 43d40eff47e4f68fe860383e7bd519fbd0052830
2019-05-22 23:20:27 -07:00
Arun Kulshreshtha
7863b7badf remotefilelog: use 'HTTPS' instead of 'HTTP' in user-facing output
Summary: On the Source Control team, we've been referring to the project to replace parts of the Mercurial wire protocol with the Mononoke API server as "HTTP data fetching". This has caused confusion for other teams in the past (particularly teams with a security-related focus), as this nomenclature makes it seem as if we're using unsecured HTTP. (This is not true; we are always using HTTPS.) In light of this, let's make sure that user-facing messages always use the term "HTTPS" instead of "HTTP" to avoid this confusion.

Reviewed By: quark-zju

Differential Revision: D15465390

fbshipit-source-id: b556ed222dc01979ceaa0d4a7aa921cb1c38d75e
2019-05-22 23:20:26 -07:00
Arun Kulshreshtha
a48dfc7f14 remotefilelog: add logging for edenapi
Summary: Log metrics about HTTP data fetching to `dev_command_timers`, and log HTTP fetching errors to `hg_errors`.

Reviewed By: quark-zju

Differential Revision: D15464791

fbshipit-source-id: 1027383b6aa0dc6915351332bfbc2d20d540cc4e
2019-05-22 23:20:26 -07:00
Arun Kulshreshtha
1a1fad0c56 edenapi: check for valid TLS certs at client setup
Summary: Check that the user's configured TLS credentials exist during client setup and disable HTTP if they aren't present.

Reviewed By: quark-zju

Differential Revision: D15459917

fbshipit-source-id: f20664c6522e47f2960cec1f02ef1a5f4c7e2c8c
2019-05-22 23:20:26 -07:00
Durham Goode
21cbc56bae revlog: avoid validating the hash if we just computed it
Summary:
In some cases the revlog actually computes the hash it uses. In that
situation we don't need to validate it. This is showing up as a performance
hotspot in profiles of the server receiving lots of commits. I'm not sure why
the creation of the hash is not showing up as a hotspot though, which is a bit
strange.

Reviewed By: kulshrax

Differential Revision: D15459193

fbshipit-source-id: 99823dd9e1709dbfecf2626b07f0e4c3ec43686c
2019-05-22 17:19:58 -07:00
Arun Kulshreshtha
f2f3af316f edenapi: add methods to DownloadStats callable from Python
Summary: Add several methods to the DownloadStats FFI wrapper to allow Python code to easily access various metrics.

Reviewed By: xavierd

Differential Revision: D15458802

fbshipit-source-id: 9e19d2a9b3fcb6e3a066f040fd110510a2f0d63e
2019-05-22 16:03:06 -07:00
Arun Kulshreshtha
00313b170a edenapi: make fetch commands return metrics
Summary: Make all of the EdenAPI data fetching methods return an object containing metrics. These can then be logged by the Python code.

Reviewed By: xavierd

Differential Revision: D15440641

fbshipit-source-id: 4a5fd090066a9020ae32986ab45ee8fb70c8de53
2019-05-22 12:59:29 -07:00
Durham Goode
148e70118a treemanifest: sort trees by linkrev before inserting
Summary:
Previously we sorted the trees topologically before inserting them. On
a revlog-backed server, this may mean that trees are written in a different
order from the actual commits. hgsql-backed servers rely on the data being
written in linkrev order so they can be replayed in linkrev order on other
machines, so this broke hgsql replication.

Let's instead sort by linkrev, which will be both topological and satisfy
hgsql's requirements.

Reviewed By: quark-zju

Differential Revision: D15437953

fbshipit-source-id: d4aaaa03b392a6cb6cf1be478aed2583ecb757c5
2019-05-22 09:09:03 -07:00
Durham Goode
1bf9700af1 treemanifest: disable manifest verify when treemanifest is on
Summary:
We had this disabled in a config we ship in rpms, but if we want the
tests to work in treeonly mode we want this disabled in all tree cases.

Reviewed By: xavierd

Differential Revision: D15296199

fbshipit-source-id: 0f9751583eefa10c275bd499bb5998adfbe644a4
2019-05-22 08:37:11 -07:00
Durham Goode
69ebfd6bf7 template: remove manifest rev number from templates
Summary:
With treemanifest we no longer have manifest rev numbers, so let's drop
them from the templates. This let's us convert a few more tests to treeonly.

In theory automation may parse this, but I kinda doubt anyone parses the
manifest node from this.

Reviewed By: xavierd

Differential Revision: D15296141

fbshipit-source-id: a4d2194bd9604867cd9958509bcd2e6513a72494
2019-05-22 08:37:10 -07:00
Mark Thomas
7e32ae71dd commitcloud: provide legacy pushbackup and isbackedup commands
Summary:
`hg pushbackup` and `hg isbackedup` can be called from scripts with `HGPLAIN`
set, and so can't be provided by aliases.  Instead, provide deprecated wrapper
commands.

Reviewed By: mitrandir77

Differential Revision: D15436286

fbshipit-source-id: 3fbbf9a5fb4d0e8de2026a17c41ee11a139d645f
2019-05-21 15:32:10 -07:00
Mark Thomas
1eaa46bd64 commitcloud: log sync state to blackbox log
Summary: Improve debugability of cloud sync by logging updated sync state to the blackbox logs.

Reviewed By: mitrandir77

Differential Revision: D15434890

fbshipit-source-id: c5065455985a48777a855997a99e32ce0b31cc72
2019-05-21 15:32:09 -07:00
Mark Thomas
30e5b3eb26 commitcloud: remove omitted bookmarks that are available locally
Summary:
When syncing, if a locally-available bookmark is synced to a new commit that
has been omitted, remove the local bookmark to ensure that the next cloud sync
doesn't move the bookmark back to where it used to be.

Reviewed By: mitrandir77

Differential Revision: D15414172

fbshipit-source-id: 71aaa2d89f734e4c575c24da2c0ef6b59ca4deaa
2019-05-21 15:32:09 -07:00
Xavier Deguillard
c5ce38dbb2 revisionstore: remove MutableHistoryStore::close
Summary:
Now that flush is implemented everywhere, we can replace the use of close with
flush.

Reviewed By: kulshrax

Differential Revision: D15416717

fbshipit-source-id: 5aea730b435e3c2073619ba676e60134f59f87c9
2019-05-21 15:25:28 -07:00
Xavier Deguillard
cf158f0fde revisionstore: remove MutableDeltaStore::close
Summary:
Now that MutableDeltaStore::flush is implemented everywhere, let's remove the
close method and replace it with flush where necessary.

Reviewed By: kulshrax

Differential Revision: D15416716

fbshipit-source-id: e66dad66a3aff25e80efb10dc2e22c9878336699
2019-05-21 15:25:27 -07:00
Xavier Deguillard
6f7856c02b pyrevisionstore: implement flush for pythonhistorystore
Summary: This is the last history store that didn't implement flush.

Reviewed By: kulshrax

Differential Revision: D15416712

fbshipit-source-id: f091fe697e5015afd5d6e6dc7ae6a1de27bb9b5b
2019-05-21 15:25:27 -07:00
Xavier Deguillard
8e9bc8c347 pyrevisionstore: implement flush for PythonMutableDataPack
Summary:
A new flush method is added to mutablebasepack that just close and re-init
self.

Reviewed By: kulshrax

Differential Revision: D15416708

fbshipit-source-id: 79cdcb20b51b9688a5e95402057c7da27883003c
2019-05-21 15:25:26 -07:00
Durham Goode
3403a1dc36 hooks: remove "incoming" hook
Summary:
This hook fires for every commit that is introduced in a pull. When
doing pulls with hundreds of thousands of commits, this introduces a noticable
delay. We don't use this hook anywhere, and it's not particularly scalable, so
let's delete it.

Reviewed By: singhsrb

Differential Revision: D15424697

fbshipit-source-id: 98d76bca703e625adf5be8f6234436befd260fc4
2019-05-21 15:01:16 -07:00
Kostia Balytskyi
fb54cc5694 hgsubversion: move to absolute import
Summary:
Let's move hgsubversion to absolute_import, just to be consistent with the rest
of Mercurial codebase.

Reviewed By: markbt

Differential Revision: D15392154

fbshipit-source-id: e4c32939aff0616790828da508f3feea158669e1
2019-05-21 09:15:21 -07:00
Xavier Deguillard
25cfb922d7 revisionstore: implement flush for indexedlogdatastore
Summary: The flush method is now in the MutableDeltaStore, so move it there.

Reviewed By: kulshrax

Differential Revision: D15416711

fbshipit-source-id: 55eb411e4e4cf98c51813ef29364dcba74dc7f66
2019-05-20 19:17:32 -07:00
Arun Kulshreshtha
da6f7284a5 fileserverclient: do not return pack paths from data fetching functions
Summary: As of D15154509, the data fetching functions in remotefilelog write to shared mutable packs rather than opening new packs. As such, there is no need to return pack paths. In fact, the code has already been updated so that the returned paths are always `None`, so the code removed in this diff is already dead.

Reviewed By: xavierd

Differential Revision: D15419765

fbshipit-source-id: c999d5388042b429a8bda9f72a06569364d8e2e1
2019-05-20 14:23:24 -07:00
Arun Kulshreshtha
ce5b9382c8 edenapi: add tree fetching
Summary: This diff adds an `hg debuggettrees` command that downloads trees from the API server and stores them in a datapack.

Reviewed By: xavierd

Differential Revision: D15301607

fbshipit-source-id: 7820d82d7d021c420e911a6a2e9bfce62b69fa2e
2019-05-20 11:52:59 -07:00
Mark Thomas
157325e38d commitcloud: limit the number of backup bookmarks the client sends
Reviewed By: mitrandir77

Differential Revision: D15373957

fbshipit-source-id: a197a39fc5b423f57e07ab92aa6544f62439d9d3
2019-05-20 06:19:49 -07:00
Mark Thomas
66d79c86c8 pull: remove postincoming advice
Summary:
The postincoming checks prints out advice of the following forms:

* `(run 'hg heads' to see heads)`
* `(run 'hg heads' to see heads, 'hg merge' to merge)`
* `(run 'hg heads .' to see heads, 'hg merge' to merge)`
* `(run 'hg update' to get a working copy)`

This advice is no longer useful, so remove it.

Reviewed By: DurhamG, farnz

Differential Revision: D15317185

fbshipit-source-id: 50ba576406c96715fa058399da53462be9b7a3bf
2019-05-20 06:19:49 -07:00
Mark Thomas
a2db36c434 commitcloud: log background backup command and start time
Summary:
Improve logging of background backup commands by including the command that was
run and the time it was started in the background backup logs.

Reviewed By: mitrandir77

Differential Revision: D15334879

fbshipit-source-id: 932e91a43033c5cb06c79ede7b5224da2e34eb7d
2019-05-20 06:19:49 -07:00
Mark Thomas
7f08a38705 commitcloud: pull heads in small groups
Summary:
When pulling heads from commit cloud during sync, pull them in small groups
of heads from around the same time, to prevent overloading the server when
pulling a large number of heads.

Reviewed By: mitrandir77

Differential Revision: D15317184

fbshipit-source-id: 5e69eb970b18292a4f5d643b25fac80c90c5d537
2019-05-20 06:19:49 -07:00
Mark Thomas
3d5a86db59 commitcloud: refactor remote path handling
Summary:
Lift determination of the correct remote path to connect to up to the top-level
command.  This prevents the need to pass around the command-line `**opts` in
all of the commit cloud functions.

Differential Revision: D15295811

fbshipit-source-id: 0e14c1643bad96022c7a01126b447b2a6fcabaed
2019-05-20 06:19:48 -07:00
Mark Thomas
7359c3df5d commitcloud: refactor sync processing
Summary:
Refactor how commit cloud sync works.

Sync is simplified by delegating backup processing to the existing backup code.
This happens first, which means the user's work is backed up earlier, and the
sync processing can assume that all backed up commits are available in the
cloud storage.

Sync no longer attempts to handle the case where cloud storage has changed.
Instead, backup processing should ensure that all local commits are backed up
to the current cloud storage.

If a commit can't be backed up, then treat this as a normal failure to
sync and ignore that commit for this sync attempt.  If a commit can't be
downloaded from the server then the sync fails.

Reviewed By: mitrandir77

Differential Revision: D15295499

fbshipit-source-id: d371c5bf0daedbbe42e8c7d4a0c3d1a40c21a36f
2019-05-20 06:19:48 -07:00
Mark Thomas
5de98a79fb commitcloud: refactor commitcloudutil into separate modules
Summary:
Move token location into the `token` module.

Move subscription management into the `subscription` module.

Move obsmarker management into the `obsmarkers` module.

Move everything else to a `util` module which can be disambiguated at import time.

Differential Revision: D15282859

fbshipit-source-id: 7f20c449fd79ffc33b069236a05fc73fac0e7d63
2019-05-20 06:19:48 -07:00
Mark Thomas
4d832ec6b1 commitcloud: rename commitcloudcommands to commands
Summary:
The name is too long.  We can disambiguate with `edenscm.mercurial.commands` at
import time if required.

Differential Revision: D15282860

fbshipit-source-id: e55357a121b583d9fd659f27dd5e2adc8a3d4d2f
2019-05-20 06:19:47 -07:00
Mark Thomas
7188ff5a82 commitcloud: refactor errors into the error module
Differential Revision: D15282858

fbshipit-source-id: b832b593588290cf94d1826ea20af7ce8d410468
2019-05-20 06:19:47 -07:00
Mark Thomas
4f3b9594b9 commitcloud: refactor backuplock and sync progress into the backuplock module
Differential Revision: D15282857

fbshipit-source-id: 666a8cab25ef1a837dd4340f118e9e88b2b109a2
2019-05-20 06:19:47 -07:00
Mark Thomas
81d738646f commitcloud: incorporate infinitepush backups into commitcloud
Summary:
Merge the functionality of the infinitepushbackup extension (backing up commits
to commit cloud) into the commitcloud extension.

These two extensions are highly coupled, and the commitcloud extension
monkey-patches the infinitepushbackup extension for a lot of its functionality.
There is also a lot of code duplication between the two extensions which we can
remove if they are part of the same extension.

The infinitepushbackup commands (`hg pushbackup`, ...) are moved to subcommands
of the `hg cloud` command, e.g. `hg cloud backup`.

Each feature of the infinitepushbackup extension is moved to a new module
in the commit cloud extension:

The `background` module controls background execution of `hg cloud backup` and
`hg cloud sync`.

The `backupbookmarks` module tracks and updates scratch bookmarks for backups.
This will be deprecated in the future.

The `backupstate` module tracks whether or not a commit has been backed up.
This is now tracked separately from backup bookmarks in a new file:
`.hg/commitcloud/backedupheads.<remote-identifier>`.  This also covers hidden
commits, preventing a re-backup of previously backed up commits when they are
unhidden.

Previously the commitcloud extension customized the smartlog annotations: `Backing up`
became `Syncing`, etc.  This is now removed for consistency.

Previously the infinitepushbackup extension disabled background backup by
injecting an `infinitepushbackup.disableduntil` config entry into the user's
config.  This is now replaced with a state file at `.hg/commitcloud/autobackup`.
Either option can be set to disable auto backup.  Commit cloud will wait until
both have expired before starting to run background backups again.

Reviewed By: DurhamG

Differential Revision: D15276939

fbshipit-source-id: 1d28989a157286e47d3dd97ca9c70b27f692dda1
2019-05-20 06:19:47 -07:00
Mark Thomas
6c0e62aec2 rust: switch to thin lto
Summary:
Thin lto is much faster to compile, and doesn't make the resulting binaries
that much bigger.

Reviewed By: xavierd

Differential Revision: D15396282

fbshipit-source-id: 3e2bf059756d47218061d7e41f041e445d7f60c8
2019-05-20 04:08:03 -07:00
Mark Thomas
abb390625f bindings: merge pyrevisionstore code into bindings
Summary:
D15381038 made the `pyrevisionstore` crate a strongly-coupled dependency of the
`bindings` crate.  For simplicity, just move the code into the bindings crate.

Reviewed By: xavierd

Differential Revision: D15392547

fbshipit-source-id: 3dfa924b33722760ef7829fbb8659ce0262e6671
2019-05-20 04:08:03 -07:00
Jun Wu
12747763a5 pathmatcher: make gitignore "explain" low cost and more verbose
Summary:
This is a nice-to-have feature requested by nikz. He made an initial version
at D15029612, which changes `MatchResult` to include enough infomation to
explain a rule.

The diff reworked the feature so the runtime CPU and memory overhead stay
minimal if nothing needs to be explained.  The change also makes it easier
to display more information - all rules matching a path, to make it easier
to detect and remove duplicated or conflicting rules.

Reviewed By: DurhamG

Differential Revision: D15095576

fbshipit-source-id: 5784aabd50d9b716dceead10bc593f9155228046
2019-05-17 14:25:26 -07:00
Xavier Deguillard
90e4ab0d4e bindings: fold pyrevisionstore lib into the bindings lib
Summary:
After D15266191, the bindings crate directly depends on pyrevisionstore, and
since then we have seen really weird compilation errors that magically go away
when some files are touched.

From my observations, here is what I came up with. The pyrevisionstore crate is
both compiled as a dependency of the bindings crate, and as a library to be
used in python. Therefore, its Cargo.toml contains a '[lib]' section, the
presence of this section forces the crate to be compiled into a
"libpyrevisionstore.{rlib,so}", while all the regular crates have a hashed
suffix like "libedenapi-2b9975ec9b865e87.rlib".

None of this would usually matter, but our build system re-uses the build
directory to then compile the pyrevisionstore library. While doing so, it will
re-create the "libpyrevisionstore.{rlib,so}", but not in an identical fashion.
After this, the rest of the build succeeds.

Once a file in the bindings crate is touched, recompiling will only recompile
its file, and not the pyrevisionstore crate, but since
"libpyrevisionstore.{rlib,so}" is different, it now fails to compile...

A previous effort tried to compile each top level target into a separate
directory, but that directly affected some of our tests. Since the underlying
issue is that pyrevisionstore is compiled twice, let's simply not compile it as
a top-level target and simply fold it into the bindings lib. Ideally, we would
want to do the opposite, but let's do that at a later time.

Reviewed By: DurhamG

Differential Revision: D15381038

fbshipit-source-id: 047cfab794371464942f19084ffb9240e836cb40
2019-05-17 08:20:53 -07:00
Jun Wu
302109a922 config: move default.d/mergetools.rc to code
Summary:
See the previous diff for motivation.

This diff moves the special builtin config to code so we no longer need
"data_path" for the "load_system" API.

Reviewed By: markbt

Differential Revision: D15307750

fbshipit-source-id: 15b729e6585ead5ead05ffd6ffe688387b8e0be9
2019-05-16 17:31:26 -07:00
Jared Bosco
476e71b1cc commands: add root --shared to print the shared root of the current directory.
Summary: When the `--shared` flag is passed to `hg root` i.e. `hg root --shared` - display the shared root of the current directory.

Reviewed By: quark-zju

Differential Revision: D15363157

fbshipit-source-id: 6e6c13f27c624502a83edc1046ae3d4de227b6b8
2019-05-16 11:10:29 -07:00
Jun Wu
348e0831e2 templates: move builtin styles to code
Summary:
See the previous diff (D15291676) for motivation. Basically, it's hard to keep
static resources work well with 3 different kinds of deployments (buck xar,
Windows zip, and python side-packages).

This diff just precomputes common styles and hardcoded them in Python code.

This should address a user complaint that `-T xml` does not work.

Reviewed By: markbt

Differential Revision: D15307457

fbshipit-source-id: de4edb0b6896b731301715abe612a31b1512b00a
2019-05-16 09:49:02 -07:00
Mark Thomas
c7a7446546 debugrefreshwatchmanclock: don't trigger commitcloud autobackup
Summary:
The debugrefreshwatchmanclock command opens a transaction which triggers
commitcloud background backup.  This is pointless, as it doesn't actually
make any changes that need backing up.

Set ignoreautobackup to prevent the backup.

Reviewed By: mitrandir77

Differential Revision: D15354508

fbshipit-source-id: 1460ed0ac227f5918a6bf3fea6860d7d2f077d0d
2019-05-16 02:40:26 -07:00
Mark Thomas
3584341a18 visibility: use x graphnode for invisible commits
Summary:
The `-` graphnode can be confusing as `-` is also used for horizontal graph lines.

There are no good ASCII characters to use for invisible commits, so revert to
just using `x` so that they match obsolete commits.

Reviewed By: quark-zju

Differential Revision: D15293717

fbshipit-source-id: 5d1f327ddd8c3f104a99f494309a79b10ad71401
2019-05-16 02:35:48 -07:00
Jun Wu
16c156f11f edit: save editor text for 2 weeks
Summary:
There are multiple reports that the work in the commit message editor gets lost
for various reasons. We have `.hg/last-message.txt` for commit hook failure,
but that one does not take care of all code paths (ex. metaedit).

This diff changes `ui.edit` directly to try to save messages in `.hg/edit-tmp`
for 2 weeks.

Reviewed By: kulshrax

Differential Revision: D15347831

fbshipit-source-id: 9207adf4315d94a4892685a03f323e89d9c4a7f1
2019-05-15 17:20:13 -07:00
Puneet Kaushik
9dbbb1be80 Removing read to .eden/symlinks on Eden Windows Thrift client
Summary: We don't have the .eden/symlinks on Windows right now. Will enable this code when we have them or something equivalent working. This change would help make the hg commands that don't need to talk to Eden work. In the next diff, will teach the Thrift client how to talk to Eden and will start sending status and other requests to it.

Reviewed By: quark-zju

Differential Revision: D15341528

fbshipit-source-id: f0a6fb092f6873002f8db119f07ab884399c9bf6
2019-05-15 09:23:00 -07:00