List of usage examples for org.eclipse.jgit.lib Repository Repository
protected Repository(BaseRepositoryBuilder options)
From source file:com.smartitengineering.version.impl.jgit.JGitImpl.java
License:Open Source License
public void init() throws IOException { if (initialized) { throw new IllegalStateException("Impl already initialized"); }//w w w . j ava 2 s . com if (StringUtils.isBlank(getReadRepositoryLocation()) || StringUtils.isBlank(getWriteRepositoryLocation())) { throw new IllegalStateException("Repository location not set!"); } File writeRepoDir = new File(getWriteRepositoryLocation()); writeRepository = new Repository(writeRepoDir); if (!writeRepoDir.exists()) { writeRepository.create(); } writeRepository.close(); File readRepoDir = new File(getReadRepositoryLocation()); readRepository = new Repository(readRepoDir); if (!readRepoDir.exists()) { readRepository.create(); } readRepository.close(); executorService = Executors.newFixedThreadPool(getConfig().getConcurrentWriteOperations()); initialized = true; }
From source file:com.smartitengineering.version.impl.jgit.JGitImpl.java
License:Open Source License
protected synchronized void reInitReadRepository() throws IOException { readRepository.close();//from ww w . java 2s . c o m readRepository = new Repository(new File(getReadRepositoryLocation())); }
From source file:com.sonatype.sshjgit.core.gitcommand.AbstractGitCommand.java
License:Apache License
@Override protected final void run(String[] args) throws IOException, Failure { String projectName = parseCommandLine(args); if (projectName.endsWith(".git")) { // Be nice and drop the trailing ".git" suffix, which we never keep // in our database, but clients might mistakenly provide anyway. ////from ww w .j ava 2 s .c o m projectName = projectName.substring(0, projectName.length() - 4); } if (projectName.startsWith("/")) { // Be nice and drop the leading "/" if supplied by an absolute path. // We don't have a file system hierarchy, just a flat namespace in // the database's Project entities. We never encode these with a // leading '/' but users might accidentally include them in Git URLs. // projectName = projectName.substring(1); } if (!projectName.matches(VALID_PROJECTNAME_REGEX)) { // Disallow dangerous project names which for example attempt to // traverse directories backwards with ../../ // Unicode attacks is another example of things we filter out. // Only way to safely avoid all these (and future) attacks, are // by only allowing a known safe set of names. throw new Failure(2, "Disallowed project name. Valid project " + "names are for example 'project1', 'subdir/project2' and " + "'subdir/subsubdir/project3'."); } // TODO: Should we have a locking mechanism, so no two clients can work with the same repo at the same time? Is it handled by JGit internally already? repo = new Repository(new File(projectName)); final RepositoryConfig repositoryConfig = repo.getConfig(); if (!repositoryConfig.getFile().exists()) { // TODO: Check so any of the parent directories in the path leading up to this location, doesn't already contain a repo. SecurityUtils.getSubject().checkPermission("gitrepo:new:" + getRepoNameAsPermissionParts(repo)); repo.create(); } try { runImpl(); } finally { repo.close(); } }
From source file:org.eclipse.egit.core.synchronize.GitSyncInfoTest.java
License:Open Source License
@Before public void setUp() throws Exception { super.setUp(); IProject iProject = project.project; if (!gitDir.exists()) new Repository(gitDir).create(); new ConnectProviderOperation(iProject, gitDir).execute(null); repo = RepositoryMapping.getMapping(iProject).getRepository(); GitSynchronizeData data = new GitSynchronizeData(repo, "", "", true); GitSynchronizeDataSet dataSet = new GitSynchronizeDataSet(data); comparator = new GitResourceVariantComparator(dataSet, null); }
From source file:org.eclipse.egit.core.test.internal.mapping.T0002_HistoryTest.java
License:Open Source License
@Before public void setUp() throws Exception { super.setUp(); project.createSourceFolder();/*w w w . j a va2 s. c om*/ gitDir = new File(project.getProject().getWorkspace().getRoot().getRawLocation().toFile(), Constants.DOT_GIT); thisGit = new Repository(gitDir); workDir = thisGit.getWorkDir(); thisGit.create(); objectWriter = new ObjectWriter(thisGit); tree = new Tree(thisGit); Tree projectTree = tree.addTree("Project-1"); File project1_a_txt = createFile("Project-1/A.txt", "A.txt - first version\n"); addFile(projectTree, project1_a_txt); projectTree.setId(objectWriter.writeTree(projectTree)); File project1_b_txt = createFile("Project-1/B.txt", "B.txt - first version\n"); addFile(projectTree, project1_b_txt); projectTree.setId(objectWriter.writeTree(projectTree)); tree.setId(objectWriter.writeTree(tree)); Commit commit = new Commit(thisGit); commit.setAuthor(new PersonIdent(jauthor, new Date(0L), TimeZone.getTimeZone("GMT+1"))); commit.setCommitter(new PersonIdent(jcommitter, new Date(0L), TimeZone.getTimeZone("GMT+1"))); commit.setMessage("Foo\n\nMessage"); commit.setTree(tree); ObjectId commitId = objectWriter.writeCommit(commit); tree = new Tree(thisGit); projectTree = tree.addTree("Project-1"); addFile(projectTree, project1_a_txt); File project1_b_v2_txt = createFile("Project-1/B.txt", "B.txt - second version\n"); addFile(projectTree, project1_b_v2_txt); projectTree.setId(objectWriter.writeTree(projectTree)); tree.setId(objectWriter.writeTree(tree)); commit = new Commit(thisGit); commit.setAuthor(new PersonIdent(jauthor, new Date(0L), TimeZone.getTimeZone("GMT+1"))); commit.setCommitter(new PersonIdent(jcommitter, new Date(0L), TimeZone.getTimeZone("GMT+1"))); commit.setMessage("Modified"); commit.setParentIds(new ObjectId[] { commitId }); commit.setTree(tree); commitId = objectWriter.writeCommit(commit); RefUpdate lck = thisGit.updateRef("refs/heads/master"); assertNotNull("obtained lock", lck); lck.setNewObjectId(commitId); assertEquals(RefUpdate.Result.NEW, lck.forceUpdate()); ConnectProviderOperation operation = new ConnectProviderOperation(project.getProject(), gitDir); operation.execute(null); }
From source file:org.eclipse.egit.core.test.op.T0001_ConnectProviderOperationTest.java
License:Open Source License
@Test public void testNewRepository() throws CoreException, IOException { File gitDir = new File(project.getProject().getWorkspace().getRoot().getRawLocation().toFile(), Constants.DOT_GIT);/*ww w.j a v a 2 s. c o m*/ Repository repository = new Repository(gitDir); repository.create(); repository.close(); ConnectProviderOperation operation = new ConnectProviderOperation(project.getProject(), gitDir); operation.execute(null); assertTrue(RepositoryProvider.isShared(project.getProject())); assertTrue(gitDir.exists()); }
From source file:org.eclipse.egit.core.test.op.T0001_ConnectProviderOperationTest.java
License:Open Source License
@Test public void testNewUnsharedFile() throws CoreException, IOException, InterruptedException { project.createSourceFolder();/*w ww .j a va 2s . com*/ IFile fileA = project.getProject().getFolder("src").getFile("A.java"); String srcA = "class A {\n" + "}\n"; fileA.create(new ByteArrayInputStream(srcA.getBytes()), false, null); File gitDir = new File(project.getProject().getWorkspace().getRoot().getRawLocation().toFile(), Constants.DOT_GIT); Repository thisGit = new Repository(gitDir); thisGit.create(); Tree rootTree = new Tree(thisGit); Tree prjTree = rootTree.addTree(project.getProject().getName()); Tree srcTree = prjTree.addTree("src"); FileTreeEntry entryA = srcTree.addFile("A.java"); ObjectWriter writer = new ObjectWriter(thisGit); entryA.setId(writer.writeBlob(fileA.getRawLocation().toFile())); srcTree.setId(writer.writeTree(srcTree)); prjTree.setId(writer.writeTree(prjTree)); rootTree.setId(writer.writeTree(rootTree)); Commit commit = new Commit(thisGit); commit.setTree(rootTree); commit.setAuthor(new PersonIdent("J. Git", "j.git@egit.org", new Date(60876075600000L), TimeZone.getTimeZone("GMT+1"))); commit.setCommitter(commit.getAuthor()); commit.setMessage("testNewUnsharedFile\n\nJunit tests\n"); ObjectId id = writer.writeCommit(commit); RefUpdate lck = thisGit.updateRef("refs/heads/master"); assertNotNull("obtained lock", lck); lck.setNewObjectId(id); assertEquals(RefUpdate.Result.NEW, lck.forceUpdate()); ConnectProviderOperation operation = new ConnectProviderOperation(project.getProject(), gitDir); operation.execute(null); final boolean f[] = new boolean[1]; new Job("wait") { protected IStatus run(IProgressMonitor monitor) { System.out.println("MyJob"); f[0] = true; return null; } { setRule(project.getProject()); schedule(); } }; while (!f[0]) { System.out.println("Waiting"); Thread.sleep(1000); } System.out.println("DONE"); assertNotNull(RepositoryProvider.getProvider(project.getProject())); }
From source file:org.eclipse.egit.core.test.T0003_AdaptableFileTreeIteratorTest.java
License:Open Source License
@Before public void setUp() throws Exception { super.setUp(); repository = new Repository(gitDir); repositoryRoot = repository.getWorkDir(); repository.create();//from w ww. j a v a 2 s .co m file = new File(project.getProject().getLocation().toFile(), "a.txt"); final FileWriter fileWriter = new FileWriter(file); fileWriter.write("aaaaaaaaaaa"); fileWriter.close(); final ConnectProviderOperation operation = new ConnectProviderOperation(project.getProject(), gitDir); operation.execute(null); }
From source file:org.nbgit.Git.java
License:Open Source License
public Repository getRepository(File root) { Repository repo = repos.get(root);//from w w w. j ava2s .c o m if (repo == null) { final File gitDir = new File(root, Constants.DOT_GIT); try { repo = new Repository(gitDir); repos.put(root, repo); } catch (IOException ex) { } } return repo; }
From source file:org.nbgit.junit.RepositoryTestCase.java
License:Open Source License
@Override protected void setUp() throws Exception { super.setUp(); clearWorkDir();/* w ww . j a va2s.co m*/ SystemReader.setInstance(new MockSystemReader(new File(gitDir, "userconfig"))); dataDir = new File(dataRoot, getName()); workDir = new File(getWorkDir(), "repo"); gitDir = new File(workDir, ".git"); repository = new Repository(gitDir); repository.create(); loggerMessages = new ArrayList<String>(); logger = MockOutputLogger.create(loggerMessages); time = TIME_INITIAL; copyRepositoryFiles("default", repository); repository.getConfig().load(); }