Improve performance of `arc branch` in Git with many branches

Authored by epriestley on Apr 16 2016, 4:38 PM.

Description

Improve performance of arc branch in Git with many branches

Summary:
This is mostly just a personal quality-of-life fix. I run this command fairly often and having it return a little faster is nice.

This replaces a git show for each individual branch with a big git for-each-ref which we were already running anyway. This is quite a bit faster.

This command also occasionally hangs or segfaults for me while executing the huge pile of subprocesses. This is unreliable to reproduce, probably some bug in some PHP extension I have, and likely hard to narrow down, and this approach is better in every way anyway.

Test Plan:

  • Ran arc branch in Git, observed faster output (in my phabricator/, about 2000ms -> 1200ms).
  • Ran arc feature in Mercurial.

Reviewers: chad

Reviewed By: chad

Differential Revision: https://secure.phabricator.com/D15735

Details

Committed
epriestleyApr 16 2016, 11:39 PM
Pushed
epriestleyApr 16 2016, 11:39 PM
Reviewer
chad
Differential Revision
D15735: Improve performance of `arc branch` in Git with many branches
Parents
rARC737f5c0df976: Allow amending revisions without commandeering first
Branches
Unknown
Tags
Unknown
Build Status
Buildable 11790
Build 14783: Run Core Tests