Summary:
Change fb-hgext's sparse to treat patterns correctly (this was brought to
my attention by @martinvonz on the mailing list).
This patch makes sure that:
```
reporoot/subdir$ hg --include **/file
```
results in `subdir/**/file` being included rather than `subdir/`.
Test Plan: rt
Reviewers: mjpieters, durham, #fbhgext
Subscribers: martinvonz
Differential Revision: https://phab.mercurial-scm.org/D225
Summary: Before this `test-check-code-hg.t` failed on `undo`-related things.
Test Plan: - rt
Reviewers: felixmerk, #fbhgext
Differential Revision: https://phab.mercurial-scm.org/D226
Standardizes some bin/hex in hg undo. hg stores node data in hex form to make
it easier to read its files and because it seems to resolve some parsing issues.
While converting everything to binary seems prudent, it proved non-trivial and
isn't a pressing concern. If we want to make this change, we should do it
before hg undo is rolled out generally. As no other extension should directly
access the data it doesn't seem that important. Interesting information should
be available with the revsets already.
Differential Revision: https://phab.mercurial-scm.org/D188
Adds smart indexing to localbranch undoes. This eliminates the mental burden of
the user of keeping track in what order and when changes where made. Drawback
is that it raises the computational complexity from the number of draft
commits to draft commits times how many repo states you are undoing. Common use
case should be to undo a small number of changes, so this is acceptable.
hg undo -b changectx finds the closest pertinent change and undoes that. -b
with -n is not supported. The reason it is not supported is that local branch
level undoes are delta specific and not state specific, which in essence means
that running hg undo -b # twice is not guaranteed to give you the same resault
as running hg undo -b # -n 2. We could run -b multiple times for a -n, but the
cost of a -b increases with a larger -n (which isn't the case for a standard
undo), and abort handling would be more complicated (I'm not sure how well we
can roll back a tree of obs markers?). In essence -n with -b is not that
usefull a feature (bc perf limits) and would potentially require a decently large
amount of time to implement correctly.
Also adds redo -b since this command now makes a lot more sense when we use the
smarter indexing. Adds logic to seperate undoes and redoes in different
branches. You can perform relative undoes and redoes within the latest scope,
while undoes and redoes within a new scope will start at the present (absolute)
state.
Differential Revision: https://phab.mercurial-scm.org/D186
Add the ability to undo changes within one 'localbranch'. In the future, this
will probably become default behavior. Undo -b changecontext will undo changes
belonging to the local branch identified by the changecontext (see revset
localbranch). Based on obs markers we can identify connected commits that we
in turn reveal or hide outside of this localbranch. This undo allows users to
work on multiple branches independantly.
Currently, indexing for undoes is still on the repo level. This isn't good
from a ux experience. Next up would be localbranch level indexing logic and
redo logic.
Differential Revision: https://phab.mercurial-scm.org/D160
Adds localbranch revset to be used for localbranch undos. A localbranch is a
set of draft commits that are connected via draft commits. Any draft commit
within a branch, or a public commit at the base of the branch, can be passed as
an argument to localbranch(). This will be necessary for selecting the scope
for a localbranch undo. Also fixes oldraft() output when used with other
revsets. Previously olddraft() would ignore operators such as and because of a
missing the necessary handling.
Differential Revision: https://phab.mercurial-scm.org/D159
Summary: We need a check-code for that.
Test Plan: tested on my laptop
Reviewers: #fbhgext, ryanmce, ikostia
Reviewed By: #fbhgext, ryanmce, ikostia
Subscribers: ikostia
Differential Revision: https://phab.mercurial-scm.org/D222
Summary:
We've spent a lot of time hacking around the outputs of hg in jf (a new
tool we use at FB to interact with our code-review system). We've figured out that it
could be all avoided and made cleaner with simple hg extension that dumps all
the data we need in a format that we can easily consume.
Test Plan: see attached test
Reviewers: #fbhgext, ryanmce
Reviewed By: #fbhgext, ryanmce
Subscribers: quark
Differential Revision: https://phab.mercurial-scm.org/D205
It's breaking Linux tests. I spent some time reading the shell script but
cannot figure out what's wrong quickly, so backing it out to unblock
contbuild now.
Summary: - update the scm-prompt.sh script to display when there have been local changes that haven't backed up in four hours
Test Plan: arc unit tests/test-scm-prompt-hg.t
Reviewers: rmcelroy, stash
Reviewed By: rmcelroy
Subscribers: medson, mjpieters
Differential Revision: https://phabricator.intern.facebook.com/D5498437
Tasks: 18349390
Signature: t1:5498437:1501083894:8a8872df2c6492006c8a76c365d53a3b9a41933a
Summary:
- change the infinitepush extension to record additional state when the a backup occurs.
- useful for other tools (scm-prompt, nuclide) to indicate when a backup hasn't occurred recently
Test Plan:
- cd facebook-hg-rpms/
- source hg-dev
- cd fb-hgext
- arc unit
Reviewers: rmcelroy, stash
Reviewed By: stash
Subscribers: rmcelroy, medson, mjpieters
Differential Revision: https://phabricator.intern.facebook.com/D5321221
Tasks: 18349390
Signature: t1:5321221:1501271966:6698785e0714e3ecf7e1e2684d1e62e52ac0f1a0
Summary: My hostname contains an underscore and that causes these tests to fail.
Test Plan: arc unit tests/test-infinitepush-logging.t
Reviewers: stash
Reviewed By: stash
Subscribers: medson, mjpieters
Differential Revision: https://phabricator.intern.facebook.com/D5498213
Signature: t1:5498213:1501229709:6cd63cd0e7e644388d21f516893dcd8fb48e75de
Summary:
Keep `showupdated` commit messages limited to a 50 character width,
with a "..." ellipsis to signify that the message was trimmed.
Test Plan: Added a test.
Reviewers: #fbhgext, durham
Reviewed By: #fbhgext, durham
Differential Revision: https://phab.mercurial-scm.org/D217
Summary:
Symlinks must not have newlines at their end. However reading the
content from Perforce, it might contain a newline, so we now strip it.
Test Plan:
python ../../hg-crew/tests/run-tests.py --keep-tmpdir test-p4fastimport-import-modes.t
Reviewers: #idi, #mercurial, rmcelroy
Reviewed By: rmcelroy
Subscribers: rmcelroy, medson, mjpieters
Differential Revision: https://phabricator.intern.facebook.com/D5535514
Signature: t1:5535514:1501601075:20ce811a92d1d5b5a973e05db1d2110599c5ef52
Summary:
Writing multiple entries to a revlog at the same time can trigger a bug
in revlog caching when a revlog separation of inlined data happend. New
transaction postprocessing callbacks will cause a changelog read which
triggers this bug, therefore we force revlogs to be separated from the
beginning, as a workaround for this bug until it's fixed upstream.
Test Plan:
Run an import of 600 revisions on a test server. Saw failure.
Run import with patch appleid of 600 revisions on test server. Failured
disappeared.
Reviewers: #mercurial, rmcelroy
Reviewed By: rmcelroy
Subscribers: mitrandir, rmcelroy, medson, mjpieters
Differential Revision: https://phabricator.intern.facebook.com/D5535509
Signature: t1:5535509:1501613606:97a0a2dca19ae6e915d4777ec6b14d1e9db46242
Summary:
We overwrite existing transactions instead of appending them. So let's just
append them instead. This problem becomes apparent when we started separating
changelog data files from changelog index files which breaks the tests.
Test Plan: python ../../hg-crew/tests/run-tests.py test-p4fastimport-transaction.t
Reviewers: #idi, #mercurial, rmcelroy
Reviewed By: rmcelroy
Subscribers: mitrandir, rmcelroy, medson, mjpieters
Differential Revision: https://phabricator.intern.facebook.com/D5535507
Signature: t1:5535507:1501613588:efeead423ca6d6fb50a4d4f83af68e8f87688912
Summary:
The debug output of p4fastimport depends on the users environment (e.g. cvs
tools installed or not). Glob the corresponding output
Test Plan:
Tests didn't run before on my machine,
now they run
Reviewers: #mercurial, rmcelroy
Reviewed By: rmcelroy
Subscribers: rmcelroy, medson, mjpieters
Differential Revision: https://phabricator.intern.facebook.com/D5535504
Signature: t1:5535504:1501613540:f6f42e97eb0e7515146eea888bfd758759d69f71
Certain extensions (specifically infinite push) call full fledge mercurial
commands. Since all proper mercurial commands might change the repo state,
these are tracked and changes are recorded, which at best causes confusing repo
states for the user and at worst prevents the user from undo-ing due to
precieved gaps in the log. By using an env flag we can avoid this.
This change was tested in a repo with infinite push enabled with unit tests.
Differential Revision: https://phab.mercurial-scm.org/D198
Lock error handling reduces likelyhood undo hangs or breaks other commands.
Fixes known bug of undo in read-only repo. Undo is not neccesary for mercurial
to work and handles missing data (decently) well. Failing silently (potentially
logging to scuba for timeouts) is acceptable, since if the issue is real we will
fail not silently when trying to undo.
Differential Revision: https://phab.mercurial-scm.org/D200
Summary:
Adds a new revsetpredicate: `age()`, which matches changesets that are
older or younger than a certain age.
Test Plan: Add new unit test for the predicate.
Reviewers: #fbhgext, stash
Differential Revision: https://phab.mercurial-scm.org/D196
Summary:
Allow summarisation of commits that have not been backed up
by infinitepush.
1. Add a template keyword (backupstatus) which evaluates to
one of "Public", "Backed up", "Backup pending", or
"Not backed up" depending on the backup state of the
commit. Commits are pending for 10 minutes, after which
they are declared not backed up.
2. Add a summary to the end of smartlog that shows the
number of commits that are not backed up.
Configuration options allow the addition of an education
message to inform users what to do about their failing
backups, and the message can also be suppressed.
Test Plan:
New unit test for both the keyword and the summary.
Reviewers: #fbhgext, stash
Subscribers: mitrandir, quark, akushner
Differential Revision: https://phab.mercurial-scm.org/D184
Summary:
Previously fastmanifest.usecache=False would only prevent the reading of the
fastmanifest cache, but the cache was still created. This created excess IO on
services that frequently recreated the repository.
Test Plan: Added a test
Reviewers: #fbhgext
Differential Revision: https://phab.mercurial-scm.org/D155
Summary:
There is an existing template "diffstat" which gives a minimal and not
very useful output containing the overall number of files that changed, total
number of lines inserted for all associated files, and total number of lines
deleted for all associated files.
On the other hand, the output from the command line option "stat" is much more
descriptive. Therefore, users end up using commands of the form
hg log -r . -T '{author}{date}' --stat
When they would have preferred something like
hg log -r . -T '{author}{date}{stat}'
This change adds the template "stat" which will allow for the desired behavior.
Test Plan:
# Added a new test test-template-stat.t
# Ran arc unit
Reviewers: #sourcecontrol, quark
Reviewed By: quark
Subscribers: akushner, medson, mjpieters, quark, rmerizalde
Differential Revision: https://phabricator.intern.facebook.com/D5521665
Tasks: 12422741
Signature: t1:5521665:1501287682:2afaea56b3dc863c52e6300c6bc482ae132a6a61
Summary:
When a user commits changes to a git-fusion repo, it pushes commit to perforce as user git-fusion-user, and then update the commit's author to be the actual author. We want p4fastimporter to skip the git-fusion-user commit and import the commit by the actual author. This diff sets the basic workflow, where we specify the constraint to be commits by git-fusion-user that is less than 30 seconds old.
// TODO: make the constraint configurable.
Test Plan:
$ cd ~/facebook-hg-rpms/fb-hgext/tests/
// test race condition
$ python ../../hg-crew/tests/run-tests.py test-p4fastimport-gitfusion-race-condition.t
// test all
$ python ../../hg-crew/tests/run-tests.py test-p4*
Reviewers: #idi, davidsp
Reviewed By: davidsp
Subscribers: medson, mjpieters
Differential Revision: https://phabricator.intern.facebook.com/D5509536
Tasks: 20141882
Signature: t1:5509536:1501521842:17dd767615b8218980eda68d4113433d30805d92
Summary:
Let's add logging for the size of rebases (the number of commits being rebased
and the distance over which they are rebased).
Test Plan: Ran a rebase and saw the data show up in ptail
Reviewers: #fbhgext, quark
Reviewed By: #fbhgext, quark
Subscribers: stash, quark, ryanmce
Differential Revision: https://phab.mercurial-scm.org/D169
Summary:
Let's log the number of commits we're traversing and the number of files
changed by an update.
Test Plan:
Ran it with --config
sampling.key.update_size=perfpipe_dev_command_timers and watched the entry show
up via ptail
Reviewers: #fbhgext, ryanmce
Reviewed By: #fbhgext, ryanmce
Subscribers: ryanmce
Differential Revision: https://phab.mercurial-scm.org/D166
Summary:
That switches us to use the higher level abstractions and allows us to
beneefit from things like showupdated (see: D173)
Test Plan: ran metaedit tests
Reviewers: #fbhgext, quark
Reviewed By: #fbhgext, quark
Subscribers: quark
Differential Revision: https://phab.mercurial-scm.org/D191
Summary:
This option was intended as temporary and it was enabled for long enough time.
Now let's delete it.
Test Plan: Run unit-tests
Reviewers: #fbhgext, quark
Reviewed By: #fbhgext, quark
Differential Revision: https://phab.mercurial-scm.org/D195
Summary:
We had a few troubles where fastlog failed with a weird error and people got
incorrect log output. While I still don't know why fastlog failed in the first
place, I've found the reason why log output was truncated. And this diff fixes
it. See the comments in the code for details.
Test Plan: Run unit-test
Reviewers: #fbhgext, simonfar
Reviewed By: #fbhgext, simonfar
Subscribers: simonfar
Differential Revision: https://phab.mercurial-scm.org/D193
Summary: Add `--delete` to the list of sparse options that understand cwd-relative paths.
Test Plan: rt
Reviewers: mjpieters, #fbhgext
Differential Revision: https://phab.mercurial-scm.org/D197
Summary: Removed 'missing' list variable as it is not needed
Test Plan: No. All tests pass
Reviewers: simonfar, durham, stash
Reviewed By: stash
Subscribers: stash, medson, mjpieters, #mercurial
Differential Revision: https://phabricator.intern.facebook.com/D5461432
Signature: t1:5461432:1500559459:9bca4b429807082dd9a2a2a0283ab7b23df82b70
Summary: Let's be friendlier to our friends on Windows.
Test Plan: rt
Reviewers: mjpieters, #fbhgext
Differential Revision: https://phab.mercurial-scm.org/D194
Previously, inhibit may use a wrong date when writing markers. This patch
fixes that. Also add a test to check the date and make sure `revive` takes
effects inside a transaction.
Differential Revision: https://phab.mercurial-scm.org/D182
Summary:
This command helps the user to bring back the commits to life with an explicit
command - wihtout the need to change working copy parent or create bookmarks.
Test Plan: see test
Reviewers: #fbhgext, durham, kulshrax, quark
Reviewed By: #fbhgext, quark
Subscribers: ryanmce
Differential Revision: https://phab.mercurial-scm.org/D179
Summary:
We have two commands for hiding commits:
* strip - which has a lot of legacy options and legacy name
* prune - which allows for creating arbitrary obsolescence markers
Both of them have complicated UI and are suboptimal experiences for unadvanced
user. The `hg hide` command is very simple, does one job and does it well.
Test Plan: see test
Reviewers: #fbhgext, durham, quark, kulshrax
Reviewed By: #fbhgext, quark
Subscribers: akushner
Differential Revision: https://phab.mercurial-scm.org/D178
Summary:
git-sl is a script to emulate some of hg smartlog, but for git. It's generally
useful, and demonstrates some of our thinking around source control, so let's
release it to the world.
Test Plan:
Just for documentation
Ran tests - only test-check-commit-hg.t fails, but that does not run on public
commits, so this is safe to land (unlike the previous attempt).
Reviewers: durham, ryanmce, #fbhgext, quark
Reviewed By: #fbhgext, quark
Subscribers: quark, #fbhgext
Differential Revision: https://phab.mercurial-scm.org/D180
Summary:
When we are falling back to cvs tools to read content of a file, we still do
keywrod expansion through cvs `co` command. This patch disables the keyword
expansion.
Test Plan: run tests on test-p4*
Reviewers: #mercurial, quark
Reviewed By: quark
Subscribers: medson, mjpieters
Differential Revision: https://phabricator.intern.facebook.com/D5485123
Signature: t1:5485123:1500948788:fe4bc2fb8c50858ba7d8689bbf41d1de41b81000
Summary:
We didn't check for sanity when the user asked for hg githelp -- git -
oops. Fix the args test to catch you if you ask for help for git, as opposed to
(say) git commit.
Test Plan: Ran the new test cases.
Reviewers: #fbhgext, ikostia
Reviewed By: ikostia
Differential Revision: https://phab.mercurial-scm.org/D183
Summary:
Adding a knob to control how we perceive supplied paths is a good intermediated
step towards getting every user to use cwd-relative paths.
Test Plan: - rt
Reviewers: mjpieters, #fbhgext
Differential Revision: https://phab.mercurial-scm.org/D175
Summary:
Users and particularly automation can benefit from having the new
revision hashes as part of the output of rebase and other operations that
update nodes. Right now, hacks such as getting the tip revision are used to get
that information.
Test Plan: unit tests
Reviewers: #fbhgext, ryanmce
Reviewed By: #fbhgext, ryanmce
Subscribers: ryanmce, durham, stash, quark
Differential Revision: https://phab.mercurial-scm.org/D173
Summary:
--retry can be used instead of --continue when histedit failed on "exec" (due to it returning a non-zero exit code) and the user wants to repeate that command rather than continuing past it
--show-plan will print the remaining plan of histedit during an interrupted histedit
Test Plan: cd fb-hgext/tests/ && rt
Reviewers: #fbhgext, stash
Reviewed By: #fbhgext, stash
Subscribers: stash, quark
Differential Revision: https://phab.mercurial-scm.org/D176
Summary:
Core mercurial has a much better "nocheck" option now that we should just start
using. It's better and it's built-in!
Test Plan: Updated tests
Reviewers: #fbhgext, quark
Reviewed By: #fbhgext, quark
Subscribers: quark
Differential Revision: https://phab.mercurial-scm.org/D164