This is an archive of the discontinued Mercurial Phabricator instance.

localrepo: push manifestlog and changelog construction code into store
ClosedPublic

Authored by durin42 on Aug 16 2019, 4:54 PM.

Details

Summary

This feels substantially more appropriate, as the store is actually
the layer with knowledge of how to handle this storage. I didn't move
the caching decorators for now because that's going to require some
more involved work, and this unblocks my current experimentation.

Diff Detail

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

Event Timeline

durin42 created this revision.Aug 16 2019, 4:54 PM
indygreg accepted this revision.Aug 21 2019, 11:46 AM
indygreg added a subscriber: indygreg.

The boundary between localrepository and store is a bit murky and definitely needs some work. When I last had things paged into my brain last year, I think I was trending towards breaking up the store into discrete classes and making the code that dynamically resolves repository types cherry pick the classes depending on the opener options. But we could easily have the store handle this logic as well. This is all very complicated and I don't prescribe to have a single correct answer.

This revision is now accepted and ready to land.Aug 21 2019, 11:46 AM

I think pushing it down into the store makes a reasonable amount of sense, since it's going to be pretty heavily tied to the revision storage mechanism...

Ping on this - can we get this landed to unblock my experimentation?

durin42 updated this revision to Diff 16386.Sep 5 2019, 3:20 PM
pulkit accepted this revision.Sep 9 2019, 11:15 AM