Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

Already on GitHub? Sign in to your account

Extend repository abstraction to allow for fully virtual repositories #1213

Closed
jwiegley opened this Issue Jan 9, 2013 · 13 comments

Comments

Projects
None yet
4 participants
Contributor

jwiegley commented Jan 9, 2013

Right now, a repository may have multiple backends for reading and writing Git objects.

I propose extending the scope of custom backends to include reading and writing of references and configuration data. This way it'd be possible to work with repositories that have no local disk presence, such as a repository kept entirely in S3. At the moment this is not possible without some hacks and a throw-away local repository (where refs are written before reflecting them in S3, for example).

Member

nulltoken commented Jan 9, 2013

Partial duplicate of #221

Member

nulltoken commented Jan 9, 2013

👍

I strongly support this proposal 💖 :

Owner

carlosmn commented Jan 9, 2013

This is already supported by the config layer. The only missing part is allowing multiple backends for refs, which we keep talking about but never actually sit down to implement.

Owner

ethomson commented Jan 9, 2013

I spiked this a while back. Let me see how bad it will be to get it cleaned up against a current code base.

If anybody else is interested in this I can just push up what I had and y'all can figure out what to do with it.

Contributor

jwiegley commented Jan 12, 2013

@ethomson I would like to take a look at what you had, if you can put it up on a branch for me.

Owner

ethomson commented Jan 13, 2013

Edited what I had to be against a current code base.

@jwiegley check out #1240

This needs tests, at the very least.

Owner

ethomson commented Jan 13, 2013

Note that this doesn't support multiple backends, just a single backend. One could have multiple backends with priority, but you could also simply do that with your own multiplexing backend. I dunno.

I don't know if there's really a sane way to separate loose and packed into their own backends and then figure out how to invoke them such that the semantics still work. I sort of doubt that this could be done without gnashing of teeth. There be monsters.

Owner

carlosmn commented Jan 13, 2013

Edward Thomson notifications@github.com writes:

Note that this doesn't support multiple backends, just a single
backend. One could have multiple backends with priority, but you could
also simply do that with your own multiplexing backend. I dunno.

It's probably worth implementing it in the library, as it's bound to be
simple and popular.

I don't know if there's really a sane way to separate loose and packed
into their own backends and then figure out how to invoke them such
that the semantics still work. I sort of doubt that this could be done
without gnashing of teeth. There be monsters.

No, it's not possible. Loose and packed are two implementation details
of the git/traditional backend and should be considered as one. Anything
else leads to the madhouse.

cmn

Contributor

jwiegley commented Jan 22, 2013

@ethomson Sorry, for whatever reason GitHub never notified me that you mentioned me. Is your patch still relevant to the current codebase? What's left to do to complete it? Right now I'm hacking around this for my S3 backend by using beforeRead and afterWrite hooks.

Owner

ethomson commented Jan 24, 2013

@jwiegley - I re-rebased this to pull in the recent refs changes that went in. I think the only thing that's needed is some proper unit tests and some docs on the .h files.

Contributor

jwiegley commented Jan 24, 2013

Excellent I'll take a look.

Owner

carlosmn commented Mar 7, 2013

Can this be closed now or is there some aspect you can't virtualize yet?

Contributor

jwiegley commented Mar 8, 2013

You can close now. I'll open further issues if there is specific support still needed.

@jwiegley jwiegley closed this Mar 8, 2013

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment