Page MenuHomePhabricator

Update major RefCursor callsites to work properly with RefPosition
ClosedPublic

Authored by epriestley on Sep 15 2017, 4:20 PM.
Tags
None
Referenced Files
Unknown Object (File)
Thu, Dec 12, 2:13 PM
Unknown Object (File)
Sat, Dec 7, 10:19 PM
Unknown Object (File)
Wed, Dec 4, 3:41 AM
Unknown Object (File)
Sat, Nov 30, 2:10 PM
Unknown Object (File)
Tue, Nov 26, 3:59 AM
Unknown Object (File)
Sun, Nov 24, 8:06 AM
Unknown Object (File)
Nov 21 2024, 7:01 PM
Unknown Object (File)
Nov 18 2024, 12:06 AM
Subscribers
None

Details

Summary

Ref T11823. This is the meaty part of the change, and updates RefEngine to use separate RefCursor (for names) and RefPosition (for actual commit positions) tables.

I'll hold this whole series until after the release cut so it has some time to bake on secure to look for issues. It's also not a huge problem if there are bugs here since these tables are just caches anyway, although they do feed into some other things, and obviously it's never good to have bugs.

Test Plan
  • This logic can be invoked directly with bin/repository refs <repository> --trace --verbose.
  • Ran that on unchanged repositories, new branches, removed branches, and modified branches. Saw appropriate output and cursor positions.
  • Ran on a mercurial repository to test the close/open logic, saw it correct open/closed state of incorrect positions.
  • Browed around Diffusion in various repositories.

Diff Detail

Repository
rP Phabricator
Lint
Lint Not Applicable
Unit
Tests Not Applicable

Event Timeline

I only vaguely understand what this accomplishes, but I trust that we'll break secure before it goes out everywhere.

This revision is now accepted and ready to land.Sep 15 2017, 4:28 PM

Yeah, I think it will be reasonably clear on this install (and reasonably easy to investigate and recover from) if I did botch something here. Since the input is basically "any arbitrary repository state, plus any arbitrary cached older version of that repository state" it's pretty difficult to have much confidence that I truly tested it exhaustively, but my gut is that it's at least mostly on firm ground.

This revision was automatically updated to reflect the committed changes.