]> source.dussan.org Git - jgit.git/commit
InMemoryRepository: Ensure new ref targets exist in the repo 79/40379/2
authorDave Borowitz <dborowitz@google.com>
Mon, 26 Jan 2015 17:21:05 +0000 (09:21 -0800)
committerDave Borowitz <dborowitz@google.com>
Mon, 26 Jan 2015 17:43:12 +0000 (09:43 -0800)
commitd612468c5c25057d1137832e6d3bad4432dae82c
tree23a76b625697e9d002928e8b345ca76ea44e7134
parente314e42d41cca60748a5f4e6dec1682bdb8bdbe4
InMemoryRepository: Ensure new ref targets exist in the repo

ObjectInserter recently learned to read back inserted objects before
they have been flushed. It is in general unsafe to create refs to such
objects, but it is now much more possible to do so, by passing "new
RevWalk(inserter.newReader())" into RefUpdate#execute(RevWalk).

We can't change the RefUpdate interface to remove execute(RevWalk);
nor would we necessarily want to, for performance reasons. And in any
case, RefUpdate#safeParse explicitly ignores MissingObjectExceptions.
But we can enforce object existence in InMemoryRepository, which will
allow callers using this class in their tests to ensure they are using
the RefDatabase correctly.

Change-Id: I5c696ba23bcd2a536a0512fa7f5b6130961905c5
org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/dfs/InMemoryRepository.java