Re: [jgit-dev] Using InMemoryRepository |
Not all repositories support a work tree - in fact, at the moment the FileRepository is the only one that does as far as I know. Youâd have to write custom implementations to achieve the effect you want.You should be able to use the RevWalk and TreeWalk to process a repository without needing a work tree though. Thatâs how the UI for things like the Google source page is generated:What are you trying to do and why do you want to use InMemoryRepository to do it?AlexOn 29 Mar 2015, at 13:22, Monmohan Singh <monmohan@xxxxxxxxx> wrote: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?-MÂOn Sun, Mar 29, 2015 at 4:59 PM, Alex Blewitt <alex.blewitt@xxxxxxxxx> wrote:
Sent from my iPhat 6So for adding and commiting a file to inmemrepo, one would haveÂ1) Insert the object
Yes.Â2) update the indexThere is no index, since there is no working directory in an in memory layout.3) create the tree and commitYes4) update the refsYesIs 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.ÂRegardsMonmohanÂ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.AlexOn 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)?ÂRegardsMonmohanOn 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:Hi,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.-MatthiasÂ
jgit-dev mailing list
jgit-dev@xxxxxxxxxxx
To change your delivery options, retrieve your password, or unsubscribe from this list, visit
https://dev.eclipse.org/mailman/listinfo/jgit-dev