4283e6b79b2ef91c632673bd347b5bc055100f55: pushlog: add API to obtain push from node (bug 1360007); r=glob
Gregory Szorc <gps@mozilla.com> - Tue, 23 May 2017 17:12:41 -0700 - rev 691546
Push 87314 by gszorc@mozilla.com at Thu, 02 Nov 2017 02:08:10 +0000
pushlog: add API to obtain push from node (bug 1360007); r=glob Before, our API was to pass in a changectx. This was not as flexible as it could be. Let's add a new API to accept a node and rewrite pushfromchangeset() to call it. Accepting a hex node would have been easier because everything pushlog stores hex nodes. However, this is a bad design of pushlog: we should operate with binary nodes wherever possible. I felt like drawing a line in the sand. This change does break some filelog tests in hgext/hgmo for an obscure reason. The next commit will fix that. MozReview-Commit-ID: 1WqPBvmWfXS
135fc4946cd96084f066838622cd149a76570d96: testing: install Mercurial 4.2 in standalone mode
Gregory Szorc <gps@mozilla.com> - Tue, 23 May 2017 15:20:21 -0700 - rev 691545
Push 87314 by gszorc@mozilla.com at Thu, 02 Nov 2017 02:08:10 +0000
testing: install Mercurial 4.2 in standalone mode Mercurial 4.2 is out. We should make it available so we can more easily start running tests against it.
3051c20bc7b1d60785952fefc48a092ad832c5f1: testing: don't run against virtualenv Mercurial when --all-versions used
Gregory Szorc <gps@mozilla.com> - Tue, 23 May 2017 14:14:44 -0700 - rev 691544
Push 87314 by gszorc@mozilla.com at Thu, 02 Nov 2017 02:08:10 +0000
testing: don't run against virtualenv Mercurial when --all-versions used --all-versions says to run with all Mercurial versions installed in standalone mode. With recent changes to make the standalone Mercurials use the virtualenv Python and with the standalone Mercurials having the version installed in the virtualenv, we should now be able to safely skip running tests against the virtualenv Mercurial in --all-versions mode because it is completely redundant. --all-versions mode is still somewhat rare to use. And `run-tests` without arguments will run the virtualenv Mercurial. So all this change should do is make `run-tests --all-versions` more usable because versions are ran in order without any redundancy. MozReview-Commit-ID: HYeDJo7AaTj
4cdd088dd97ff1f09e884347569de7c8307b9016: testing: install Mercurial 4.1 explicitly in standalone mode
Gregory Szorc <gps@mozilla.com> - Tue, 23 May 2017 13:58:23 -0700 - rev 691543
Push 87314 by gszorc@mozilla.com at Thu, 02 Nov 2017 02:08:10 +0000
testing: install Mercurial 4.1 explicitly in standalone mode Currently, the virtualenv has a Mercurial package and we have various standalone Mercurial installs. The virtualenv Mercurial is not installed standalone. This is a bit cumbersome to maintain. The main reason we don't install the virtualenv version in standalone mode is redundancy: we don't want to run tests against the same version multiple times during `run-tests --all-versions`. I think a better solution is to just not run tests against the virtualenv Mercurial when --all-versions is being used. The next commit will implement that. MozReview-Commit-ID: IaYRdIN73Ap
c5de70185ec18200fd488f9c83762d05de59ac25: testing: have Mercurial use the virtualenv's Python
Gregory Szorc <gps@mozilla.com> - Tue, 23 May 2017 13:55:40 -0700 - rev 691542
Push 87314 by gszorc@mozilla.com at Thu, 02 Nov 2017 02:08:10 +0000
testing: have Mercurial use the virtualenv's Python Currently, the Mercurial installed in the virtualenv uses the virtualenv's Python and therefore has access to all packages installed in the virtualenv. The standalone Mercurial installs did not sure this property. Instead, they likely used the system Python (or whatever Python was used to create the virtualenv) in their shebang. This meant that Python packages in the virtualenv were not exposed to these Mercurial installs. In this commit, we install the standalone Mercurials so they use the virtualenv's Python. This change unbreaks numerous failures in `run-tests --all-versions` mode. MozReview-Commit-ID: Cw0kVaPtfLH
9e56770831d19bc9adad21721c0029566aa8aac0: testing: install Mercurials in their own virtualenv
Gregory Szorc <gps@mozilla.com> - Tue, 23 May 2017 11:31:31 -0700 - rev 691541
Push 87314 by gszorc@mozilla.com at Thu, 02 Nov 2017 02:08:10 +0000
testing: install Mercurials in their own virtualenv Previously, we shared Mercurial installations across virtualenvs. This meant that the Python used to invoke Mercurial may not be tied to the correct virtualenv. This prevented certain hooks and extensions from working because of failure to load certain modules. We change the Mercurials installation to be virtualenv-specific so that we may customize the installation in each virtualenv. MozReview-Commit-ID: Iz5PwN8NrD1
d4d00fd7f152f167826fb105606e780cc43103a2: testing: make --all-versions and --with-hg mutually exclusive
Gregory Szorc <gps@mozilla.com> - Tue, 23 May 2017 14:04:18 -0700 - rev 691540
Push 87314 by gszorc@mozilla.com at Thu, 02 Nov 2017 02:08:10 +0000
testing: make --all-versions and --with-hg mutually exclusive MozReview-Commit-ID: nA6fBdkrbv
17280488af9d95a653ee005dbd3472db49b66349: ansible/hg-web: remove errant colon from CSP (bug 1336590)
Gregory Szorc <gps@mozilla.com> - Tue, 23 May 2017 11:04:22 -0700 - rev 691539
Push 87314 by gszorc@mozilla.com at Thu, 02 Nov 2017 02:08:10 +0000
ansible/hg-web: remove errant colon from CSP (bug 1336590) Self-reviewed because trivial.
5257beb770119c35a29d22d6685835b3a3841250: vcssync: move console scripts declaration to a list (bug 1366857); r=glob
Gregory Szorc <gps@mozilla.com> - Fri, 21 Apr 2017 12:57:27 -0700 - rev 691538
Push 87314 by gszorc@mozilla.com at Thu, 02 Nov 2017 02:08:10 +0000
vcssync: move console scripts declaration to a list (bug 1366857); r=glob This will allow us to conditionally add entries depending on flags. MozReview-Commit-ID: ByqAXefiBtQ
d390d5141b02777d6905198084d23ab43f51684d: vcssync: implement a context manager for monitoring an hg repo (bug 1366857); r=glob
Gregory Szorc <gps@mozilla.com> - Tue, 18 Apr 2017 17:25:51 -0700 - rev 691537
Push 87314 by gszorc@mozilla.com at Thu, 02 Nov 2017 02:08:10 +0000
vcssync: implement a context manager for monitoring an hg repo (bug 1366857); r=glob Previously, linearize_git_repo_to_hg() had a bunch of low-level code to grab state from a Mercurial repo before and after an operation. This type of probing is generic and can be extracted to its own function. Furthermore, this pattern of performing actions before and after an event is something that context managers can do for us. So this commit extracts the code to a utility function that is used as a context manager. At this point, linearize_git_repo_to_hg() is much easier to read and most of its generic logic is in standalone functions, facilitating reuse. MozReview-Commit-ID: qTjRXeJlIW
71706e6151a4438d2b624ee5ee564110da10beb0: vcssync: eliminate shamap_path variable (bug 1366857); r=glob
Gregory Szorc <gps@mozilla.com> - Tue, 18 Apr 2017 17:03:33 -0700 - rev 691536
Push 87314 by gszorc@mozilla.com at Thu, 02 Nov 2017 02:08:10 +0000
vcssync: eliminate shamap_path variable (bug 1366857); r=glob The value is redundant with rev_map and not necessary. Given the state of mind I was in when I wrote this code (I was rushing to get this feature deployed), I'm not surprised this slipped through. MozReview-Commit-ID: 98Sbs4aDU1o
db3f7a7bad4a6042985d6e7c5ae7d52f1adfe1ac: vcssync: extract code for running `hg convert` to reusable function (bug 1366857); r=glob
Gregory Szorc <gps@mozilla.com> - Tue, 18 Apr 2017 16:59:56 -0700 - rev 691535
Push 87314 by gszorc@mozilla.com at Thu, 02 Nov 2017 02:08:10 +0000
vcssync: extract code for running `hg convert` to reusable function (bug 1366857); r=glob A future commit will introduce a new consumer that wants to call `hg convert`. Since the code is a bit involved, let's factor the functionality to a standalone function. This also has the benefit of making linearize_git_repo_to_hg() significantly more readable. MozReview-Commit-ID: FP9Rl3uTbHM
c9bb5226382dcd2c8d190ffa395271c28bfc9218: vcssync: extract code for testing for conversion presence (bug 1366857); r=glob
Gregory Szorc <gps@mozilla.com> - Tue, 18 Apr 2017 16:48:58 -0700 - rev 691534
Push 87314 by gszorc@mozilla.com at Thu, 02 Nov 2017 02:08:10 +0000
vcssync: extract code for testing for conversion presence (bug 1366857); r=glob The near future will introduce another consumer that will want to test whether the `hg convert` revision map has knowledge of specific source commits. So we extract this functionality to a standalone function. As part of the extraction, behavior changed slightly. We now accept an iterable of commits whose presence to test for, not just a single one. We also maintain a mapping of source to destination commit. File reading is still lazy and stops as soon as all matches are found. Both these features are currently unused but will be used in an upcoming commit. MozReview-Commit-ID: LbHJu8k3Jya
6e7a09ffdfe5e1cffc9234f0c134a5c4e6e86966: vcssync: extract code for updating refs into own function (bug 1366857); r=glob
Gregory Szorc <gps@mozilla.com> - Mon, 17 Apr 2017 19:36:37 -0700 - rev 691533
Push 87314 by gszorc@mozilla.com at Thu, 02 Nov 2017 02:08:10 +0000
vcssync: extract code for updating refs into own function (bug 1366857); r=glob We'll soon introduce more code that wants to update refs/reflogs in a similar manner. Let's extract the code to a reusable function to facilitate that. This introduces the gitutil module for holding generic, lower-level Git code. I have additional plans for this module. MozReview-Commit-ID: 4N2hS1qzUH5
caa7a2f87663259120d6220324e91bfe8d996996: mozautomation: rework backout parser (bug 1365860) r=gps
byron jones <glob@mozilla.com> - Thu, 18 May 2017 15:46:57 +0800 - rev 691532
Push 87314 by gszorc@mozilla.com at Thu, 02 Nov 2017 02:08:10 +0000
mozautomation: rework backout parser (bug 1365860) r=gps Rework the backout parser slightly to both expand the phrases recognised by the parser, and require N nodes are provided when the description says that N nodes were backed out. MozReview-Commit-ID: K7WbiiB9T93
5ce8224bb603736b59be7a990c359f1b375c03a9: ansible/hg-web: add "frame-ancestors: https:" to CSP (bug 1336590); r=fubar
Gregory Szorc <gps@mozilla.com> - Thu, 18 May 2017 18:01:21 -0700 - rev 691531
Push 87314 by gszorc@mozilla.com at Thu, 02 Nov 2017 02:08:10 +0000
ansible/hg-web: add "frame-ancestors: https:" to CSP (bug 1336590); r=fubar This effectively prevents framing from non-https sites. While we could prohibit framing from all sites, there may be someone out there who frames us. We shouldn't have any sensitive data to leak via frames, so I'm inclined to allow framing to continue until there is a real security concern. MozReview-Commit-ID: KbshP4Vsbx8
d3b828f0c0123092b765f23b2b5a3d8796f8fdd3: autoland: prevent duplicate jobs (bug 1365487) r=gps
byron jones <glob@mozilla.com> - Wed, 17 May 2017 23:08:03 +0800 - rev 691530
Push 87314 by gszorc@mozilla.com at Thu, 02 Nov 2017 02:08:10 +0000
autoland: prevent duplicate jobs (bug 1365487) r=gps Reject job submissions if an identical unprocess job is already in the queue. MozReview-Commit-ID: E26TnbrqIeU
70fe96d2e44b88f95af8dd2873ebe6a2a6a0ef5e: Bug 1365841 - Adapt cinnabar-debug-push script to upcoming changes to cinnabar, part 2. r=gps
Mike Hommey <mh@glandium.org> - Thu, 18 May 2017 15:03:18 +0900 - rev 691529
Push 87314 by gszorc@mozilla.com at Thu, 02 Nov 2017 02:08:10 +0000
Bug 1365841 - Adapt cinnabar-debug-push script to upcoming changes to cinnabar, part 2. r=gps Same as bug 1330207, but for another import that was left out. It doesn't make much difference in practice, except for allowing to use native wire protocol for git mozreview push, which allows full HTTP logging through GIT_TRACE_CURL=true. MozReview-Commit-ID: 9EMK9XucuAC
a0f0914fa6d0d913db4eb4216dfbfe603986b41e: ansible/hg-ssh: adjust file permissions in rsync
Gregory Szorc <gps@mozilla.com> - Wed, 17 May 2017 11:06:43 -0700 - rev 691528
Push 87314 by gszorc@mozilla.com at Thu, 02 Nov 2017 02:08:10 +0000
ansible/hg-ssh: adjust file permissions in rsync We recently optimized `rsync -a` away because file attribute updates in overlayfs can be absurdly slow (~100ms for fchownat() for example). As part of "profiling" incremental image rebuilding, I discovered that `chmod -R` was also taking a while. Tracing system calls reveals that `chown` and `chmod` don't conditionally modify a file: they just make the system call to set whatever the final state is. This triggers attribute updates and makes operations very slow. `rsync` has a --chmod option that can be used to adjust permissions on the destination end. By using it to ensure o+g is granted, we perform minimal work. This change drops a "no-op" `d0cker build-hgmo` on my machine from ~74s to ~34s.
04ec8a1657c61544858eb7d9aeb36c7077ec00a8: pash: more tests with quotes
Gregory Szorc <gps@mozilla.com> - Wed, 17 May 2017 10:58:01 -0700 - rev 691527
Push 87314 by gszorc@mozilla.com at Thu, 02 Nov 2017 02:08:10 +0000
pash: more tests with quotes Also suggested by glob in review. I initially didn't read his review comment properly.
(0) -300000 -100000 -30000 -10000 -3000 -1000 -300 -100 -50 -20 +20 +50 +100 +300 +1000 +3000 +10000 +30000 +100000 tip