Page MenuHomePhabricator

Permanent Refs Errata
Open, NormalPublic

Description

Ideally, publish operations should act like this:

  • The "Acting As" PHID is the identity PHID associated with the commit. If one does not exist, the acting as PHID is the Diffusion application.
  • When we want to respect policies (Fixes Txxx), the acting user is the user associated with the identity, if one exists, or the omnipotent user if one does not.
  • The "Acting User" in Herald is the acting user associated with the identity, if one exists, or the Diffusion application, if one does not.

Boneyard

  • The git fetch change in D20421 may require an adjacent change to the two places where we call isWorkingCopyBare() before listing refs. I suspect we can now remove the special casing.
  • From D20436, we should go dig up the actual wire-proto.c in Git and verify the discovered protocol matches the implemented protocol.

Event Timeline

epriestley created this task.

The git fetch change in D20421 does actually affect non-bare repositories:

[2019-04-18 06:43:37] EXCEPTION: (CommandException) Command failed with error #128!
COMMAND
git fetch --prune -- '********' '+refs/heads/*:refs/heads/*' '+refs/tags/*:refs/tags/*'

STDOUT
(empty)

STDERR
fatal: Refusing to fetch into current branch refs/heads/master of non-bare repository

I'd like to get everyone off non-bare repositories, but it looks like we can cheat our way through this with --update-head-ok for now, and the other cases are also easy to resolve.