Page MenuHomePhabricator

Support Mercurial pretxnchangegroup hooks
ClosedPublic

Authored by epriestley on Dec 2 2013, 11:37 PM.
Tags
None
Referenced Files
F15458049: D7685.diff
Sun, Mar 30, 8:30 PM
F15427524: D7685.diff
Sun, Mar 23, 2:47 PM
F15425905: D7685.id17350.diff
Sun, Mar 23, 6:36 AM
F15425278: D7685.diff
Sun, Mar 23, 3:45 AM
F15421641: D7685.id17350.diff
Sat, Mar 22, 1:30 AM
F15421325: D7685.diff
Fri, Mar 21, 10:39 PM
F15417284: D7685.diff
Thu, Mar 20, 4:29 PM
F15408269: D7685.id17350.diff
Tue, Mar 18, 10:03 PM
Subscribers

Details

Reviewers
btrahan
Maniphest Tasks
Restricted Maniphest Task
T4189: Install commit hooks in hosted repositories
Commits
Restricted Diffusion Commit
rPf93c6985ad84: Support Mercurial pretxnchangegroup hooks
Summary

Ref T4189. Fixes T2066. Mercurial has a lot of hooks so I'm not 100% sure this is all we need to install (we may need separate hooks for tags/bookmarks) but it should cover most of what we're after at least.

Test Plan
  • bin/repository pull'd a Mercurial repo and got a hook install.
  • Pushed to a Mercurial repository over SSH and HTTP, with good/bad hooks. Saw hooks fire.

Diff Detail

Branch
hooks3
Lint
Lint Passed
SeverityLocationCodeMessage
Advicescripts/repository/commit_hook.php:38XHP16TODO Comment
Advicesrc/applications/diffusion/engine/DiffusionCommitHookEngine.php:81XHP16TODO Comment
Unit
Tests Passed

Event Timeline

src/applications/repository/engine/PhabricatorRepositoryPullEngine.php
340

This is basically like "--bare" in Git, but should be much less problematic since the Mercurial bare and non-bare formats are almost identical. This is just a little cleaner/faster and saves a bit of disk space by not keeping a checked out working copy around when we don't actually need one.