Page MenuHomePhabricator

Repository ref updates may fail after a branch is destroyed
Closed, ResolvedPublic

Description

See IRC for some context: https://secure.phabricator.com/chatlog/channel/6/?at=157066

The ref updates can fail when one of the cursors points at a branch which no longer exists and has been GC'd, by causing Git to issue a command like git log <hash> --not <bad hash>.

We should detect and remove missing branches before we reach the ref update phase.

Event Timeline

epriestley claimed this task.
epriestley raised the priority of this task from to High.
epriestley updated the task description. (Show Details)
epriestley added a project: Diffusion.
epriestley added a subscriber: epriestley.

The newly added method removeMissingCommits was causing a lot of unneeded thrash on our mercurial repository. We have 140 branches, and phabricator was launching a process to check each revision every 15 seconds, and rather severely thrashing our disk. It seems to me that there's no need to call this method for mercurial branches, since the information contained in $branches was already obtained by running 'hg log' and should be up to date.