diff options
author | Shawn O. Pearce | 2010-07-26 23:27:03 +0000 |
---|---|---|
committer | Shawn O. Pearce | 2010-07-27 15:41:44 +0000 |
commit | 7a832d965464e56c96ea9b67abb205e2253d8e4c (patch) | |
tree | f39d26d7ce0be61c55d4809b6771aae8f805ba17 /org.eclipse.egit.core.test | |
parent | 6e34f6838a7c249969025a16ad631b817c92143d (diff) | |
download | egit-7a832d965464e56c96ea9b67abb205e2253d8e4c.tar.gz egit-7a832d965464e56c96ea9b67abb205e2253d8e4c.tar.xz egit-7a832d965464e56c96ea9b67abb205e2253d8e4c.zip |
Update to latest JGit API
* Change to use FileRepository throughout most of EGit. Too much
of the code currently has assumptions about the repository being
on the local filesystem, accessible by java.io.File. Use the
file specific repository type to better describe the dependency.
* Replace getWorkDir() with getWorkTree()
* Replace openObject(), openBlob(), hasObject() with the newer
short style open() and has().
* Always treat blobs as InputStreams when possible. This ensures
that even on very large files, EGit won't explode the JVM heap
and cause an OutOfMemoryError.
* Adapted to the new style RepositoryListener interfaces, which
promises better long-term API stability.
* Replace static DirCache read() and lock() with Repository
instance methods, further hiding the storage method of the
working directory's index.
Change-Id: I2459757a26f8c724b95468f9f38bac2ee172a932
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
Diffstat (limited to 'org.eclipse.egit.core.test')
12 files changed, 34 insertions, 26 deletions
diff --git a/org.eclipse.egit.core.test/src/org/eclipse/egit/core/internal/storage/BlobStorageTest.java b/org.eclipse.egit.core.test/src/org/eclipse/egit/core/internal/storage/BlobStorageTest.java index 7b59fb3fee..83c699592d 100644 --- a/org.eclipse.egit.core.test/src/org/eclipse/egit/core/internal/storage/BlobStorageTest.java +++ b/org.eclipse.egit.core.test/src/org/eclipse/egit/core/internal/storage/BlobStorageTest.java @@ -16,6 +16,7 @@ import org.eclipse.core.runtime.Path; import org.eclipse.egit.core.test.GitTestCase; import org.eclipse.jgit.lib.ObjectId; import org.eclipse.jgit.lib.Repository; +import org.eclipse.jgit.storage.file.FileRepository; import org.junit.After; import org.junit.Before; import org.junit.Test; @@ -27,7 +28,7 @@ public class BlobStorageTest extends GitTestCase { @Before public void setUp() throws Exception { super.setUp(); - repository = new Repository(gitDir); + repository = new FileRepository(gitDir); repository.create(); } diff --git a/org.eclipse.egit.core.test/src/org/eclipse/egit/core/synchronize/GitResourceVariantComparatorTest.java b/org.eclipse.egit.core.test/src/org/eclipse/egit/core/synchronize/GitResourceVariantComparatorTest.java index 9b9db5e5eb..7c9de90157 100644 --- a/org.eclipse.egit.core.test/src/org/eclipse/egit/core/synchronize/GitResourceVariantComparatorTest.java +++ b/org.eclipse.egit.core.test/src/org/eclipse/egit/core/synchronize/GitResourceVariantComparatorTest.java @@ -33,6 +33,7 @@ import org.eclipse.egit.core.synchronize.dto.GitSynchronizeDataSet; import org.eclipse.egit.core.test.GitTestCase; import org.eclipse.jgit.lib.ObjectId; import org.eclipse.jgit.lib.Repository; +import org.eclipse.jgit.storage.file.FileRepository; import org.eclipse.team.core.variants.IResourceVariant; import org.junit.After; import org.junit.Before; @@ -48,7 +49,7 @@ public class GitResourceVariantComparatorTest extends GitTestCase { IProject iProject = project.project; if (!gitDir.exists()) - new Repository(gitDir).create(); + new FileRepository(gitDir).create(); new ConnectProviderOperation(iProject, gitDir).execute(null); repo = RepositoryMapping.getMapping(iProject).getRepository(); diff --git a/org.eclipse.egit.core.test/src/org/eclipse/egit/core/synchronize/GitResourceVariantTreeTest.java b/org.eclipse.egit.core.test/src/org/eclipse/egit/core/synchronize/GitResourceVariantTreeTest.java index 68e18ad0a6..6ead886878 100644 --- a/org.eclipse.egit.core.test/src/org/eclipse/egit/core/synchronize/GitResourceVariantTreeTest.java +++ b/org.eclipse.egit.core.test/src/org/eclipse/egit/core/synchronize/GitResourceVariantTreeTest.java @@ -42,6 +42,7 @@ import org.eclipse.jgit.lib.ObjectId; import org.eclipse.jgit.lib.Ref; import org.eclipse.jgit.lib.RefUpdate; import org.eclipse.jgit.lib.Repository; +import org.eclipse.jgit.storage.file.FileRepository; import org.eclipse.team.core.variants.IResourceVariant; import org.eclipse.team.core.variants.ResourceVariantByteStore; import org.eclipse.team.core.variants.SessionResourceVariantByteStore; @@ -60,7 +61,7 @@ public class GitResourceVariantTreeTest extends GitTestCase { public void createGitRepository() throws Exception { IProject iProject = project.project; if (!gitDir.exists()) - new Repository(gitDir).create(); + new FileRepository(gitDir).create(); new ConnectProviderOperation(iProject, gitDir).execute(null); repo = RepositoryMapping.getMapping(iProject).getRepository(); diff --git a/org.eclipse.egit.core.test/src/org/eclipse/egit/core/synchronize/GitSyncInfoTest.java b/org.eclipse.egit.core.test/src/org/eclipse/egit/core/synchronize/GitSyncInfoTest.java index 93de883547..22f858857e 100644 --- a/org.eclipse.egit.core.test/src/org/eclipse/egit/core/synchronize/GitSyncInfoTest.java +++ b/org.eclipse.egit.core.test/src/org/eclipse/egit/core/synchronize/GitSyncInfoTest.java @@ -43,6 +43,7 @@ import org.eclipse.jgit.lib.Repository; import org.eclipse.jgit.lib.GitIndex.Entry; import org.eclipse.jgit.revwalk.RevCommit; import org.eclipse.jgit.revwalk.RevCommitList; +import org.eclipse.jgit.storage.file.FileRepository; import org.junit.Before; import org.junit.Test; @@ -57,7 +58,7 @@ public class GitSyncInfoTest extends GitTestCase { super.setUp(); IProject iProject = project.project; if (!gitDir.exists()) - new Repository(gitDir).create(); + new FileRepository(gitDir).create(); new ConnectProviderOperation(iProject, gitDir).execute(null); repo = RepositoryMapping.getMapping(iProject).getRepository(); diff --git a/org.eclipse.egit.core.test/src/org/eclipse/egit/core/test/AdaptableFileTreeIteratorTest.java b/org.eclipse.egit.core.test/src/org/eclipse/egit/core/test/AdaptableFileTreeIteratorTest.java index a43d248aa9..1ac5b6b53c 100644 --- a/org.eclipse.egit.core.test/src/org/eclipse/egit/core/test/AdaptableFileTreeIteratorTest.java +++ b/org.eclipse.egit.core.test/src/org/eclipse/egit/core/test/AdaptableFileTreeIteratorTest.java @@ -23,6 +23,7 @@ import org.eclipse.egit.core.ContainerTreeIterator; import org.eclipse.egit.core.op.ConnectProviderOperation; import org.eclipse.egit.core.project.RepositoryMapping; import org.eclipse.jgit.lib.Repository; +import org.eclipse.jgit.storage.file.FileRepository; import org.eclipse.jgit.treewalk.TreeWalk; import org.eclipse.jgit.treewalk.WorkingTreeIterator; import org.eclipse.jgit.treewalk.filter.PathFilterGroup; @@ -41,8 +42,8 @@ public class AdaptableFileTreeIteratorTest extends GitTestCase { public void setUp() throws Exception { super.setUp(); - repository = new Repository(gitDir); - repositoryRoot = repository.getWorkDir(); + repository = new FileRepository(gitDir); + repositoryRoot = repository.getWorkTree(); repository.create(); file = new File(project.getProject().getLocation().toFile(), "a.txt"); diff --git a/org.eclipse.egit.core.test/src/org/eclipse/egit/core/test/DualRepositoryTestCase.java b/org.eclipse.egit.core.test/src/org/eclipse/egit/core/test/DualRepositoryTestCase.java index d53c527a71..73f32ee4e4 100644 --- a/org.eclipse.egit.core.test/src/org/eclipse/egit/core/test/DualRepositoryTestCase.java +++ b/org.eclipse.egit.core.test/src/org/eclipse/egit/core/test/DualRepositoryTestCase.java @@ -34,7 +34,7 @@ public abstract class DualRepositoryTestCase { firstProject.delete(false, null); IProjectDescription desc = ResourcesPlugin.getWorkspace() .newProjectDescription(projectName); - File parentFile = repo.getRepository().getWorkDir(); + File parentFile = repo.getRepository().getWorkTree(); desc.setLocation(new Path(new File(parentFile, projectName).getPath())); firstProject.create(desc, null); firstProject.open(null); diff --git a/org.eclipse.egit.core.test/src/org/eclipse/egit/core/test/TestRepository.java b/org.eclipse.egit.core.test/src/org/eclipse/egit/core/test/TestRepository.java index 6ab42936ba..f81713d2a8 100644 --- a/org.eclipse.egit.core.test/src/org/eclipse/egit/core/test/TestRepository.java +++ b/org.eclipse.egit.core.test/src/org/eclipse/egit/core/test/TestRepository.java @@ -34,6 +34,7 @@ import org.eclipse.jgit.lib.Repository; import org.eclipse.jgit.lib.Tree; import org.eclipse.jgit.lib.GitIndex.Entry; import org.eclipse.jgit.revwalk.RevCommit; +import org.eclipse.jgit.storage.file.FileRepository; /** * Helper class for creating and filling a test repository @@ -51,12 +52,12 @@ public class TestRepository { * @throws IOException */ public TestRepository(File gitDir) throws IOException { - repository = new Repository(gitDir); + repository = new FileRepository(gitDir); repository.create(); try { - workdirPrefix = repository.getWorkDir().getCanonicalPath(); + workdirPrefix = repository.getWorkTree().getCanonicalPath(); } catch (IOException err) { - workdirPrefix = repository.getWorkDir().getAbsolutePath(); + workdirPrefix = repository.getWorkTree().getAbsolutePath(); } workdirPrefix = workdirPrefix.replace('\\', '/'); if (!workdirPrefix.endsWith("/")) //$NON-NLS-1$ @@ -71,9 +72,9 @@ public class TestRepository { public TestRepository(Repository repository) throws IOException { this.repository = repository; try { - workdirPrefix = repository.getWorkDir().getCanonicalPath(); + workdirPrefix = repository.getWorkTree().getCanonicalPath(); } catch (IOException err) { - workdirPrefix = repository.getWorkDir().getAbsolutePath(); + workdirPrefix = repository.getWorkTree().getAbsolutePath(); } workdirPrefix = workdirPrefix.replace('\\', '/'); if (!workdirPrefix.endsWith("/")) //$NON-NLS-1$ @@ -103,7 +104,7 @@ public class TestRepository { public RevCommit createInitialCommit(String message) throws IOException, NoHeadException, NoMessageException, ConcurrentRefUpdateException, JGitInternalException, WrongRepositoryStateException { - String repoPath = repository.getWorkDir().getAbsolutePath(); + String repoPath = repository.getWorkTree().getAbsolutePath(); File file = new File(repoPath, "dummy"); file.createNewFile(); track(file); @@ -144,7 +145,7 @@ public class TestRepository { */ public void track(File file) throws IOException { GitIndex index = repository.getIndex(); - Entry entry = index.add(repository.getWorkDir(), file); + Entry entry = index.add(repository.getWorkTree(), file); entry.setAssumeValid(false); index.write(); } @@ -184,8 +185,8 @@ public class TestRepository { GitIndex index = repository.getIndex(); Entry entry = index.getEntry(getRepoRelativePath(file.getLocation().toOSString())); assertNotNull(entry); - if (entry.isModified(repository.getWorkDir())) - entry.update(new File(repository.getWorkDir(), entry.getName())); + if (entry.isModified(repository.getWorkTree())) + entry.update(new File(repository.getWorkTree(), entry.getName())); index.write(); } diff --git a/org.eclipse.egit.core.test/src/org/eclipse/egit/core/test/internal/mapping/HistoryTest.java b/org.eclipse.egit.core.test/src/org/eclipse/egit/core/test/internal/mapping/HistoryTest.java index 28c0217d03..f5a08929e2 100644 --- a/org.eclipse.egit.core.test/src/org/eclipse/egit/core/test/internal/mapping/HistoryTest.java +++ b/org.eclipse.egit.core.test/src/org/eclipse/egit/core/test/internal/mapping/HistoryTest.java @@ -32,6 +32,7 @@ import org.eclipse.jgit.lib.PersonIdent; import org.eclipse.jgit.lib.RefUpdate; import org.eclipse.jgit.lib.Repository; import org.eclipse.jgit.lib.Tree; +import org.eclipse.jgit.storage.file.FileRepository; import org.eclipse.team.core.RepositoryProvider; import org.eclipse.team.core.history.IFileHistory; import org.eclipse.team.core.history.IFileHistoryProvider; @@ -63,8 +64,8 @@ public class HistoryTest extends GitTestCase { project.createSourceFolder(); gitDir = new File(project.getProject().getWorkspace().getRoot() .getRawLocation().toFile(), Constants.DOT_GIT); - thisGit = new Repository(gitDir); - workDir = thisGit.getWorkDir(); + thisGit = new FileRepository(gitDir); + workDir = thisGit.getWorkTree(); thisGit.create(); objectWriter = new ObjectWriter(thisGit); diff --git a/org.eclipse.egit.core.test/src/org/eclipse/egit/core/test/op/ConnectProviderOperationTest.java b/org.eclipse.egit.core.test/src/org/eclipse/egit/core/test/op/ConnectProviderOperationTest.java index 934e132fde..ecb2022b3a 100644 --- a/org.eclipse.egit.core.test/src/org/eclipse/egit/core/test/op/ConnectProviderOperationTest.java +++ b/org.eclipse.egit.core.test/src/org/eclipse/egit/core/test/op/ConnectProviderOperationTest.java @@ -36,6 +36,7 @@ import org.eclipse.jgit.lib.PersonIdent; import org.eclipse.jgit.lib.RefUpdate; import org.eclipse.jgit.lib.Repository; import org.eclipse.jgit.lib.Tree; +import org.eclipse.jgit.storage.file.FileRepository; import org.eclipse.team.core.RepositoryProvider; import org.junit.Test; @@ -57,7 +58,7 @@ public class ConnectProviderOperationTest extends GitTestCase { File gitDir = new File(project.getProject().getWorkspace().getRoot() .getRawLocation().toFile(), Constants.DOT_GIT); - Repository repository = new Repository(gitDir); + Repository repository = new FileRepository(gitDir); repository.create(); repository.close(); ConnectProviderOperation operation = new ConnectProviderOperation( @@ -80,7 +81,7 @@ public class ConnectProviderOperationTest extends GitTestCase { File gitDir = new File(project.getProject().getWorkspace().getRoot() .getRawLocation().toFile(), Constants.DOT_GIT); - Repository thisGit = new Repository(gitDir); + Repository thisGit = new FileRepository(gitDir); thisGit.create(); Tree rootTree = new Tree(thisGit); Tree prjTree = rootTree.addTree(project.getProject().getName()); diff --git a/org.eclipse.egit.core.test/src/org/eclipse/egit/core/test/op/ListRemoteOperationTest.java b/org.eclipse.egit.core.test/src/org/eclipse/egit/core/test/op/ListRemoteOperationTest.java index 4b38e19ec3..183f173b4d 100644 --- a/org.eclipse.egit.core.test/src/org/eclipse/egit/core/test/op/ListRemoteOperationTest.java +++ b/org.eclipse.egit.core.test/src/org/eclipse/egit/core/test/op/ListRemoteOperationTest.java @@ -30,7 +30,7 @@ import org.eclipse.egit.core.test.DualRepositoryTestCase; import org.eclipse.egit.core.test.TestRepository; import org.eclipse.jgit.lib.Constants; import org.eclipse.jgit.lib.RefUpdate; -import org.eclipse.jgit.lib.Repository; +import org.eclipse.jgit.storage.file.FileRepository; import org.eclipse.jgit.transport.URIish; import org.junit.After; import org.junit.Before; @@ -95,7 +95,7 @@ public class ListRemoteOperationTest extends DualRepositoryTestCase { "refs/heads/master", "origin"); clop.run(null); - repository2 = new TestRepository(new Repository(new File(workdir2, + repository2 = new TestRepository(new FileRepository(new File(workdir2, Constants.DOT_GIT))); // we push to branch "test" of repository2 RefUpdate createBranch = repository2.getRepository().updateRef( diff --git a/org.eclipse.egit.core.test/src/org/eclipse/egit/core/test/op/PushOperationTest.java b/org.eclipse.egit.core.test/src/org/eclipse/egit/core/test/op/PushOperationTest.java index 162e8002c4..742d98d922 100644 --- a/org.eclipse.egit.core.test/src/org/eclipse/egit/core/test/op/PushOperationTest.java +++ b/org.eclipse.egit.core.test/src/org/eclipse/egit/core/test/op/PushOperationTest.java @@ -38,7 +38,7 @@ import org.eclipse.egit.core.test.TestRepository; import org.eclipse.egit.core.test.TestUtils; import org.eclipse.jgit.lib.Constants; import org.eclipse.jgit.lib.RefUpdate; -import org.eclipse.jgit.lib.Repository; +import org.eclipse.jgit.storage.file.FileRepository; import org.eclipse.jgit.transport.RemoteRefUpdate; import org.eclipse.jgit.transport.URIish; import org.eclipse.jgit.transport.RemoteRefUpdate.Status; @@ -105,7 +105,7 @@ public class PushOperationTest extends DualRepositoryTestCase { "refs/heads/master", "origin"); clop.run(null); - repository2 = new TestRepository(new Repository(new File(workdir2, + repository2 = new TestRepository(new FileRepository(new File(workdir2, Constants.DOT_GIT))); // we push to branch "test" of repository2 RefUpdate createBranch = repository2.getRepository().updateRef( @@ -147,7 +147,7 @@ public class PushOperationTest extends DualRepositoryTestCase { IFile[] fileArr = files.toArray(new IFile[files.size()]); // TODO This should be removed once we replace GitIndex with DirCache - // The following wait is currently needed on file + // The following wait is currently needed on file // systems with low time stamp accuracy or a buggy // java.io.File.lastModified. Thread.sleep(1000); diff --git a/org.eclipse.egit.core.test/src/org/eclipse/egit/core/test/op/TrackUntrackOperationTest.java b/org.eclipse.egit.core.test/src/org/eclipse/egit/core/test/op/TrackUntrackOperationTest.java index 7112ddb7a6..fe54ae97e2 100644 --- a/org.eclipse.egit.core.test/src/org/eclipse/egit/core/test/op/TrackUntrackOperationTest.java +++ b/org.eclipse.egit.core.test/src/org/eclipse/egit/core/test/op/TrackUntrackOperationTest.java @@ -97,7 +97,7 @@ public class TrackUntrackOperationTest extends DualRepositoryTestCase { private void assertTrackedState(IFile[] fileArr, boolean expectedState) throws IOException { - DirCache cache = DirCache.read(repository1.getRepository()); + DirCache cache = repository1.getRepository().readDirCache(); for (IFile file : fileArr) { RepositoryMapping rm = RepositoryMapping.getMapping(file); String fileDir = rm.getRepoRelativePath(file); |