Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [jgit-dev] Using InMemoryRepository

Thanks Alex for taking time to answer these.
I guess my understanding of InMemoryRepository wasn't right. 
What I was trying to get to is to have a repository with a work tree on disk but git objects and refs stored differently, in-memory or some other store. 

Also, will the Rev and Tree Walks work fine on InMemoryRepository?


On Sun, Mar 29, 2015 at 4:59 PM, Alex Blewitt <alex.blewitt@xxxxxxxxx> wrote:

Sent from my iPhat 6

On 29 Mar 2015, at 00:58, Monmohan Singh <monmohan@xxxxxxxxx> wrote:

So for adding and commiting a file to inmemrepo, one would have 
1) Insert the object


2) update the index

There is no index, since there is no working directory in an in memory layout.

3) create the tree and commit


4) update the refs


Is that correct? Or is there an easier way to go about this?

You can have a look at the tests Mathias mentioned but the above steps are the same. 

Any particular reason that setting a work tree is not supported for such a repository?

The clue is in the name - in memory != on disk. 



On Sat, Mar 28, 2015 at 8:27 PM, Alex Blewitt <alex.blewitt@xxxxxxxxx> wrote:
The porcelain commands assume a File basis in some cases, particularly when it comes to the working tree. You can perform inserts into an in-memory repository if you do the work yourself, but the porcelain commands do not work in that way.


On 28 Mar 2015, at 11:12, Monmohan Singh <monmohan@xxxxxxxxx> wrote:

Thanks for the response.
Even if that was the case, shouldn't it support the case where a file can be added and committed to the repos (which in turn would create object, tree, commit refs etc. in memory)? 


On Sat, Mar 28, 2015 at 5:56 PM, Matthias Sohn <matthias.sohn@xxxxxxxxx> wrote:
On Sat, Mar 28, 2015 at 10:32 AM, Monmohan Singh <monmohan@xxxxxxxxx> wrote:
When using FileRepository, I see we can use JGit porcelain equivalent of Git commands like add file, commit etc. 
But there doesn't seem a way to set a WorkTree for InMemoryRepository. My understanding was that this (in-memory) storage is equivalent of .git folder in case of FileRepository .  What is the way to add files to such a repo, using ObjectInserter?

Thanks in advance for the help :) 

AFAIK InMemoryRepository is only used by tests. See DfsInserterTest for some examples.


jgit-dev mailing list
To change your delivery options, retrieve your password, or unsubscribe from this list, visit

Back to the top