Beispiel #1
0
  /**
   * 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);
  }
Beispiel #2
0
  /**
   * 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));
  }
Beispiel #4
0
 /**
  * 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);
 }