/** * Track, add to index and finally commit given file * * @param project * @param file * @param commitMessage * @return commit object * @throws Exception */ public RevCommit addAndCommit(IProject project, File file, String commitMessage) throws Exception { track(file); addToIndex(project, file); return commit(commitMessage); }
/** * Appends file content to given file, then track, add to index and finally commit it. * * @param project * @param file * @param content * @param commitMessage * @return commit object * @throws Exception */ public RevCommit appendContentAndCommit( IProject project, File file, String content, String commitMessage) throws Exception { appendFileContent(file, content); track(file); addToIndex(project, file); return commit(commitMessage); }
@Test public void markAsMerged() throws Exception { GitSynchronizeData gsd = new GitSynchronizeData(repo, HEAD, HEAD, false); GitSynchronizeDataSet gsds = new GitSynchronizeDataSet(gsd); GitResourceVariantTreeSubscriber subscriber = new GitResourceVariantTreeSubscriber(gsds); String fileName = "src/Main.java"; File file = testRepo.createFile(iProject, fileName); testRepo.appendContentAndCommit(iProject, file, "class Main {}", "some file"); testRepo.addToIndex(iProject.getFile(".classpath")); testRepo.addToIndex(iProject.getFile(".project")); testRepo.commit("project files"); IFile workspaceFile = testRepo.getIFile(iProject, file); ResourceMapping mapping = AdapterUtils.adapt(workspaceFile, ResourceMapping.class); ResourceMapping[] inputMappings = new ResourceMapping[] {mapping}; SubscriberScopeManager manager = new SubscriberScopeManager("Scope", inputMappings, subscriber, true); testRepo.appendFileContent(file, "some changes"); Status status = new Git(repo).status().call(); assertEquals(0, status.getAdded().size()); assertEquals(1, status.getModified().size()); String repoRelativePath = testRepo.getRepoRelativePath(workspaceFile.getLocation().toPortableString()); assertTrue(status.getModified().contains(repoRelativePath)); GitSubscriberMergeContext mergeContext = new GitSubscriberMergeContext(subscriber, manager, gsds); IDiff node = new ResourceDiff(iProject.getFolder("src"), IDiff.CHANGE); mergeContext.markAsMerged(node, true, null); status = new Git(repo).status().call(); assertEquals(1, status.getChanged().size()); assertEquals(0, status.getModified().size()); assertTrue(status.getChanged().contains(repoRelativePath)); }
/** * Adds the given file to the index * * @param project * @param file * @throws Exception */ public void addToIndex(IProject project, File file) throws Exception { IFile iFile = getIFile(project, file); addToIndex(iFile); }