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 Sep 25 2019, 3:48 PM.
Tags
None
Referenced Files
F13137345: D20829.id49659.diff
Thu, May 2, 6:25 PM
F13134217: D20829.diff
Thu, May 2, 1:51 AM
Unknown Object (File)
Sun, Apr 28, 8:46 PM
Unknown Object (File)
Thu, Apr 25, 2:17 AM
Unknown Object (File)
Sat, Apr 20, 4:56 PM
Unknown Object (File)
Sat, Apr 20, 6:20 AM
Unknown Object (File)
Apr 1 2024, 7:24 AM
Unknown Object (File)
Mar 29 2024, 8:57 PM
Subscribers
Restricted Owners Package

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
Branch
ref1
Lint
Lint Passed
Unit
Tests Passed
Build Status
Buildable 23486
Build 32274: Run Core Tests
Build 32273: arc lint + arc unit

Event Timeline

Owners added a subscriber: Restricted Owners Package.Sep 25 2019, 3:48 PM
This revision was not accepted when it landed; it landed in state Needs Review.Sep 25 2019, 3:54 PM
This revision was automatically updated to reflect the committed changes.