GitHub PushEvent at 2014-01-14 18:51:53
Repository: phabricator
Actor: dcramer
Payload: {"shas":[["488d4c509dc328ff47b44a3566edb2a15dc3ff9f","46f1a0bd5592a2f9244ca321b129902a06b53e03@epriestley.com","WIP","epriestley",true],["2725586bafa089142d4e124bd721c71cd490d9a6","46f1a0bd5592a2f9244ca321b129902a06b53e03@epriestley.com","Restructure HookEngine to use PushLog records for all operations\n\nSummary:\nRef T4195. This pulls the central logic of HookEngine up one level and makes all the git stuff genrate PushLogs.\n\nIn future diffs, everything will generate PushLogs and we can hand those off to Herald.\n\nTest Plan:\nPushed a pile of valid/invalid stuff:\n\n{F89256}\n\nReviewers: btrahan\n\nReviewed By: btrahan\n\nCC: aran\n\nManiphest Tasks: T4195\n\nDifferential Revision: https://secure.phabricator.com/D7761","epriestley",true],["6f3a99eb392ef85e93beee83087985e284bf0e74","46f1a0bd5592a2f9244ca321b129902a06b53e03@epriestley.com","Generate ref updates in Mercurial hooks\n\nSummary: Ref T4195. Mercurial is not my favorite VCS.\n\nTest Plan:\nHit the split branches case:\n\n  >>> orbital ~/repos/INIH $ hg push --force\n  pushing to ssh://dweller@local.aphront.com/diffusion/INIH\n  searching for changes\n  remote: adding changesets\n  remote: adding manifests\n  remote: adding file changes\n  remote: added 2 changesets with 2 changes to 1 files (+1 heads)\n  remote: +---------------------------------------------------------------+\n  remote: |      * * * PUSH REJECTED BY EVIL DRAGON BUREAUCRATS * * *     |\n  remote: +---------------------------------------------------------------+\n  remote:             \\\n  remote:              \\                    ^    /^\n  remote:               \\                  / \\  // \\\n  remote:                \\   |\\___/|      /   \\//  .\\\n  remote:                 \\  /V  V  \\__  /    //  | \\ \\           *----*\n  remote:                   /     /  \\/_/    //   |  \\  \\          \\   |\n  remote:                   @___@`    \\/_   //    |   \\   \\         \\/\\ \\\n  remote:                  0/0/|       \\/_ //     |    \\    \\         \\  \\\n  remote:              0/0/0/0/|        \\///      |     \\     \\       |  |\n  remote:           0/0/0/0/0/_|_ /   (  //       |      \\     _\\     |  /\n  remote:        0/0/0/0/0/0/`/,_ _ _/  ) ; -.    |    _ _\\.-~       /   /\n  remote:                    ,-}        _      *-.|.-~-.           .~    ~\n  remote:   \\     \\__/        `/\\      /                 ~-. _ .-~      /\n  remote:    \\____(Oo)           *.   }            {                   /\n  remote:    (    (--)          .----~-.\\        \\-`                 .~\n  remote:    //__\\\\  \\ DENIED!  ///.----..<        \\             _ -~\n  remote:   //    \\\\               ///-._ _ _ _ _ _ _{^ - - - - ~\n  remote:\n  remote:\n  remote: DANGEROUS CHANGE: The change you're attempting to push splits the head of branch 'default' into multiple heads: 802c785c3dd9, e73400db39b0. This is inadvisable and dangerous.\n  remote: Dangerous change protection is enabled for this repository.\n  remote: Edit the repository configuration before making dangerous changes.\n  remote:\n  remote: transaction abort!\n  remote: rollback completed\n  remote: abort: pretxnchangegroup.phabricator hook exited with status 1\n\nHit the divergent heads case:\n\n  >>> orbital ~/repos/INIH $ hg push --force\n  pushing to ssh://dweller@local.aphront.com/diffusion/INIH\n  searching for changes\n  remote: adding changesets\n  remote: adding manifests\n  remote: adding file changes\n  remote: added 1 changesets with 1 changes to 1 files (+1 heads)\n  remote: +---------------------------------------------------------------+\n  remote: |      * * * PUSH REJECTED BY EVIL DRAGON BUREAUCRATS * * *     |\n  remote: +---------------------------------------------------------------+\n  remote:             \\\n  remote:              \\                    ^    /^\n  remote:               \\                  / \\  // \\\n  remote:                \\   |\\___/|      /   \\//  .\\\n  remote:                 \\  /V  V  \\__  /    //  | \\ \\           *----*\n  remote:                   /     /  \\/_/    //   |  \\  \\          \\   |\n  remote:                   @___@`    \\/_   //    |   \\   \\         \\/\\ \\\n  remote:                  0/0/|       \\/_ //     |    \\    \\         \\  \\\n  remote:              0/0/0/0/|        \\///      |     \\     \\       |  |\n  remote:           0/0/0/0/0/_|_ /   (  //       |      \\     _\\     |  /\n  remote:        0/0/0/0/0/0/`/,_ _ _/  ) ; -.    |    _ _\\.-~       /   /\n  remote:                    ,-}        _      *-.|.-~-.           .~    ~\n  remote:   \\     \\__/        `/\\      /                 ~-. _ .-~      /\n  remote:    \\____(Oo)           *.   }            {                   /\n  remote:    (    (--)          .----~-.\\        \\-`                 .~\n  remote:    //__\\\\  \\ DENIED!  ///.----..<        \\             _ -~\n  remote:   //    \\\\               ///-._ _ _ _ _ _ _{^ - - - - ~\n  remote:\n  remote:\n  remote: DANGEROUS CHANGE: The change you're attempting to push creates new, divergent heads for the branch 'default': f56af4232aa9. This is inadvisable and dangerous.\n  remote: Dangerous change protection is enabled for this repository.\n  remote: Edit the repository configuration before making dangerous changes.\n  remote:\n  remote: transaction abort!\n  remote: rollback completed\n  remote: abort: pretxnchangegroup.phabricator hook exited with status 1\n\nDid a bunch of good/bad pushes:\n\n{F89300}\n\nReviewers: btrahan\n\nReviewed By: btrahan\n\nCC: aran\n\nManiphest Tasks: T4195\n\nDifferential Revision: https://secure.phabricator.com/D7763","epriestley",true],["74251b363675df1e03379851743514f564f5e768","46f1a0bd5592a2f9244ca321b129902a06b53e03@epriestley.com","Support bookmark hook operations in Mercurial\n\nSummary: Ref T4195. Turns bookmark mutations in Mercurial into log objects.\n\nTest Plan:\nPushed a pile of bookmarks and got logs:\n\n{F89313}\n\nReviewers: btrahan\n\nReviewed By: btrahan\n\nCC: aran\n\nManiphest Tasks: T4195\n\nDifferential Revision: https://secure.phabricator.com/D7764","epriestley",true],["b326ef594798be1d7b2bd9ad021f4cd661dba32c","46f1a0bd5592a2f9244ca321b129902a06b53e03@epriestley.com","Revert errant commit of example change from an earlier test.\n\nReverts rP488d4c509dc328ff47b44a3566edb2a15dc3ff9f.","epriestley",true],["11b8e57ae0122245419f730686aebb54f14a628c","46f1a0bd5592a2f9244ca321b129902a06b53e03@epriestley.com","Remove \"pretag\" hook support in Mercurial\n\nSummary: Ref T4195. This doesn't actually work like I thought it did: it only fires locally, when you run `hg tag`. Mercurial tags are also weird and basically don't make any sense and everyone should use bookmarks instead. We could implement some flavor of this eventually, but I'd like to see users request it first. They can implement their own with content-based hooks once those work, anyway.\n\nTest Plan: This code didn't do anything.\n\nReviewers: btrahan\n\nReviewed By: btrahan\n\nCC: aran\n\nManiphest Tasks: T4195\n\nDifferential Revision: https://secure.phabricator.com/D7765","epriestley",true],["2216a5e6efb951e970d4203513300074076a0d94","46f1a0bd5592a2f9244ca321b129902a06b53e03@epriestley.com","Add Subversion ref and content logs to pre-commit hooks\n\nSummary: Ref T4195. SVN has no such thing as refs (I was thinking about writing a quasi-ref anyway like `HEAD: r23 -> r24`, but I'm not sure it would actually be useful). And content is very easy to build.\n\nTest Plan: Pushed some stuff to SVN, got logs from it.\n\nReviewers: btrahan\n\nReviewed By: btrahan\n\nCC: aran\n\nManiphest Tasks: T4195\n\nDifferential Revision: https://secure.phabricator.com/D7766","epriestley",true],["f28d3089d7d84a86f80306b530d14f4949e35390","46f1a0bd5592a2f9244ca321b129902a06b53e03@epriestley.com","Assign PHIDs to PushLogs\n\nSummary: Ref T4195. We need these in Herald, since HeraldTranscripts need to refer to a PHID which they acted upon.\n\nTest Plan:\nRan migration, got PHIDs:\n\n  mysql> select phid from repository_pushlog limit 3;\n  +--------------------------------+\n  | phid                           |\n  +--------------------------------+\n  | PHID-PSHL-25jnc6cjgzw5rwqgmr7r |\n  | PHID-PSHL-2vrvmtslkrj5yv7nxsv2 |\n  | PHID-PSHL-34x262zkrwoka6mplony |\n  +--------------------------------+\n  3 rows in set (0.00 sec)\n\nReviewers: btrahan\n\nReviewed By: btrahan\n\nCC: aran\n\nManiphest Tasks: T4195\n\nDifferential Revision: https://secure.phabricator.com/D7780","epriestley",true],["baa756a027fa342e0a26aac21c1d46c399c1590e","46f1a0bd5592a2f9244ca321b129902a06b53e03@epriestley.com","Add `rulePHID` to HeraldEffect\n\nSummary: Ref T4195. Herald rules gained PHIDs only recently, propagate them to HeraldEffect to make some of the hook stuff eaiser.\n\nTest Plan: iiam\n\nReviewers: btrahan\n\nReviewed By: btrahan\n\nCC: aran\n\nManiphest Tasks: T4195\n\nDifferential Revision: https://secure.phabricator.com/D7781","epriestley",true],["3386920971b859b7a933940f712d96a45f699f50","46f1a0bd5592a2f9244ca321b129902a06b53e03@epriestley.com","Add Herald support for blocking ref changes\n\nSummary: Ref T4195. Allows users to write Herald rules which block ref changes. For example, you can write a rule like `alincoln can not create branches`, or `no one can push to the branch \"frozen\"`.\n\nTest Plan:\nThis covers a lot of ground. I created and pushed a bunch of rules, then looked at transcripts, in general. Here are some bits in detail:\n\nHere's a hook-based reject message:\n\n  >>> orbital ~/repos/POEMS $ git push\n  Counting objects: 5, done.\n  Delta compression using up to 8 threads.\n  Compressing objects: 100% (3/3), done.\n  Writing objects: 100% (3/3), 274 bytes, done.\n  Total 3 (delta 2), reused 0 (delta 0)\n  remote: +---------------------------------------------------------------+\n  remote: |      * * * PUSH REJECTED BY EVIL DRAGON BUREAUCRATS * * *     |\n  remote: +---------------------------------------------------------------+\n  remote:             \\\n  remote:              \\                    ^    /^\n  remote:               \\                  / \\  // \\\n  remote:                \\   |\\___/|      /   \\//  .\\\n  remote:                 \\  /V  V  \\__  /    //  | \\ \\           *----*\n  remote:                   /     /  \\/_/    //   |  \\  \\          \\   |\n  remote:                   @___@`    \\/_   //    |   \\   \\         \\/\\ \\\n  remote:                  0/0/|       \\/_ //     |    \\    \\         \\  \\\n  remote:              0/0/0/0/|        \\///      |     \\     \\       |  |\n  remote:           0/0/0/0/0/_|_ /   (  //       |      \\     _\\     |  /\n  remote:        0/0/0/0/0/0/`/,_ _ _/  ) ; -.    |    _ _\\.-~       /   /\n  remote:                    ,-}        _      *-.|.-~-.           .~    ~\n  remote:   \\     \\__/        `/\\      /                 ~-. _ .-~      /\n  remote:    \\____(Oo)           *.   }            {                   /\n  remote:    (    (--)          .----~-.\\        \\-`                 .~\n  remote:    //__\\\\  \\ DENIED!  ///.----..<        \\             _ -~\n  remote:   //    \\\\               ///-._ _ _ _ _ _ _{^ - - - - ~\n  remote:\n  remote:\n  remote: This commit was rejected by Herald pre-commit rule H24.\n  remote: Rule: No Branches Called Blarp\n  remote: Reason: \"blarp\" is a bad branch name\n  remote:\n  To ssh://dweller@localhost/diffusion/POEMS/\n   ! [remote rejected] blarp -> blarp (pre-receive hook declined)\n  error: failed to push some refs to 'ssh://dweller@localhost/diffusion/POEMS/'\n\nHere's a transcript, showing that all the field values populate sensibly:\n\n{F90453}\n\nHere's a rule:\n\n{F90454}\n\nReviewers: btrahan\n\nReviewed By: btrahan\n\nCC: aran\n\nManiphest Tasks: T4195\n\nDifferential Revision: https://secure.phabricator.com/D7782","epriestley",true],["b0f7e7a6af2db93619b3ddde1f91598054198830","46f1a0bd5592a2f9244ca321b129902a06b53e03@epriestley.com","Work around `hg` echoing warnings to stdout under --debug\n\nSummary:\nRef T615. Ref T4237. With `--debug`, Mercurial will echo an \"ignoring untrusted configuration option\" warning **to stdout** if `.hgrc` has the wrong owner.\n\nHowever, we need `--debug` to make `{parents}` usable, at least until the patches I got into the upstream are widely deployed. So after getting `--debug` output, strip off any leading warnings.\n\nThese warnings should always be in English, at least, since we set `LANG` explicitly.\n\nTest Plan: Unit tests. @asherkin, maybe you can confirm this? I can't actually get the warning, but I think my `hg` in PATH is just a bit out of date.\n\nReviewers: asherkin, btrahan\n\nReviewed By: asherkin\n\nCC: asherkin, aran\n\nManiphest Tasks: T615, T4237\n\nDifferential Revision: https://secure.phabricator.com/D7784","epriestley",true],["181bfffaa126f4e63eeb24d6c5dbb459d735a32c","46f1a0bd5592a2f9244ca321b129902a06b53e03@epriestley.com","Truncate object fields in Herald transcripts\n\nSummary:\nA few users have hit cases where Herald transcripts of large commits exceed the MySQL packet limit, because one of the fields in the transcript is an enomrous textual diff.\n\nThere's no value in saving these huge amounts of data. Transcripts are useful for understanding the action of Herald rules, but can be reconstructed later. Instead of saving all of the data, limit each field to 4KB of data.\n\nFor strings, we just truncate at 4KB. For arrays, we truncate after 4KB of values.\n\nTest Plan: Ran unit tests. Artificially decreased limit and ran transcripts, saw them truncate properly.\n\nReviewers: btrahan\n\nReviewed By: btrahan\n\nCC: frgtn, aran\n\nDifferential Revision: https://secure.phabricator.com/D7783","epriestley",true],["5863f792a69422652524771304bb0db4320ac6f5","46f1a0bd5592a2f9244ca321b129902a06b53e03@epriestley.com","Remove many redundant implementations of `canLoadNamedObject()`\n\nSummary:\nThese just got copy/pasted like crazy, the base class has the correct default implementation.\n\n(I'm adding \"H\" for Herald Rules, which is why I was in this code.)\n\nI also documented the existing prefixes at [[ Object Name Prefixes ]].\n\nTest Plan: Verified base implementation. Typed some object names into the jump nav.\n\nReviewers: btrahan\n\nReviewed By: btrahan\n\nCC: hach-que, aran\n\nDifferential Revision: https://secure.phabricator.com/D7785","epriestley",true],["1ff3ef382d84f03fc3228ea8e406970b46b098e2","46f1a0bd5592a2f9244ca321b129902a06b53e03@epriestley.com","Give Herald rules a standard \"Hnnn\" object name\n\nSummary: Allow Herald rules to be referred to with `H123`, etc., like other object types are. Herald rules now have proper PHIDs and an increasingly prominent role in triggering application actions. Although I suspect users will rarely use `H123` in Remarkup to mention rules, this can simplify some of the interfaces which relate objects across systems.\n\nTest Plan: Looked at various interfaces and saw `H123` names. Mentioned `H123` in remarkup.\n\nReviewers: btrahan\n\nReviewed By: btrahan\n\nCC: aran\n\nDifferential Revision: https://secure.phabricator.com/D7786","epriestley",true],["e115f11f80494ac0d2588e6d716fe712b200a9d9","46f1a0bd5592a2f9244ca321b129902a06b53e03@epriestley.com","Provide basic commit content hooks for Herald\n\nSummary: Ref T4195. This doesn't provide any interesting fields yet (content, affected paths, commit message) but fires the hook correctly.\n\nTest Plan: Added a blocking hook and saw it fire.\n\nReviewers: btrahan\n\nReviewed By: btrahan\n\nCC: aran\n\nManiphest Tasks: T4195\n\nDifferential Revision: https://secure.phabricator.com/D7789","epriestley",true],["5f4df0f3e39415e5af1a03b59af82a8ffa988d9b","46f1a0bd5592a2f9244ca321b129902a06b53e03@epriestley.com","Support \"changed filename\" and \"file content\" fields for commit content Herald rules\n\nSummary: Ref T4195. Adds support for diff content rules.\n\nTest Plan: Pushed SVN and Git changes through, saw them generate reasonable transcripts. Mercurial still isn't hooked up to this phase.\n\nReviewers: btrahan\n\nReviewed By: btrahan\n\nCC: aran\n\nManiphest Tasks: T4195\n\nDifferential Revision: https://secure.phabricator.com/D7791","epriestley",true],["d90f44ef2058f74c19ae0f6cdd2d2f17b25bea46","46f1a0bd5592a2f9244ca321b129902a06b53e03@epriestley.com","Support content pre-commit hooks in Mercurial\n\nSummary: Ref T4195. Add Mercurial support to the content hook phase.\n\nTest Plan:\nHere are some `commit` push logs for a Mercurial repo:\n\n{F90689}\n\nReviewers: btrahan\n\nReviewed By: btrahan\n\nCC: aran\n\nManiphest Tasks: T4195\n\nDifferential Revision: https://secure.phabricator.com/D7792","epriestley",true],["dc43123494df373ba06623a4cbe12d5aa6bafe70","faa90f9db22bfcbcea098a71561bd6f2ee9e9fef@isis.vanderbilt.edu","Get the proper Subversion URI for hosted repositories.\n\nSummary: The commit change parser worker was incorrectly getting the remote uri; calling getSubversionPathURI instead behaves properly for hosted repositories.  Fixes T4236.\n\nTest Plan: Observed that my hosted subversion repositories finally had history in Diffusion.\n\nReviewers: epriestley, #blessed_reviewers\n\nReviewed By: epriestley\n\nCC: Korvin, epriestley, aran\n\nManiphest Tasks: T4236\n\nDifferential Revision: https://secure.phabricator.com/D7794","William R. Otte",true],["a5dc9067af0c7dfb78b22719fa0355a716d6695b","46f1a0bd5592a2f9244ca321b129902a06b53e03@epriestley.com","Provide convenience method addTextCrumb() to PhabricatorCrumbsView\n\nSummary: We currently have a lot of calls to `addCrumb(id(new PhabricatorCrumbView())->...)` which can be expressed much more simply with a convenience method. Nearly all crumbs are only textual.\n\nTest Plan:\n  - This was mostly automated, then I cleaned up a few unusual sites manually.\n  - Bunch of grep / randomly clicking around.\n\nReviewers: btrahan, chad\n\nReviewed By: btrahan\n\nCC: hach-que, aran\n\nDifferential Revision: https://secure.phabricator.com/D7787","epriestley",true],["f048053c75864c28d74c35c456bb07d0755601a3","46f1a0bd5592a2f9244ca321b129902a06b53e03@epriestley.com","Move git commit metadata parsing into a LowLevelQuery\n\nSummary: Ref T4195. I need to issue this command from the pre-commit hook to get commit bodies for hooks.\n\nTest Plan: Ran `reparse.php --message --trace` and dumped the $ref, which looked correct.\n\nReviewers: btrahan\n\nReviewed By: btrahan\n\nCC: aran\n\nManiphest Tasks: T4195\n\nDifferential Revision: https://secure.phabricator.com/D7793","epriestley",true]],"size":165,"ref":"refs/heads/master","head":"49963d8e4ce72f279e53efeb41ae7338dd9419f3"}