Commit Graph

210 Commits

Author SHA1 Message Date
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
Nitzan Raz
7e4907ef7c ignore: make debugignore support gitignore
Summary: Make `hg debugignore` show what gitignore rules match the files.

Reviewed By: quark-zju

Differential Revision: D15029612

fbshipit-source-id: e3621c198b9d6e3823de5587b0b859d2d0e36888
2019-05-15 02:05:27 -07:00
Jun Wu
4d6591aee7 help: move help docs to Python code
Summary:
It's a headache about how to deal with static files (help/, template/, default
config), since we have 3 different ways of packing the Python code: normal
(linux), embedded (Windows), and fbcode xar (linux). The latter two need
workarounds to make `help/` work, and for the "embedded" case, It is currently
broken.

This diff moves user-facing `help/` files to a Python module to remove the need
of special casing it in different ways.

`helptext.py` was created via:

  import glob, os
  for path in glob.glob('help/*.txt'):
      if path.count('.') == 1:
          name = path.split('.')[0]
          name = os.path.basename(name)
          if '-' in name:
              name = 'globals()[%r]' % name
          print("%s = r'''%s'''\n\n" % (name, open(path, "rb").read()))
          os.unlink(path)

The help text about named branches are removed to make `test-check-help.t`
happy.

Reviewed By: mitrandir77

Differential Revision: D15291676

fbshipit-source-id: 2320bd59369ef092d8c06b8539e401799a0467ef
2019-05-13 16:23:40 -07:00
Jun Wu
fe6e63becd help: drop internal help from UI
Summary:
Drop the "internals" help text from the UI. This is because the internal docs
are mostly outdated (ex. we're moving to new HTTP protocols and slowly removing
bundle2 formats, we're moving away from revlogs).

This diff just disabled access to them via the `hg help` command, the files are
still accessible in the repo.

Reviewed By: kulshrax

Differential Revision: D15291675

fbshipit-source-id: a6e55e0ed085bb54def3790aaaf1a92a4bfa787f
2019-05-13 16:23:40 -07:00
Mark Thomas
8bafc6e7f8 ui: write to stderr in a single operation
Summary:
Writes to stderr may be unbuffered.  This means when `ui.write_err` is called
with multiple strings, they may end up being separated as different writes.
This causes flakiness in the test, particularly when receiving error messages
from a remote server, as depending on timings output may appear as either:

    remote: abort: error message

or

    remote: abort:
    remote: error message

Write to the error stream in a single operation by joining all the messages together.

Differential Revision: D15316694

fbshipit-source-id: de5edf05e137d88006a0919f02f8b9cf7a17fa42
2019-05-13 05:12:53 -07:00
Arun Kulshreshtha
8ffbe5988a edenapi: remove hyper client
Summary:
The Hyper-based EdenAPI client proved to be problematic in practice due to various difficult to debug issues with Tokio, Hyper, TLS, and h2. We have kept it around for the time being while building out the Curl based client in case we wanted to revert back to a pure Rust solution.

Today, the Curl client works well, and future work on the EdenAPI will involve adding more functionality to it. Given that both the Hyper and Curl clients implement the EdenAPI trait, modifications to the trait involve updating both clients. So far this has been acceptable because the updates have been minor, but we would now like to add substantial new functionality to the trait (namely tree fetching), and adding this functionality to the Hyper client would take nontrivial effort.

Given that we aren't using this client at all, let's just delete it. We can always bring it back from the repo's history if we need it in the future.

Reviewed By: quark-zju

Differential Revision: D15289196

fbshipit-source-id: d9c0c3cfc5087c3e080a9919dd9e627b9657676c
2019-05-09 21:39:28 -07:00
Xavier Deguillard
dd69d770c3 edenapi: plumb MutableHistoryStore
Summary: The edenapi is now independant of the storage type for history data.

Reviewed By: kulshrax

Differential Revision: D15284355

fbshipit-source-id: 72a5db42bb0fb19ee03155b13914202581ab5966
2019-05-09 18:33:50 -07:00
Xavier Deguillard
89b44424d6 edenapi: use a MutableDeltaStore instead of a MutableDataPack
Summary:
The type of store where data is stored is now fully abstracted to the python
bindings. For now, edenapi will write to the pending mutabledatapack, but we
can now switch it easily to any other store implementing MutableDeltaStore,
including an IndexedLogDataStore.

Reviewed By: kulshrax

Differential Revision: D15266191

fbshipit-source-id: 638cf90a567ef170e0302376312c4b82e6d6b6da
2019-05-09 18:33:48 -07:00
Mark Thomas
60e99a245c ui: add labelled prefixes to ui.write
Summary:
Add optional prefix keyword arguments to `ui.write` (and thus `ui.status`,
`ui.warn`, etc.).  These prefixes can be used to indicate an error condition,
some notice to the user, or to mark a message as coming from a particular
component.  The prefixes are labelled so that they can be colored to stand
out from the surrounding text.  The default colors are red for errors, yellow
for notices, and cyan for components.

Add a component parameter to `error.Abort` (and thus any exception that
inherits from it) that can be used by callers to mark which component is
responsible for the exception.   When the error is printed, the component is
passed as the component prefix of the error message.

Reviewed By: mitrandir77

Differential Revision: D15201946

fbshipit-source-id: 02e3da40e9563704fa1d7ce81366e6e7f66c7f34
2019-05-09 06:55:11 -07:00
Marla Azriel
18f2c260d9 commands: help text for purge, revert
Summary: Updated help text for hg purge, hg revert

Reviewed By: kulshrax

Differential Revision: D15200356

fbshipit-source-id: 99a30a5cccca22b66245264f0f7ed761dc48e256
2019-05-07 14:07:34 -07:00
Durham Goode
34d0345ce3 worker: fix string formatting issue
Summary:
In a previous diff I did a last minute refactor that apparently broke a
test. I needed to update this line as well to swap the arguments.

Reviewed By: singhsrb

Differential Revision: D15219418

fbshipit-source-id: c66a2cf7bbbec80ebbbd6ca818151de5f0c2d2c5
2019-05-06 14:46:01 -07:00
Durham Goode
520f62ff69 tracing: record how many bytes are written to disk
Summary:
This updates our apply updates logic to record how many files and how
many bytes were written to disk.

Reviewed By: quark-zju

Differential Revision: D15173846

fbshipit-source-id: c26d2b17f45e407f837c78c93fc440e960d4f922
2019-05-03 13:09:34 -07:00
Durham Goode
44ef67cc59 tracing: record lfs download size
Summary:
Adds tracing support for recording how many bytes we download for lfs,
including the download speed.

Reviewed By: kulshrax

Differential Revision: D15167587

fbshipit-source-id: fb76bbf15cd44dcef2601d9e750794816d273120
2019-05-03 13:09:33 -07:00
Mark Thomas
5588453fb6 threading: suppress non_camel_case_types warning
Summary:
`bug29988wrapper` is a non-camel-case type, which fits the Mercurial Python
code style, but the Rust compiler warns about it.  Suppress the Rust warning.

Reviewed By: quark-zju

Differential Revision: D15197827

fbshipit-source-id: 54d0b4020f8e43e3bc24f9ab37e0ede55dc919e9
2019-05-03 11:17:51 -07:00
Arun Kulshreshtha
60f8a0938f edenapi: improve progress reporting
Summary:
This diff adds a new progress reporting framework to the Eden API crate and uses it to power progress bars for HTTP file downloads in Mercurial.

The new `ProgressManager` type is designed to aggregate progress values across multiple concurrent HTTP transfers. The API is currently designed to integrate well with libcurl's progress callback API, allowing all of the curl handles within a curl multi session to concurrently report their progress.

This progress can then be reported (in aggregate) to a user-provided callback. In most cases, this callback will be a Rust wrapper around a callback provided by the Python code. The `EdenAPI` trait and FFI bindings have been updated accordingly to allow optionally passing in a callback for long-running operations.

Lastly, in `remotefilelog`'s Python code, the callback is specified as a Python closure that simply updates the progress bar.

Reviewed By: quark-zju

Differential Revision: D15179983

fbshipit-source-id: ee677b71beff730f91aafe0364124f7ea0671387
2019-05-02 14:20:55 -07:00
Arun Kulshreshtha
453c7a95fc edenapi: make hg debughttp print real hostname of api server
Summary: Per title, `hg debughttp` now prints out the hostname that the API server reports rather than the hostname in the URL we used to connect to it. The reason for this is that if the API server is behind a VIP, we get the actual hostname rather than just the VIP URL.

Differential Revision: D15170618

fbshipit-source-id: 9af5480f9987d8ea9c914baf3b62a00ad88d1b32
2019-05-01 19:56:32 -07:00
Durham Goode
5a2a03b4a0 tracing: add tracing for editors
Summary: Let's record how long editors are open

Differential Revision: D15156558

fbshipit-source-id: 3b0a42982f7c0b3fed69f27f456e1adcdcaaa834
2019-05-01 11:21:07 -07:00
Durham Goode
1ed06a794c tracing: add tracing for obsolescence computation
Summary:
I noticed this takes 500+ms in some cases. Let's track both the old
computation and the new, and flag them so we can differentiate between them.

Differential Revision: D15156559

fbshipit-source-id: ec2983081e4fa01d017212783e3fcb040f9fd4e5
2019-05-01 11:21:07 -07:00
Zeyi (Rice) Fan
dec9b9c752 retry when failed fetching from contentstore
Summary: This diff improves `hg debugedenimporthelper` reliability by retrying when a possible race condition happens in Mercurial. This could save us from the cost of restarting the importer.

Reviewed By: simpkins

Differential Revision: D15150902

fbshipit-source-id: 67af2e044e9c3a16c073a0d1252fbfc2e5ce1014
2019-04-30 16:04:58 -07:00
Zeyi (Rice) Fan
c946381fe2 improve debugedenimporthelper error message
Summary: We are seeing some errors are being thrown as `RepoResetError` but it is quite difficult to tell what exactly is the error from our current logging. This diff improves the logging to help us debug the problem.

Reviewed By: chadaustin, simpkins

Differential Revision: D15067819

fbshipit-source-id: fefb27497076e42736a09bb3be3a0734fd67668d
2019-04-30 10:51:30 -07:00
Aida Getoeva
afcaa6ce4a remotenames: add markaccessed method to the API
Summary: `accessed(..)` method will allow to log the fact of a name access, that is needed to track interesting remotenames.

Reviewed By: markbt

Differential Revision: D15047919

fbshipit-source-id: 29566653e742b3f24b742ffce2282baed833ea61
2019-04-30 09:26:11 -07:00
Jun Wu
850bb2d161 dirstate: remove hgignore features
Summary: We have turned off hgignroe globally for a while. Let's remove the code now.

Reviewed By: kulshrax

Differential Revision: D15110678

fbshipit-source-id: d0c2061413f6a48a6bfda5b26d15007e7890d20c
2019-04-29 18:22:37 -07:00
Jun Wu
037caa0b04 extension: support inlined extensions
Summary:
This diff adds support for extension source code inlined into configuration.

The main intended use case is to use Chef to quickly deploy config changes.
The config change can be inlined extensions that patch broken logic.
Since extensions are more powerful than pure config changes, we gain the
ability to hotfix more complicated issues.

In theory, Chef can also write files to the filesystem. It's less convenient
because different OSes might require different paths, cleaning them up might
be extra work.

Reviewed By: ikostia

Differential Revision: D15073429

fbshipit-source-id: 7696bdce72bf7222debc72002173feb7de95198f
2019-04-29 13:52:19 -07:00
Alexander Kindyakov
88239b04fb debuglock: also report infinitepushbackup and prefetch locks
Summary:
To be able to investigate problems with dangling lock files "infinitepushbackup" and "prefetch".
   - "infinitepushbackup", file "infinitepushbackup.lock" in repo.sharedvfs
   - "prefetchlock", file "prefetchlock" in repo.svfs

Also some small fixes around.
  - Crate "undolog" directory if it doesn't exist.
  - `report` function was restructed. Now if lock checking method is not passed
    lock will be checked with `lockmod.lock`.

Reviewed By: markbt

Differential Revision: D14949807

fbshipit-source-id: 02143ff923145e67e88c5627cf3355a834823b6d
2019-04-29 04:34:28 -07:00
Xavier Deguillard
00506c11d5 treestate: replace error-chain with failure
Summary:
The error-chain crate is un-maintained and triggers warnings when compiling
with new versions of Rust. Let's use the failure crate instead to be consistent
with the other crates.

Reviewed By: singhsrb

Differential Revision: D15106306

fbshipit-source-id: 8edcf9f9aaf4b6e2d5f214b26fed3e72d4f3acd1
2019-04-26 16:23:35 -07:00
Durham Goode
28f410c912 pushrebase: don't create transaction during pushkey
Summary:
D14185380 made it so pushrebase will always force pushkey to get a
transaction. This has the side effect of making infinitepush bundles take the
lock and fire transactions. They should do neither.

Let's instead request the transaction at bookmark edit time.

Reviewed By: singhsrb

Differential Revision: D15094917

fbshipit-source-id: 6573447a7ba61b1853a37eacb1b3e767abb3f27f
2019-04-26 15:42:27 -07:00
Durham Goode
cec671ce4c configs: backup pinned and unserializable configs during overrides
Summary:
When using ui.configoverrides, it was previously just backing up
self._rcfg. It turns out that calling ui.setconfig (which is called as part of
configoverrides) will mark the given config as pinned and potentially
unserializable. If a config is pinned, that means we will never again read a
value into it, so when we open a bundlerepo and attempt to load the repo
specific hgrc into it, any pinned values simply don't get written.

So there are two bugs here:
1. overriding a config should not result in the config key being considered
pinned forever.
2. Cloning a ui should reset the pinned list since we don't actually clone any
of the pinned data into the new ui

Either of these alone would fix our problem with bundlerepos, but both are
necessary for general correctness.

Reviewed By: ikostia

Differential Revision: D15074037

fbshipit-source-id: 37f67f13f1d2975299be97d796b52ec2b97bca24
2019-04-26 12:07:42 -07:00
Jun Wu
e7cd31d046 revset: use path instead of relpath in follow()
Summary:
The `path` argument passed to the follow revset is absolute. So `path` instead
of `relpath` should be used.

Reviewed By: DurhamG

Differential Revision: D15071189

fbshipit-source-id: 6aec76fa1a8cabd545a375aa40448cc75dbd1d6d
2019-04-24 17:33:43 -07:00
Arun Kulshreshtha
f1c1cf95d6 edenapi: release GIL during data fetching
Summary: Release the GIL during data fetching to allow for progress bars to update properly. The data fetching code is pure Rust and does not interact with the Python interpreter at all, so releasing the GIL here is safe.

Differential Revision: D15051852

fbshipit-source-id: 144da953720951f9a30aadfc2b7fc8c8bc6b14aa
2019-04-24 13:33:58 -07:00
Mark Thomas
cfcad0d112 mutation: correctly detect split completion
Summary:
When detecting split completion for the purposes of recording mutation, we used
`cmdutil.comparechunks`.  This doesn't work for curses-recordings where the
only change is that some lines of a patch were excluded.

A simpler check is to just generate the patch that split is going to use, and
see if that matches the original patch.

Additionally, prevent the insertion of empty split records, as this can
cause crashes.

Reviewed By: mitrandir77

Differential Revision: D15063983

fbshipit-source-id: ba717d7f065faea93a500caaf10a1dbf582c7ab1
2019-04-24 12:04:10 -07:00
Mark Thomas
0a80521b0e visibility: convert from obsmarkers only when starting tracking
Summary:
Rather than relying on implicit conversion from a missing visibleheads file,
explicitly convert visibility information from obsmarkers when enabling
visibility tracking.

Reviewed By: mitrandir77

Differential Revision: D15063290

fbshipit-source-id: 44309f3cdf92c4ae100570b3bd98a240999ed558
2019-04-24 12:04:09 -07:00
Mark Thomas
ccf6c2f12a visibility: add blackbox logging of visibility changes
Summary: Track visibility changes in the blackbox log to help with debugging issues.

Reviewed By: mitrandir77

Differential Revision: D15062971

fbshipit-source-id: c547618168f5eb08e6343e0b0d97db136e151a7a
2019-04-24 12:04:09 -07:00
Mark Thomas
51139133c4 mutation: handle mutation graph loops in predecessorsset and successorssets
Summary:
Ordinarily loops are prevented in the mutation graph as the predecessors must exist
at the point that the successor is created.  However, backfilling from a complex
obsolescence graph may inadvertently introduce cycles.

Since loops are invalid, we can safely ignore any mutation edges that may
introduce them.  The `allpredecessors` and `allsuccessors` functions already
do this.

Add loop detection and ignoring to the `predecessorsset` and `successorssets`
functions.

Reviewed By: mitrandir77

Differential Revision: D15062399

fbshipit-source-id: fe892d9236c8d8dc4e1322b82618ab4bca35d30a
2019-04-24 12:04:09 -07:00
Mark Thomas
5e64071333 visibility: use graphnode '-' for all invisible commits
Summary:
Use the graphnode `-` for all invisible commits, even obsolete ones.

Users will only see them in their logs if:
- they run log with `--hidden`.
- they have invisible commits that are temporarily unhidden (e.g. they've checked it out).

Reviewed By: mitrandir77

Differential Revision: D15061894

fbshipit-source-id: 86873bd86cb15cef72dae248b8e2a636378cc547
2019-04-24 12:04:09 -07:00
Mark Thomas
78952d3298 mutation: assume a land if the successor is public and op is blank
Summary:
When computing the fate of a commit, if we find the immediate successor is the
next visible commit, we return the operation of the mutation record for that
single operation.  If it's not available, we then look at whether or not the
commit is public to decide between the fallbacks of `land` or `rewrite`.

Unfortunately, not all land operations end up with a `land` op.  In particular,
obsmarkers created with pullcreatemarkers and then backfilled into mutation
records have a blank operation, and so we show `rewrite` here when we should
show `land`.

Switch around how we calculate the fate.  Compute a default operation of `rewrite`
or `land`, based on the phase of the successor, and then use that if the successor
is not the immediate successor, or if the recorded operation is blank.

Reviewed By: mitrandir77

Differential Revision: D15061863

fbshipit-source-id: 753b0b58f84e653b40f9918f7ad3b3adfff359d8
2019-04-24 12:04:09 -07:00
Mark Thomas
a2131ea555 automigrate: add automigrate for mutation and visibility
Summary:
In the automigrate step at the start of pull, perform automigrations for
mutation and visibility.

If `mutation.automigrate` is set to true, then backfill obsmarkers into the
mutation store.  This step can take a couple of seconds for large obsstores, so
print a message.

If `visibility.automigrate` is set to `"start"`, switch to explicit visibility
tracking.  If it is set to `"stop"`, switch back to obsmarker-based tracking.

Reviewed By: mitrandir77

Differential Revision: D15046139

fbshipit-source-id: 284268d42b52c6b296c5c1b73db7bc218ae29a0a
2019-04-24 12:04:08 -07:00
Mark Thomas
94257a258b blackbox: clean up blackbox logging and log more during rage
Summary:
Clean up some of the calls to `ui.log` and how they appear in blackbox logging.

* Make the names of the events consistently use `snake_case`.
* For watchman, only log once for each watchman command.  Include whether or not it failed.
* Unify `fsmonitor` logging under the `fsmonitor` event.
* Omit the second argument when it is empty - it is optional and does nothing when empty.
* Increase the number of blackbox lines included in rage to 100.

Reviewed By: quark-zju

Differential Revision: D14949868

fbshipit-source-id: a9aa8251e71ae7ca556c08116f8f7c61ff472218
2019-04-23 02:48:50 -07:00
Arun Kulshreshtha
6745729cbd edenapi: make file validation configurable
Summary: Add a new config option to toggle file validation.

Differential Revision: D15034687

fbshipit-source-id: 3783ea1dacad9d1e494a5de1388f703db0ed1129
2019-04-22 14:46:29 -07:00
Arun Kulshreshtha
e5bbec4a60 edenapi: use argument unpacking in client constructor
Summary: We have to pass a lot of config options across the FFI boundary; these are currently passed as arguments to the Eden API client constructor. Let's use argument unpacking to avoid repeating a bunch of argument names in the call to the constructor.

Differential Revision: D15034480

fbshipit-source-id: 74d0830c686c8863fcede6e57404aec3f0a58ea1
2019-04-22 14:46:28 -07:00
Jun Wu
ec5f4f4f6a smartset: fix a possible StopIteration exception
Summary:
Python's `next()` can raise the `StopIteration` exception, unlike Rust's `next`
which just returns `None` instead.

Fix it by providing a default value `None`.

Reviewed By: singhsrb

Differential Revision: D15008773

fbshipit-source-id: df885c63b8130ceac38f86c89f2547dde2d519ba
2019-04-18 19:32:54 -07:00
Kostia Balytskyi
029666aa4b debugcasecheckcollisions: fix case collision detection corner case
Summary:
The way this command was implemented before this change would collapse
existing case collisions into a single value of the `lowerdirlist` dict.
The value that was chosen would be dependent on the traversal ordering.

If this value would be equivalent to the newly-introduced file, we would
miss the collision.

Reviewed By: markbt

Differential Revision: D14971701

fbshipit-source-id: d352e96e512154d92fe6bc49dd76aec63b954fef
2019-04-17 07:48:31 -07:00
Jun Wu
861bf3595a revset: move "log dir" special path to "follow()" revset
Summary:
The "hg log" implementation chooses to not use the "follow" revset when logging
a directory, but use "_matchfiles" instead. In an upcoming change, we'd like
"follow" to handle directories so fastlog only needs to patch the "follow"
revset.

The "follow" revset can take a directory pattern just fine. The problem is
"follow" will follow *every* file inside the specified directory, which is
quite expensive.

For now, I just moved the "_matchfiles" fallback path to "follow" so when it
detects there are too many files to follow, it will switch to "_matchfiles"
directly.

In theory, tree manfiest repos would have "tree manifest" infomation that speed
up "follow" on a directory. But that's a bigger change, and it's probably very
slow in our setup because our trees are lazy.

This changes some behaviors subtly, as reflected in tests:

- `-f path` can use DAG range instead of rev range, which is a good thing as
  rev range does not make much sense to end-users. This removes a "BUG" in
  test-commit-amend.t
- `-f dir` can follow renames if the directory contains just a few files.
  This looks like a good thing, and is reflected in `test-log.t`.

Reviewed By: sfilipco

Differential Revision: D14863134

fbshipit-source-id: 99ddff46d43f63ce03dc7bf005e3ac1cb9b39d03
2019-04-16 22:19:19 -07:00
Jun Wu
59cafd4595 smartset: add a fast path for spanset
Summary:
With upcoming changes, I noticed `limit(reverse(:.) & follow("path:fbcode/scm/hg"), 10)`
is much slower than `limit(reverse(::.) & follow("path:fbcode/scm/hg"), 10)`. I tracked
it down to the fact that spanset introduces a lot of unnecessary checks. Optimize it
by avoid using spanset in this case.

The revset pattern is used by `hg log`, the `reverse(:.)` part is to "define" the
order. Perhaps we sould replace it with `reverse(::.)`. But that's a BC change that
might have some unwanted side effects.

Reviewed By: sfilipco

Differential Revision: D14863135

fbshipit-source-id: 6ba8a02b58e1109bdf8370f03965a3b302cba6c0
2019-04-16 22:19:18 -07:00
Stefan Filip
09aa2f900f bindings: use RepoPath in edenapi
Summary: migration

Differential Revision: D14945335

fbshipit-source-id: 0aa90bee100fdae8755e7abfa6ac614f5bcaf266
2019-04-16 15:34:31 -07:00
Chad Austin
179e2d2db4 fix crash in sampling
Summary: `log` itself does the interpolation, so don't do it in advance.

Reviewed By: quark-zju

Differential Revision: D14941862

fbshipit-source-id: 6885202cfbff4ce0310d68bb1676369c3ef64c53
2019-04-15 17:27:53 -07:00
Max Kareta
27abd9e79d dispatch: fixed arguments escaping before invoking hooks
Summary:
This diff adds args escaping using single quote symbol before sending them to hooks.
Before all arguments where joined by space symbol " " which was producing incorrect result when argument itself contains space symbol.

Reviewed By: markbt

Differential Revision: D14799188

fbshipit-source-id: df5a4324d138515a4b881df96f2991de03df7a5b
2019-04-15 06:56:50 -07:00
Stefan Filip
7e2b3c256f types: rename Key::new to Key::from_name_slice
Summary:
We should update the builder for Key to take a repo path. We could build
the key directly using the default struct constructor but representing
the two constructors as functions is more clear.

Reviewed By: quark-zju

Differential Revision: D14877543

fbshipit-source-id: 328906521cdbad535e28df22fea82f21e8b5410a
2019-04-14 19:56:50 -07:00
Durham Goode
c32fd83458 tracing: log manifold perftrace samples
Summary:
We currently send perf traces to the blackbox, but we also want to log
them to our metrics. This configures hg to log the perf trace as a sample. Later
diffs will configure our wrapper to route these samples to manifold.

Reviewed By: mitrandir77

Differential Revision: D14881308

fbshipit-source-id: 07690f9af9fe14279a9ebf5089548c5880cba45d
2019-04-11 10:06:37 -07:00