Page MenuHomePhabricator

Fix an issue where ancestors of permanent refs might not be published during import or if a branch is later made permanent
ClosedPublic

Authored by epriestley on Wed, Sep 25, 3:48 PM.

Details

Summary

Fixes T13284. See that task for substantial discussion. There are currently two cases where we'll skip over commits which we should publish:

  • if a branch is not permanent, then later made permanent; or
  • in some cases, the first time we examine branches in a repository.

In both cases, this error is one-shot and things work correctly going forward. The root cause is conflation between the states "this ref currently permanent" and "this ref was permanent the last time we updated refs".

Separate these pieces of state and cover all these cases. Also introduce a "--rebuild" flag to fix the state of bad commits.

Test Plan

See T13284 for the three major cases:

  • initial import;
  • push changes to a nonpermanent branch, update, then make it permanent;
  • push chanegs to a nonpermanent branch, update, push more changes, then make it permanent.

Diff Detail

Repository
rP Phabricator
Lint
Automatic diff as part of commit; lint not applicable.
Unit
Automatic diff as part of commit; unit tests not applicable.

Event Timeline

epriestley created this revision.Wed, Sep 25, 3:48 PM
Owners added a subscriber: Restricted Owners Package.Wed, Sep 25, 3:48 PM
epriestley requested review of this revision.Wed, Sep 25, 3:49 PM
This revision was not accepted when it landed; it landed in state Needs Review.Wed, Sep 25, 3:54 PM
This revision was automatically updated to reflect the committed changes.