List of usage examples for org.eclipse.jgit.api Git getRepository
public Repository getRepository()
From source file:com.stormcloud.ide.api.git.GitManager.java
License:Open Source License
@Override public boolean isModified(String repository) throws GitManagerException { try {/*from w ww . ja va 2s . c o m*/ Git git = Git.open(new File(repository)); IndexDiff diff = new IndexDiff(git.getRepository(), "HEAD", new FileTreeIterator(git.getRepository())); diff.diff(); if (!diff.getAdded().isEmpty()) { return true; } if (!diff.getChanged().isEmpty()) { return true; } if (!diff.getMissing().isEmpty()) { return true; } if (!diff.getModified().isEmpty()) { return true; } if (!diff.getRemoved().isEmpty()) { return true; } if (!diff.getUntracked().isEmpty()) { return true; } if (!diff.getUntrackedFolders().isEmpty()) { return true; } } catch (IOException e) { LOG.error(e); throw new GitManagerException(e); } return false; }
From source file:com.stormcloud.ide.api.git.GitManager.java
License:Open Source License
@Override public String getStatus(String file, String userHome) throws GitManagerException { String tmpRelativePath = new File(file).getAbsolutePath().replaceFirst(userHome + "/projects", "") .replaceFirst("/", ""); String project;/* w ww .j av a2 s . c o m*/ if (tmpRelativePath.contains("/")) { project = tmpRelativePath.substring(0, tmpRelativePath.indexOf('/')); } else { project = tmpRelativePath; } String repository = userHome + "/projects/" + project; String relativePath = tmpRelativePath.replaceFirst(project, "").replaceFirst("/", ""); String status = "unmodified"; try { Git git = Git.open(new File(repository)); IndexDiff diff = new IndexDiff(git.getRepository(), "HEAD", new FileTreeIterator(git.getRepository())); diff.setFilter(PathFilterGroup.createFromStrings(relativePath)); diff.diff(); if (!diff.getModified().isEmpty() || !diff.getChanged().isEmpty()) { return "modified"; } if (!diff.getMissing().isEmpty() || !diff.getRemoved().isEmpty()) { return "missing"; } if (!diff.getUntracked().isEmpty() || !diff.getUntrackedFolders().isEmpty() || !diff.getAdded().isEmpty()) { return "untracked"; } if (!diff.getConflicting().isEmpty()) { return "conflict"; } return status; } catch (IOException e) { LOG.error(e); throw new GitManagerException(e); } }
From source file:com.surevine.gateway.scm.git.jgit.JGitGitFacade.java
License:Open Source License
@Override public Map<String, String> getRemotes(final LocalRepoBean repoBean) throws GitException { Map<String, String> remotes = new HashMap<String, String>(); try {/*from www . j a v a2 s . c o m*/ FileRepositoryBuilder builder = new FileRepositoryBuilder(); Repository repository = builder.setGitDir(repoBean.getGitConfigDirectory().toFile()).findGitDir() .build(); Git git = new org.eclipse.jgit.api.Git(repository); StoredConfig config = git.getRepository().getConfig(); Set<String> remoteNames = config.getSubsections("remote"); for (String remoteName : remoteNames) { remotes.put(remoteName, config.getString("remote", remoteName, "url")); } } catch (IOException e) { LOGGER.error(e); throw new GitException(e); } return remotes; }
From source file:com.surevine.gateway.scm.git.jgit.JGitGitFacade.java
License:Open Source License
@Override public void addRemote(final LocalRepoBean repoBean, final String remoteName, final String remoteURL) throws GitException { try {/*from w w w . j ava2s . co m*/ FileRepositoryBuilder builder = new FileRepositoryBuilder(); Repository repository = builder.setGitDir(repoBean.getGitConfigDirectory().toFile()).findGitDir() .build(); Git git = new org.eclipse.jgit.api.Git(repository); StoredConfig config = git.getRepository().getConfig(); config.setString("remote", remoteName, "url", remoteURL); config.setString("remote", remoteName, "fetch", String.format("+refs/heads/*:refs/remotes/%s/*", remoteName)); config.save(); } catch (IOException e) { LOGGER.error(e); throw new GitException(e); } }
From source file:com.tasktop.c2c.server.internal.profile.service.template.GitServiceCloner.java
License:Open Source License
private void copyRepo(ScmRepository scmRepo, CloneContext context) throws IOException, JGitInternalException, GitAPIException { File workDirectory = null;/* www .java 2 s .c o m*/ try { Project templateProject = context.getTemplateService().getProjectServiceProfile().getProject(); String cloneUrl = jgitProvider.computeRepositoryUrl(templateProject.getIdentifier(), scmRepo.getName()); AuthUtils.assumeSystemIdentity(templateProject.getIdentifier()); tenancyManager.establishTenancyContext(context.getTemplateService()); workDirectory = createTempDirectory(); Git git = Git.cloneRepository().setDirectory(workDirectory) .setBranch(Constants.R_HEADS + Constants.MASTER).setURI(cloneUrl).call(); AuthUtils.assumeSystemIdentity( context.getTargetService().getProjectServiceProfile().getProject().getIdentifier()); tenancyManager.establishTenancyContext(context.getTargetService()); FileUtils.deleteDirectory(git.getRepository().getDirectory()); git = Git.init().setDirectory(git.getRepository().getDirectory().getParentFile()).call(); maybeRewriteRepo(workDirectory, context); String pushUrl = jgitProvider.computeRepositoryUrl( context.getTargetService().getProjectServiceProfile().getProject().getIdentifier(), scmRepo.getName()); // FIXME: User's locale is not defined here String commitMessage = messageSource.getMessage("project.template.git.commitMessage", new Object[] { templateProject.getName() }, null); git.add().addFilepattern(".").call(); git.commit().setCommitter(committerName, committerEmail).setMessage(commitMessage).call(); git.getRepository().getConfig().setString("remote", "target", "url", pushUrl); git.push().setRemote("target").setPushAll().call(); } finally { if (workDirectory != null) { FileUtils.deleteDirectory(workDirectory); } } }
From source file:com.tasktop.c2c.server.scm.service.GitServiceBean.java
License:Open Source License
/** * @param repo//from w ww .j a v a 2s. co m * @param git */ private void setBranchesAndTags(ScmRepository repo, Git git) { repo.setBranches(new ArrayList<String>()); try { for (Ref ref : git.branchList().call()) { String refName = ref.getName(); if (refName.startsWith(Constants.R_HEADS)) { refName = refName.substring(Constants.R_HEADS.length()); } repo.getBranches().add(refName); } } catch (GitAPIException e) { throw new JGitInternalException(e.getMessage(), e); } RevWalk revWalk = new RevWalk(git.getRepository()); Map<String, Ref> refList; repo.setTags(new ArrayList<String>()); try { refList = git.getRepository().getRefDatabase().getRefs(Constants.R_TAGS); for (Ref ref : refList.values()) { repo.getTags().add(ref.getName().substring(Constants.R_TAGS.length())); } } catch (IOException e) { throw new JGitInternalException(e.getMessage(), e); } finally { revWalk.release(); } Collections.sort(repo.getTags()); }
From source file:com.tasktop.c2c.server.scm.service.GitServiceBean.java
License:Open Source License
private List<ScmRepository> getExternalRepositories() throws IOException, URISyntaxException { List<ScmRepository> result = new ArrayList<ScmRepository>(); File hostedDir = repositoryProvider.getTenantMirroredBaseDir(); if (hostedDir != null && hostedDir.exists()) { for (String repoName : hostedDir.list()) { ScmRepository repo = new ScmRepository(); repo.setName(repoName);/*w w w . ja v a2s . co m*/ repo.setScmLocation(ScmLocation.EXTERNAL); repo.setType(ScmType.GIT); Git git = Git.open(new File(hostedDir, repoName)); RemoteConfig config = new RemoteConfig(git.getRepository().getConfig(), Constants.DEFAULT_REMOTE_NAME); repo.setUrl(config.getURIs().get(0).toString()); setBranchesAndTags(repo, git); result.add(repo); } } return result; }
From source file:com.tasktop.c2c.server.scm.service.GitServiceBean.java
License:Open Source License
@Secured({ Role.Admin }) @Override//from w ww . ja va 2 s . c o m public void addExternalRepository(String url) { try { String repoName = getRepoDirNameFromExternalUrl(url); File dir = new File(repositoryProvider.getTenantMirroredBaseDir(), repoName); Git git = Git.init().setBare(true).setDirectory(dir).call(); RemoteConfig config = new RemoteConfig(git.getRepository().getConfig(), Constants.DEFAULT_REMOTE_NAME); config.addURI(new URIish(url)); config.update(git.getRepository().getConfig()); git.getRepository().getConfig().save(); } catch (JGitInternalException e) { throw new RuntimeException(e); } catch (URISyntaxException e) { throw new RuntimeException(e); } catch (IOException e) { throw new RuntimeException(e); } catch (GitAPIException e) { throw new RuntimeException(e); } }
From source file:com.tasktop.c2c.server.scm.service.GitServiceTestBase.java
License:Open Source License
protected void commitAndPushFile(Git git, String path, String content, String message) throws GitAPIException, JGitInternalException, IOException { File f = new File(git.getRepository().getDirectory().getParentFile(), path); ensureDirExists(f.getParentFile());//from w w w .jav a 2s .c o m FileOutputStream writer = new FileOutputStream(f); writer.write(content.getBytes()); writer.close(); git.add().addFilepattern(path).call(); git.commit().setMessage(message).call(); git.push().call(); }
From source file:com.technophobia.substeps.mojo.runner.SubstepsRunnerMojoTest.java
License:Open Source License
@Test public void testGitStuff() { FileRepositoryBuilder builder = new FileRepositoryBuilder(); try {/* ww w . j a va2 s . c o m*/ Repository repository = builder.setGitDir(new File("/home/ian/projects/github/substeps-framework/.git")) .readEnvironment() // scan environment GIT_* variables .findGitDir() // scan up the file system tree .build(); Git git = new Git(repository); String branchName = git.getRepository().getBranch(); System.out.println("get branch: " + branchName); if (branchName != null) { System.setProperty("SUBSTEPS_CURRENT_BRANCHNAME", branchName); } Config cfg = Configuration.INSTANCE.getConfig(); // System.out.println(cfg.getString("user.name")); System.out.println(cfg.getString("substeps.current.branchname")); } catch (Exception e) { System.out.println("Exception trying to get hold of the current branch: " + e.getMessage()); } }