org.netbeans.libs.git.GitClient.getStatus()

Here are the examples of the java api org.netbeans.libs.git.GitClient.getStatus() taken from open source projects. By voting up you can indicate which examples are most useful and appropriate.

95 Examples 7

19 Source : StatusTest.java
with Apache License 2.0
from apache

public void testStatusTree() throws Exception {
    File folder = new File(workDir, "folder1");
    folder.mkdirs();
    write(new File(folder, "untracked1"), "untracked");
    write(new File(folder, "untracked2"), "untracked");
    folder = new File(workDir, "folder2");
    folder.mkdirs();
    File f1 = new File(folder, "f1");
    write(f1, "f1");
    File f2 = new File(folder, "f2");
    write(f2, "f2");
    File folder21 = new File(folder, "folder21");
    folder21.mkdirs();
    File f3 = new File(folder21, "f3");
    write(f3, "f3");
    File f4 = new File(folder21, "f4");
    write(f4, "f4");
    File folder22 = new File(folder, "folder22");
    folder22.mkdirs();
    File f5 = new File(folder22, "f5");
    write(f5, "f5");
    File f6 = new File(folder22, "f6");
    write(f6, "f6");
    add(f1, f2, f3, f4, f5, f6);
    commit(f1, f2, f3, f4, f5, f6);
    GitClient client = getClient(workDir);
    TestStatusListener monitor = new TestStatusListener();
    client.addNotificationListener(monitor);
    Map<File, GitStatus> statuses = client.getStatus(new File[] { folder }, NULL_PROGRESS_MONITOR);
    replacedertEquals(6, statuses.size());
    replacedertStatus(statuses, workDir, f1, true, Status.STATUS_NORMAL, Status.STATUS_NORMAL, Status.STATUS_NORMAL, false, monitor);
    replacedertStatus(statuses, workDir, f2, true, Status.STATUS_NORMAL, Status.STATUS_NORMAL, Status.STATUS_NORMAL, false, monitor);
    replacedertStatus(statuses, workDir, f3, true, Status.STATUS_NORMAL, Status.STATUS_NORMAL, Status.STATUS_NORMAL, false, monitor);
    replacedertStatus(statuses, workDir, f4, true, Status.STATUS_NORMAL, Status.STATUS_NORMAL, Status.STATUS_NORMAL, false, monitor);
    replacedertStatus(statuses, workDir, f5, true, Status.STATUS_NORMAL, Status.STATUS_NORMAL, Status.STATUS_NORMAL, false, monitor);
    replacedertStatus(statuses, workDir, f6, true, Status.STATUS_NORMAL, Status.STATUS_NORMAL, Status.STATUS_NORMAL, false, monitor);
}

19 Source : StatusTest.java
with Apache License 2.0
from apache

public void testStatusSingleFile() throws Exception {
    File untracked = new File(workDir, "untracked");
    write(untracked, "untracked");
    File added_modified = new File(workDir, "added-modified");
    write(added_modified, "added_modified");
    File uptodate_modified = new File(workDir, "uptodate-modified");
    write(uptodate_modified, "uptodate_modified");
    File modified_modified = new File(workDir, "modified-modified");
    write(modified_modified, "modified_modified");
    add(uptodate_modified, modified_modified);
    commit(uptodate_modified, modified_modified);
    add(added_modified);
    write(modified_modified, "modification modified_modified");
    add(modified_modified);
    write(added_modified, "modification2 added_modified");
    write(uptodate_modified, "modification2 uptodate_modified");
    write(modified_modified, "modification2 modified_modified");
    GitClient client = getClient(workDir);
    TestStatusListener monitor = new TestStatusListener();
    client.addNotificationListener(monitor);
    Map<File, GitStatus> statuses = client.getStatus(new File[] { untracked }, NULL_PROGRESS_MONITOR);
    replacedertEquals(1, statuses.size());
    replacedertStatus(statuses, workDir, untracked, false, Status.STATUS_NORMAL, Status.STATUS_ADDED, Status.STATUS_ADDED, false, monitor);
    monitor = new TestStatusListener();
    client.addNotificationListener(monitor);
    statuses = client.getStatus(new File[] { added_modified }, NULL_PROGRESS_MONITOR);
    replacedertEquals(1, statuses.size());
    replacedertStatus(statuses, workDir, added_modified, true, Status.STATUS_ADDED, Status.STATUS_MODIFIED, Status.STATUS_ADDED, false, monitor);
    monitor = new TestStatusListener();
    client.addNotificationListener(monitor);
    statuses = client.getStatus(new File[] { uptodate_modified }, NULL_PROGRESS_MONITOR);
    replacedertEquals(1, statuses.size());
    replacedertStatus(statuses, workDir, uptodate_modified, true, Status.STATUS_NORMAL, Status.STATUS_MODIFIED, Status.STATUS_MODIFIED, false, monitor);
    monitor = new TestStatusListener();
    client.addNotificationListener(monitor);
    statuses = client.getStatus(new File[] { modified_modified }, NULL_PROGRESS_MONITOR);
    replacedertEquals(1, statuses.size());
    replacedertStatus(statuses, workDir, modified_modified, true, Status.STATUS_MODIFIED, Status.STATUS_MODIFIED, Status.STATUS_MODIFIED, false, monitor);
}

19 Source : StatusTest.java
with Apache License 2.0
from apache

public void testIgnoredSymlinkFolder() throws Exception {
    File folder1 = new File(workDir, "boo");
    File file1 = new File(workDir, "old_file");
    File folder2 = new File(workDir, "some_dir");
    File file2_1 = new File(folder2, "some_file");
    folder1.mkdirs();
    folder2.mkdirs();
    file1.createNewFile();
    file2_1.createNewFile();
    add(workDir);
    commit(workDir);
    GitClient client = getClient(workDir);
    Map<File, GitStatus> statuses = client.getStatus(new File[0], NULL_PROGRESS_MONITOR);
    replacedertEquals(2, statuses.size());
    replacedertStatus(statuses, workDir, file1, true, Status.STATUS_NORMAL, Status.STATUS_NORMAL, Status.STATUS_NORMAL, false);
    replacedertStatus(statuses, workDir, file2_1, true, Status.STATUS_NORMAL, Status.STATUS_NORMAL, Status.STATUS_NORMAL, false);
    // create a symlink, not added to index
    String relPath = "../some_dir";
    File link = new File(folder1, folder2.getName());
    Files.createSymbolicLink(Paths.get(link.getAbsolutePath()), Paths.get(relPath));
    replacedertTrue(Files.isSymbolicLink(Paths.get(link.getAbsolutePath())));
    statuses = client.getStatus(new File[] { link }, NULL_PROGRESS_MONITOR);
    replacedertStatus(statuses, workDir, link, false, Status.STATUS_NORMAL, Status.STATUS_ADDED, Status.STATUS_ADDED, false);
    client.ignore(new File[] { link }, NULL_PROGRESS_MONITOR);
    replacedertEquals("/boo/some_dir", read(new File(workDir, ".gitignore")));
    statuses = client.getStatus(new File[] { link }, NULL_PROGRESS_MONITOR);
    replacedertStatus(statuses, workDir, link, false, Status.STATUS_NORMAL, Status.STATUS_IGNORED, Status.STATUS_ADDED, false);
}

19 Source : StatusTest.java
with Apache License 2.0
from apache

public void testMiscStatus() throws Exception {
    write(new File(workDir, ".gitignore"), "ignored");
    File untracked = new File(workDir, "untracked");
    write(untracked, "untracked");
    File ignored = new File(workDir, "ignored");
    write(ignored, "ignored");
    File added_uptodate = new File(workDir, "added-uptodate");
    write(added_uptodate, "added-uptodate");
    File added_modified = new File(workDir, "added-modified");
    write(added_modified, "added_modified");
    File added_deleted = new File(workDir, "added-deleted");
    write(added_deleted, "added_deleted");
    File uptodate_uptodate = new File(workDir, "uptodate-uptodate");
    write(uptodate_uptodate, "uptodate_uptodate");
    File uptodate_modified = new File(workDir, "uptodate-modified");
    write(uptodate_modified, "uptodate_modified");
    File uptodate_deleted = new File(workDir, "uptodate-deleted");
    write(uptodate_deleted, "uptodate_deleted");
    File modified_uptodate = new File(workDir, "modified-uptodate");
    write(modified_uptodate, "modified_uptodate");
    File modified_modified = new File(workDir, "modified-modified");
    write(modified_modified, "modified_modified");
    File modified_reset = new File(workDir, "modified-reset");
    write(modified_reset, "modified_reset");
    File modified_deleted = new File(workDir, "modified-deleted");
    write(modified_deleted, "modified_deleted");
    // we cannot
    File deleted_uptodate = new File(workDir, "deleted-uptodate");
    write(deleted_uptodate, "deleted_uptodate");
    File deleted_untracked = new File(workDir, "deleted-untracked");
    write(deleted_untracked, "deleted_untracked");
    File deleted_modified = new File(workDir, "deleted-modified");
    write(deleted_modified, "deleted_modified");
    add(uptodate_uptodate, uptodate_modified, uptodate_deleted, modified_uptodate, modified_modified, modified_reset, modified_deleted, deleted_uptodate, deleted_untracked, deleted_modified);
    commit(workDir);
    add(added_uptodate, added_modified, added_deleted);
    write(modified_deleted, "modification modified_deleted");
    write(modified_modified, "modification modified_modified");
    write(modified_reset, "modification modified_reset");
    write(modified_uptodate, "modification modified_uptodate");
    add(modified_deleted, modified_modified, modified_reset, modified_uptodate);
    deleted_uptodate.delete();
    deleted_untracked.delete();
    deleted_modified.delete();
    remove(true, deleted_uptodate, deleted_untracked, deleted_modified);
    write(added_modified, "modification2 added_modified");
    write(uptodate_modified, "modification2 uptodate_modified");
    write(modified_modified, "modification2 modified_modified");
    write(modified_reset, "modified_reset");
    added_deleted.delete();
    modified_deleted.delete();
    uptodate_deleted.delete();
    write(deleted_untracked, "deleted_untracked");
    write(deleted_modified, "deleted_modified\nchange");
    TestStatusListener listener = new TestStatusListener();
    GitClient client = getClient(workDir);
    client.addNotificationListener(listener);
    Map<File, GitStatus> statuses = client.getStatus(new File[] { workDir }, NULL_PROGRESS_MONITOR);
    replacedertFalse(statuses.isEmpty());
    replacedertStatus(statuses, workDir, untracked, false, Status.STATUS_NORMAL, Status.STATUS_ADDED, Status.STATUS_ADDED, false, listener);
    replacedertStatus(statuses, workDir, added_uptodate, true, Status.STATUS_ADDED, Status.STATUS_NORMAL, Status.STATUS_ADDED, false, listener);
    replacedertStatus(statuses, workDir, added_modified, true, Status.STATUS_ADDED, Status.STATUS_MODIFIED, Status.STATUS_ADDED, false, listener);
    replacedertStatus(statuses, workDir, added_deleted, true, Status.STATUS_ADDED, Status.STATUS_REMOVED, Status.STATUS_NORMAL, false, listener);
    replacedertStatus(statuses, workDir, uptodate_uptodate, true, Status.STATUS_NORMAL, Status.STATUS_NORMAL, Status.STATUS_NORMAL, false, listener);
    replacedertStatus(statuses, workDir, uptodate_modified, true, Status.STATUS_NORMAL, Status.STATUS_MODIFIED, Status.STATUS_MODIFIED, false, listener);
    replacedertStatus(statuses, workDir, uptodate_deleted, true, Status.STATUS_NORMAL, Status.STATUS_REMOVED, Status.STATUS_REMOVED, false, listener);
    replacedertStatus(statuses, workDir, modified_uptodate, true, Status.STATUS_MODIFIED, Status.STATUS_NORMAL, Status.STATUS_MODIFIED, false, listener);
    replacedertStatus(statuses, workDir, modified_modified, true, Status.STATUS_MODIFIED, Status.STATUS_MODIFIED, Status.STATUS_MODIFIED, false, listener);
    replacedertStatus(statuses, workDir, modified_reset, true, Status.STATUS_MODIFIED, Status.STATUS_MODIFIED, Status.STATUS_NORMAL, false, listener);
    replacedertStatus(statuses, workDir, modified_deleted, true, Status.STATUS_MODIFIED, Status.STATUS_REMOVED, Status.STATUS_REMOVED, false, listener);
    replacedertStatus(statuses, workDir, deleted_uptodate, true, Status.STATUS_REMOVED, Status.STATUS_NORMAL, Status.STATUS_REMOVED, false, listener);
    replacedertStatus(statuses, workDir, deleted_untracked, true, Status.STATUS_REMOVED, Status.STATUS_ADDED, Status.STATUS_NORMAL, false, listener);
    replacedertStatus(statuses, workDir, deleted_modified, true, Status.STATUS_REMOVED, Status.STATUS_ADDED, Status.STATUS_MODIFIED, false, listener);
    // what about isIgnored() here?
    replacedertStatus(statuses, workDir, ignored, false, Status.STATUS_NORMAL, Status.STATUS_IGNORED, Status.STATUS_ADDED, false, listener);
}

19 Source : StatusTest.java
with Apache License 2.0
from apache

public void testIgnoreExecutable() throws Exception {
    if (isWindows()) {
        // no reason to test on win
        return;
    }
    File f = new File(workDir, "f");
    write(f, "hi, i am executable");
    f.setExecutable(true);
    File[] roots = { f };
    add(roots);
    commit(roots);
    GitClient client = getClient(workDir);
    Map<File, GitStatus> statuses = client.getStatus(roots, NULL_PROGRESS_MONITOR);
    replacedertStatus(statuses, workDir, f, true, Status.STATUS_NORMAL, Status.STATUS_NORMAL, Status.STATUS_NORMAL, false);
    f.setExecutable(false);
    statuses = client.getStatus(roots, NULL_PROGRESS_MONITOR);
    replacedertStatus(statuses, workDir, f, true, Status.STATUS_NORMAL, Status.STATUS_MODIFIED, Status.STATUS_MODIFIED, false);
    StoredConfig config = repository.getConfig();
    config.setBoolean(ConfigConstants.CONFIG_CORE_SECTION, null, ConfigConstants.CONFIG_KEY_FILEMODE, false);
    config.save();
    statuses = client.getStatus(roots, NULL_PROGRESS_MONITOR);
    replacedertStatus(statuses, workDir, f, true, Status.STATUS_NORMAL, Status.STATUS_NORMAL, Status.STATUS_NORMAL, false);
    config.setBoolean(ConfigConstants.CONFIG_CORE_SECTION, null, ConfigConstants.CONFIG_KEY_FILEMODE, true);
    config.save();
    add(roots);
    statuses = client.getStatus(roots, NULL_PROGRESS_MONITOR);
    replacedertStatus(statuses, workDir, f, true, Status.STATUS_MODIFIED, Status.STATUS_NORMAL, Status.STATUS_MODIFIED, false);
    config.setBoolean(ConfigConstants.CONFIG_CORE_SECTION, null, ConfigConstants.CONFIG_KEY_FILEMODE, false);
    config.save();
    add(roots);
    statuses = client.getStatus(roots, NULL_PROGRESS_MONITOR);
    replacedertStatus(statuses, workDir, f, true, Status.STATUS_MODIFIED, Status.STATUS_NORMAL, Status.STATUS_NORMAL, false);
}

19 Source : StatusTest.java
with Apache License 2.0
from apache

public void testModifiedUnderIgnored() throws Exception {
    File f = new File(workDir, "folder/f");
    f.getParentFile().mkdirs();
    write(f, "hi, i am new");
    add(f);
    commit(f);
    GitClient client = getClient(workDir);
    Map<File, GitStatus> st = client.getStatus(new File[] { f }, NULL_PROGRESS_MONITOR);
    replacedertStatus(st, workDir, f, true, Status.STATUS_NORMAL, Status.STATUS_NORMAL, Status.STATUS_NORMAL, false);
    client.ignore(new File[] { f.getParentFile() }, NULL_PROGRESS_MONITOR);
    st = client.getStatus(new File[] {}, NULL_PROGRESS_MONITOR);
    replacedertStatus(st, workDir, f.getParentFile(), false, Status.STATUS_NORMAL, Status.STATUS_IGNORED, Status.STATUS_IGNORED, false);
    // file f is not ignored, it's committed
    replacedertStatus(st, workDir, f, true, Status.STATUS_NORMAL, Status.STATUS_NORMAL, Status.STATUS_NORMAL, false);
    write(f, "hi, i am modified");
    st = client.getStatus(new File[] {}, NULL_PROGRESS_MONITOR);
    replacedertStatus(st, workDir, f.getParentFile(), false, Status.STATUS_NORMAL, Status.STATUS_IGNORED, Status.STATUS_IGNORED, false);
    // file f is not ignored, it's committed and modified
    replacedertStatus(st, workDir, f, true, Status.STATUS_NORMAL, Status.STATUS_MODIFIED, Status.STATUS_MODIFIED, false);
}

19 Source : StatusTest.java
with Apache License 2.0
from apache

public void testIgnoredSymlinkFile() throws Exception {
    File folder1 = new File(workDir, "boo");
    File file1 = new File(workDir, "old_file");
    File folder2 = new File(workDir, "some_dir");
    File file2_1 = new File(folder2, "some_file");
    folder1.mkdirs();
    folder2.mkdirs();
    file1.createNewFile();
    file2_1.createNewFile();
    add(workDir);
    commit(workDir);
    GitClient client = getClient(workDir);
    Map<File, GitStatus> statuses = client.getStatus(new File[0], NULL_PROGRESS_MONITOR);
    replacedertEquals(2, statuses.size());
    replacedertStatus(statuses, workDir, file1, true, Status.STATUS_NORMAL, Status.STATUS_NORMAL, Status.STATUS_NORMAL, false);
    replacedertStatus(statuses, workDir, file2_1, true, Status.STATUS_NORMAL, Status.STATUS_NORMAL, Status.STATUS_NORMAL, false);
    // create a symlink, not added to index
    String relPath = "../some_dir/some_file";
    File link = new File(folder1, file2_1.getName());
    Files.createSymbolicLink(Paths.get(link.getAbsolutePath()), Paths.get(relPath));
    replacedertTrue(Files.isSymbolicLink(Paths.get(link.getAbsolutePath())));
    statuses = client.getStatus(new File[] { link }, NULL_PROGRESS_MONITOR);
    replacedertStatus(statuses, workDir, link, false, Status.STATUS_NORMAL, Status.STATUS_ADDED, Status.STATUS_ADDED, false);
    client.ignore(new File[] { link }, NULL_PROGRESS_MONITOR);
    replacedertEquals("/boo/some_file", read(new File(workDir, ".gitignore")));
    statuses = client.getStatus(new File[] { link }, NULL_PROGRESS_MONITOR);
    replacedertStatus(statuses, workDir, link, false, Status.STATUS_NORMAL, Status.STATUS_IGNORED, Status.STATUS_ADDED, false);
}

19 Source : StatusTest.java
with Apache License 2.0
from apache

public void testLastIndexModificationDate() throws Exception {
    File f = new File(workDir, "f");
    GitClient client = getClient(workDir);
    write(f, "init");
    // not yet added to the index => ts: -1
    GitStatus status = client.getStatus(new File[] { f }, NULL_PROGRESS_MONITOR).get(f);
    replacedertEquals(-1, status.getIndexEntryModificationDate());
    add(f);
    // added => current timestamp
    status = client.getStatus(new File[] { f }, NULL_PROGRESS_MONITOR).get(f);
    long ts = f.lastModified();
    replacedertEquals((ts / 1000) * 1000, (status.getIndexEntryModificationDate() / 1000) * 1000);
    commit(f);
    // still the same => current timestamp
    status = client.getStatus(new File[] { f }, NULL_PROGRESS_MONITOR).get(f);
    replacedertEquals((ts / 1000) * 1000, (status.getIndexEntryModificationDate() / 1000) * 1000);
    Thread.sleep(1000);
    write(f, "modification");
    // modified => both should differ
    status = client.getStatus(new File[] { f }, NULL_PROGRESS_MONITOR).get(f);
    replacedertEquals((ts / 1000) * 1000, (status.getIndexEntryModificationDate() / 1000) * 1000);
    ts = f.lastModified();
    replacedertNotSame((ts / 1000) * 1000, (status.getIndexEntryModificationDate() / 1000) * 1000);
    add(f);
    // updated -> both are the same
    status = client.getStatus(new File[] { f }, NULL_PROGRESS_MONITOR).get(f);
    replacedertEquals((ts / 1000) * 1000, (status.getIndexEntryModificationDate() / 1000) * 1000);
    client.remove(new File[] { f }, true, NULL_PROGRESS_MONITOR);
    // removed => ts: -1
    status = client.getStatus(new File[] { f }, NULL_PROGRESS_MONITOR).get(f);
    replacedertEquals(-1, status.getIndexEntryModificationDate());
}

19 Source : ResetTest.java
with Apache License 2.0
from apache

public void testResetHard() throws Exception {
    File file1 = new File(workDir, "file1");
    write(file1, "blablablabla");
    File file2 = new File(workDir, "file2");
    write(file2, "blablablabla in file2");
    File[] files = new File[] { file1, file2 };
    add(files);
    commit(files);
    GitClient client = getClient(workDir);
    Map<File, GitStatus> statuses = client.getStatus(files, NULL_PROGRESS_MONITOR);
    replacedertEquals(2, statuses.size());
    replacedertStatus(statuses, workDir, file1, true, Status.STATUS_NORMAL, Status.STATUS_NORMAL, Status.STATUS_NORMAL, false);
    replacedertStatus(statuses, workDir, file2, true, Status.STATUS_NORMAL, Status.STATUS_NORMAL, Status.STATUS_NORMAL, false);
    write(file1, "change in content");
    add(file1);
    commit(files);
    Iterator<RevCommit> logs = new Git(repository).log().call().iterator();
    logs.next();
    RevCommit commit = logs.next();
    String revision = commit.getId().getName();
    long ts = file2.lastModified();
    Thread.sleep(1000);
    client.reset(revision, ResetType.HARD, NULL_PROGRESS_MONITOR);
    replacedertEquals(ts, file2.lastModified());
    replacedertEquals(revision, new Git(repository).log().call().iterator().next().getId().getName());
    statuses = client.getStatus(files, NULL_PROGRESS_MONITOR);
    replacedertEquals(2, statuses.size());
    replacedertStatus(statuses, workDir, file1, true, Status.STATUS_NORMAL, Status.STATUS_NORMAL, Status.STATUS_NORMAL, false);
    replacedertStatus(statuses, workDir, file2, true, Status.STATUS_NORMAL, Status.STATUS_NORMAL, Status.STATUS_NORMAL, false);
}

19 Source : ResetTest.java
with Apache License 2.0
from apache

public void testResetMixed() throws Exception {
    File file1 = new File(workDir, "file1");
    write(file1, "blablablabla");
    File file2 = new File(workDir, "file2");
    write(file2, "blablablabla in file2");
    File[] files = new File[] { file1, file2 };
    add(files);
    commit(files);
    GitClient client = getClient(workDir);
    Map<File, GitStatus> statuses = client.getStatus(files, NULL_PROGRESS_MONITOR);
    replacedertEquals(2, statuses.size());
    replacedertStatus(statuses, workDir, file1, true, Status.STATUS_NORMAL, Status.STATUS_NORMAL, Status.STATUS_NORMAL, false);
    replacedertStatus(statuses, workDir, file2, true, Status.STATUS_NORMAL, Status.STATUS_NORMAL, Status.STATUS_NORMAL, false);
    write(file1, "change in content");
    add(file1);
    commit(files);
    Iterator<RevCommit> logs = new Git(repository).log().call().iterator();
    logs.next();
    RevCommit commit = logs.next();
    String revision = commit.getId().getName();
    client.reset(revision, ResetType.MIXED, NULL_PROGRESS_MONITOR);
    replacedertEquals(revision, new Git(repository).log().call().iterator().next().getId().getName());
    statuses = client.getStatus(files, NULL_PROGRESS_MONITOR);
    replacedertEquals(2, statuses.size());
    replacedertStatus(statuses, workDir, file1, true, Status.STATUS_NORMAL, Status.STATUS_MODIFIED, Status.STATUS_MODIFIED, false);
    replacedertStatus(statuses, workDir, file2, true, Status.STATUS_NORMAL, Status.STATUS_NORMAL, Status.STATUS_NORMAL, false);
}

19 Source : ResetTest.java
with Apache License 2.0
from apache

public void testResetHardOverwritesModification() throws Exception {
    File file1 = new File(workDir, "file1");
    write(file1, "blablablabla");
    File[] files = new File[] { file1 };
    add(files);
    commit(files);
    GitClient client = getClient(workDir);
    Map<File, GitStatus> statuses = client.getStatus(files, NULL_PROGRESS_MONITOR);
    replacedertEquals(1, statuses.size());
    replacedertStatus(statuses, workDir, file1, true, Status.STATUS_NORMAL, Status.STATUS_NORMAL, Status.STATUS_NORMAL, false);
    write(file1, "change in content");
    add(file1);
    commit(files);
    write(file1, "hello, i have local modifications");
    Iterator<RevCommit> logs = new Git(repository).log().call().iterator();
    logs.next();
    RevCommit commit = logs.next();
    String revision = commit.getId().getName();
    client.reset(revision, ResetType.HARD, NULL_PROGRESS_MONITOR);
    replacedertEquals(revision, new Git(repository).log().call().iterator().next().getId().getName());
    statuses = client.getStatus(files, NULL_PROGRESS_MONITOR);
    replacedertEquals(1, statuses.size());
    replacedertStatus(statuses, workDir, file1, true, Status.STATUS_NORMAL, Status.STATUS_NORMAL, Status.STATUS_NORMAL, false);
    replacedertEquals("blablablabla", read(file1));
}

19 Source : ResetTest.java
with Apache License 2.0
from apache

public void testLineEndingsWindows() throws Exception {
    if (!isWindows()) {
        return;
    }
    // lets turn autocrlf on
    Thread.sleep(1100);
    StoredConfig cfg = repository.getConfig();
    cfg.setString(ConfigConstants.CONFIG_CORE_SECTION, null, ConfigConstants.CONFIG_KEY_AUTOCRLF, "true");
    cfg.save();
    File f = new File(workDir, "f");
    write(f, "a\r\nb\r\n");
    File[] roots = new File[] { f };
    GitClient client = getClient(workDir);
    runExternally(workDir, Arrays.asList("git.cmd", "add", "f"));
    List<String> res = runExternally(workDir, Arrays.asList("git.cmd", "status", "-s"));
    replacedertEquals(Arrays.asList("A  f"), res);
    DirCacheEntry e1 = repository.readDirCache().getEntry("f");
    runExternally(workDir, Arrays.asList("git.cmd", "commit", "-m", "hello"));
    write(f, "a\r\nb\r\nc\r\n");
    res = runExternally(workDir, Arrays.asList("git.cmd", "status", "-s"));
    replacedertEquals(Arrays.asList(" M f"), res);
    runExternally(workDir, Arrays.asList("git.cmd", "add", "f"));
    res = runExternally(workDir, Arrays.asList("git.cmd", "status", "-s"));
    replacedertEquals(Arrays.asList("M  f"), res);
    replacedertStatus(client.getStatus(roots, NULL_PROGRESS_MONITOR), workDir, f, true, Status.STATUS_MODIFIED, Status.STATUS_NORMAL, Status.STATUS_MODIFIED, false);
    client.reset(roots, "HEAD", true, NULL_PROGRESS_MONITOR);
    replacedertStatus(client.getStatus(roots, NULL_PROGRESS_MONITOR), workDir, f, true, Status.STATUS_NORMAL, Status.STATUS_MODIFIED, Status.STATUS_MODIFIED, false);
    replacedertEquals(e1.getObjectId(), repository.readDirCache().getEntry("f").getObjectId());
    res = runExternally(workDir, Arrays.asList("git.cmd", "status", "-s"));
    replacedertEquals(Arrays.asList(" M f"), res);
    runExternally(workDir, Arrays.asList("git.cmd", "add", "f"));
    res = runExternally(workDir, Arrays.asList("git.cmd", "status", "-s"));
    replacedertEquals(Arrays.asList("M  f"), res);
    replacedertStatus(client.getStatus(roots, NULL_PROGRESS_MONITOR), workDir, f, true, Status.STATUS_MODIFIED, Status.STATUS_NORMAL, Status.STATUS_MODIFIED, false);
    client.reset("HEAD", ResetType.HARD, NULL_PROGRESS_MONITOR);
    replacedertStatus(client.getStatus(roots, NULL_PROGRESS_MONITOR), workDir, f, true, Status.STATUS_NORMAL, Status.STATUS_NORMAL, Status.STATUS_NORMAL, false);
    replacedertEquals(e1.getObjectId(), repository.readDirCache().getEntry("f").getObjectId());
    res = runExternally(workDir, Arrays.asList("git.cmd", "status", "-s"));
    replacedertEquals(0, res.size());
}

19 Source : ResetTest.java
with Apache License 2.0
from apache

public void testResetSoft() throws Exception {
    File file1 = new File(workDir, "file1");
    write(file1, "blablablabla");
    File file2 = new File(workDir, "file2");
    write(file2, "blablablabla in file2");
    File[] files = new File[] { file1, file2 };
    add(files);
    commit(files);
    GitClient client = getClient(workDir);
    Map<File, GitStatus> statuses = client.getStatus(files, NULL_PROGRESS_MONITOR);
    replacedertEquals(2, statuses.size());
    replacedertStatus(statuses, workDir, file1, true, Status.STATUS_NORMAL, Status.STATUS_NORMAL, Status.STATUS_NORMAL, false);
    replacedertStatus(statuses, workDir, file2, true, Status.STATUS_NORMAL, Status.STATUS_NORMAL, Status.STATUS_NORMAL, false);
    write(file1, "change in content");
    add(file1);
    commit(files);
    Iterator<RevCommit> logs = new Git(repository).log().call().iterator();
    logs.next();
    RevCommit commit = logs.next();
    String revision = commit.getId().getName();
    client.reset(revision, ResetType.SOFT, NULL_PROGRESS_MONITOR);
    replacedertEquals(revision, new Git(repository).log().call().iterator().next().getId().getName());
    statuses = client.getStatus(files, NULL_PROGRESS_MONITOR);
    replacedertEquals(2, statuses.size());
    replacedertStatus(statuses, workDir, file1, true, Status.STATUS_MODIFIED, Status.STATUS_NORMAL, Status.STATUS_MODIFIED, false);
    replacedertStatus(statuses, workDir, file2, true, Status.STATUS_NORMAL, Status.STATUS_NORMAL, Status.STATUS_NORMAL, false);
}

19 Source : ResetTest.java
with Apache License 2.0
from apache

public void testResetPathsChangeType() throws Exception {
    // index entry will be modified
    File file = new File(workDir, "f");
    File file2 = new File(file, "file");
    write(file, "blablablabla");
    File[] files = new File[] { file, file2 };
    add(files);
    commit(files);
    GitClient client = getClient(workDir);
    client.remove(files, false, NULL_PROGRESS_MONITOR);
    commit(files);
    file.mkdirs();
    write(file2, "aaaa");
    add(file2);
    commit(files);
    Iterator<RevCommit> logs = new Git(repository).log().call().iterator();
    String revisionCurrent = logs.next().getId().getName();
    logs.next();
    String revisionPrevious = logs.next().getId().getName();
    client.reset(files, revisionPrevious, true, NULL_PROGRESS_MONITOR);
    Map<File, GitStatus> statuses = client.getStatus(files, NULL_PROGRESS_MONITOR);
    replacedertEquals(2, statuses.size());
    replacedertStatus(statuses, workDir, file, true, Status.STATUS_ADDED, Status.STATUS_REMOVED, Status.STATUS_NORMAL, false);
    replacedertStatus(statuses, workDir, file2, true, Status.STATUS_REMOVED, Status.STATUS_ADDED, Status.STATUS_NORMAL, false);
    client.reset(files, revisionCurrent, true, NULL_PROGRESS_MONITOR);
    statuses = client.getStatus(files, NULL_PROGRESS_MONITOR);
    replacedertEquals(1, statuses.size());
    replacedertStatus(statuses, workDir, file2, true, Status.STATUS_NORMAL, Status.STATUS_NORMAL, Status.STATUS_NORMAL, false);
}

19 Source : ResetTest.java
with Apache License 2.0
from apache

public void testResetHardTypeConflict() throws Exception {
    File file1 = new File(workDir, "file1");
    write(file1, "blablablabla");
    File file2 = new File(file1, "f");
    File[] files = new File[] { file1, file2 };
    add(files);
    commit(files);
    GitClient client = getClient(workDir);
    Map<File, GitStatus> statuses = client.getStatus(files, NULL_PROGRESS_MONITOR);
    replacedertEquals(1, statuses.size());
    replacedertStatus(statuses, workDir, file1, true, Status.STATUS_NORMAL, Status.STATUS_NORMAL, Status.STATUS_NORMAL, false);
    client.remove(files, false, NULL_PROGRESS_MONITOR);
    file1.mkdirs();
    replacedertTrue(file1.isDirectory());
    write(file2, "ssss");
    write(new File(file1, "untracked"), "ssss");
    add(file2);
    commit(files);
    Iterator<RevCommit> logs = new Git(repository).log().call().iterator();
    RevCommit commitCurrent = logs.next();
    RevCommit commit = logs.next();
    String revision = commit.getId().getName();
    client.reset(revision, ResetType.HARD, NULL_PROGRESS_MONITOR);
    replacedertEquals(revision, new Git(repository).log().call().iterator().next().getId().getName());
    statuses = client.getStatus(files, NULL_PROGRESS_MONITOR);
    replacedertEquals(1, statuses.size());
    replacedertStatus(statuses, workDir, file1, true, Status.STATUS_NORMAL, Status.STATUS_NORMAL, Status.STATUS_NORMAL, false);
    replacedertTrue(file1.isFile());
    String currentRevision = commitCurrent.getId().getName();
    client.reset(currentRevision, ResetType.HARD, NULL_PROGRESS_MONITOR);
    replacedertEquals(currentRevision, new Git(repository).log().call().iterator().next().getId().getName());
    statuses = client.getStatus(files, NULL_PROGRESS_MONITOR);
    replacedertStatus(statuses, workDir, file2, true, Status.STATUS_NORMAL, Status.STATUS_NORMAL, Status.STATUS_NORMAL, false);
    replacedertTrue(file1.isDirectory());
}

19 Source : ResetTest.java
with Apache License 2.0
from apache

public void testResetConflict() throws Exception {
    File file = new File(workDir, "file");
    write(file, "init");
    File[] files = new File[] { file };
    add(files);
    commit(files);
    DirCache index = repository.lockDirCache();
    DirCacheBuilder builder = index.builder();
    DirCacheEntry e = index.getEntry(file.getName());
    DirCacheEntry e1 = new DirCacheEntry(file.getName(), 1);
    e1.setCreationTime(e.getCreationTime());
    e1.setFileMode(e.getFileMode());
    e1.setLastModified(e.getLastModified());
    e1.setLength(e.getLength());
    e1.setObjectId(e.getObjectId());
    builder.add(e1);
    builder.finish();
    builder.commit();
    GitClient client = getClient(workDir);
    Map<File, GitStatus> status = client.getStatus(files, NULL_PROGRESS_MONITOR);
    replacedertTrue(status.get(file).isConflict());
    replacedertEquals(GitConflictDescriptor.Type.BOTH_DELETED, status.get(file).getConflictDescriptor().getType());
    client.reset(files, "HEAD", true, NULL_PROGRESS_MONITOR);
    status = client.getStatus(files, NULL_PROGRESS_MONITOR);
    replacedertFalse(status.get(file).isConflict());
}

19 Source : ResetTest.java
with Apache License 2.0
from apache

public void testResetHardRemoveFile() throws Exception {
    File file1 = new File(workDir, "file1");
    write(file1, "blablablabla");
    File file2 = new File(workDir, "file2");
    write(file2, "blablablabla");
    File[] files = new File[] { file1 };
    add(files);
    commit(files);
    GitClient client = getClient(workDir);
    add(file2);
    files = new File[] { file1, file2 };
    commit(files);
    Iterator<RevCommit> logs = new Git(repository).log().call().iterator();
    logs.next();
    RevCommit commit = logs.next();
    String revision = commit.getId().getName();
    replacedertTrue(file2.exists());
    client.reset(revision, ResetType.HARD, NULL_PROGRESS_MONITOR);
    replacedertEquals(revision, new Git(repository).log().call().iterator().next().getId().getName());
    Map<File, GitStatus> statuses = client.getStatus(files, NULL_PROGRESS_MONITOR);
    replacedertEquals(1, statuses.size());
    replacedertStatus(statuses, workDir, file1, true, Status.STATUS_NORMAL, Status.STATUS_NORMAL, Status.STATUS_NORMAL, false);
    replacedertFalse(file2.exists());
}

19 Source : RebaseTest.java
with Apache License 2.0
from apache

public void testConflicts() throws Exception {
    File f = new File(workDir, "file");
    File f2 = new File(workDir, "file2");
    write(f, "init");
    add(f);
    commit(f);
    GitClient client = getClient(workDir);
    client.createBranch(BRANCH_NAME, Constants.MASTER, NULL_PROGRESS_MONITOR);
    write(f, Constants.MASTER);
    add(f);
    GitRevisionInfo masterInfo = client.commit(new File[] { f }, "change on master", null, null, NULL_PROGRESS_MONITOR);
    client.checkoutRevision(BRANCH_NAME, true, NULL_PROGRESS_MONITOR);
    write(f, BRANCH_NAME);
    add(f);
    write(f2, BRANCH_NAME);
    add(f2);
    GitRevisionInfo branchInfo = client.commit(new File[] { f, f2 }, "change on branch", null, null, NULL_PROGRESS_MONITOR);
    GitRebaseResult result = client.rebase(RebaseOperationType.BEGIN, Constants.MASTER, NULL_PROGRESS_MONITOR);
    replacedertEquals(RebaseStatus.STOPPED, result.getRebaseStatus());
    replacedertEquals("<<<<<<< Upstream, based on master\nmaster\n=======\nnew_branch\n>>>>>>> " + branchInfo.getRevision().substring(0, 7) + " " + branchInfo.getShortMessage(), read(f));
    replacedertEquals(Arrays.asList(f), result.getConflicts());
    Map<File, GitStatus> statuses = client.getStatus(new File[] { f, f2 }, NULL_PROGRESS_MONITOR);
    replacedertTrue(statuses.get(f).isConflict());
    replacedertStatus(statuses, workDir, f2, true, GitStatus.Status.STATUS_ADDED, GitStatus.Status.STATUS_NORMAL, GitStatus.Status.STATUS_ADDED, false);
    replacedertEquals(branchInfo.getRevision(), result.getCurrentCommit());
    replacedertEquals(masterInfo.getRevision(), result.getCurrentHead());
}

19 Source : RebaseTest.java
with Apache License 2.0
from apache

public void testResolveConflictsNoCommit() throws Exception {
    File f = new File(workDir, "file");
    write(f, "init");
    add(f);
    commit(f);
    GitClient client = getClient(workDir);
    client.createBranch(BRANCH_NAME, Constants.MASTER, NULL_PROGRESS_MONITOR);
    write(f, Constants.MASTER);
    add(f);
    GitRevisionInfo masterInfo = client.commit(new File[] { f }, "change on master", null, null, NULL_PROGRESS_MONITOR);
    client.checkoutRevision(BRANCH_NAME, true, NULL_PROGRESS_MONITOR);
    write(f, BRANCH_NAME);
    add(f);
    GitRevisionInfo branchInfo = client.commit(new File[] { f }, "change on branch", null, null, NULL_PROGRESS_MONITOR);
    GitRebaseResult result = client.rebase(RebaseOperationType.BEGIN, Constants.MASTER, NULL_PROGRESS_MONITOR);
    replacedertEquals(RebaseStatus.STOPPED, result.getRebaseStatus());
    replacedertEquals("<<<<<<< Upstream, based on master\nmaster\n=======\nnew_branch\n>>>>>>> " + branchInfo.getRevision().substring(0, 7) + " " + branchInfo.getShortMessage(), read(f));
    replacedertEquals(Arrays.asList(f), result.getConflicts());
    Map<File, GitStatus> statuses = client.getStatus(new File[] { f }, NULL_PROGRESS_MONITOR);
    replacedertTrue(statuses.get(f).isConflict());
    replacedertEquals(branchInfo.getRevision(), result.getCurrentCommit());
    replacedertEquals(masterInfo.getRevision(), result.getCurrentHead());
    write(f, Constants.MASTER);
    add(f);
    result = client.rebase(RebaseOperationType.CONTINUE, null, NULL_PROGRESS_MONITOR);
    replacedertEquals(RebaseStatus.NOTHING_TO_COMMIT, result.getRebaseStatus());
    replacedertTrue(result.getConflicts().isEmpty());
    replacedertEquals(masterInfo.getRevision(), result.getCurrentHead());
    replacedertEquals(branchInfo.getRevision(), getRepository(client).resolve(BRANCH_NAME).name());
    replacedertEquals(masterInfo.getRevision(), getRepository(client).resolve(Constants.MASTER).name());
    // still have to finish rebase
    result = client.rebase(RebaseOperationType.SKIP, null, NULL_PROGRESS_MONITOR);
    replacedertEquals(RebaseStatus.OK, result.getRebaseStatus());
    replacedertTrue(result.getConflicts().isEmpty());
    replacedertEquals(masterInfo.getRevision(), result.getCurrentHead());
    replacedertEquals(masterInfo.getRevision(), getRepository(client).resolve(BRANCH_NAME).name());
    replacedertEquals(masterInfo.getRevision(), getRepository(client).resolve(Constants.MASTER).name());
}

19 Source : PullTest.java
with Apache License 2.0
from apache

public void testPullFailOnLocalChanges() throws Exception {
    GitClient client = getClient(workDir);
    client.pull(otherWT.toURI().toString(), Arrays.asList(new String[] { "+refs/heads/*:refs/remotes/origin/*" }), "origin/master", NULL_PROGRESS_MONITOR);
    File f = new File(workDir, this.f.getName());
    write(f, "local change");
    add(f);
    Map<String, GitBranch> branches = client.getBranches(true, NULL_PROGRESS_MONITOR);
    makeRemoteChange("master");
    try {
        GitPullResult result = client.pull(otherWT.toURI().toString(), Arrays.asList(new String[] { "+refs/heads/*:refs/remotes/origin/*" }), "origin/master", NULL_PROGRESS_MONITOR);
        fail("Should fail");
    } catch (GitException.CheckoutConflictException ex) {
    // OK
    }
    client.reset("master", GitClient.ResetType.HARD, NULL_PROGRESS_MONITOR);
    File f2 = new File(workDir, "f2");
    write(f2, "hi, i am new");
    add(f2);
    GitPullResult result = client.pull(otherWT.toURI().toString(), Arrays.asList(new String[] { "+refs/heads/*:refs/remotes/origin/*" }), "origin/master", NULL_PROGRESS_MONITOR);
    replacedertEquals(MergeStatus.FAST_FORWARD, result.getMergeResult().getMergeStatus());
    replacedertStatus(client.getStatus(new File[] { f2 }, NULL_PROGRESS_MONITOR), workDir, f2, true, Status.STATUS_MODIFIED, Status.STATUS_NORMAL, Status.STATUS_MODIFIED, false);
}

19 Source : IgnoreTest.java
with Apache License 2.0
from apache

public void test199443_GlobalIgnoreFile() throws Exception {
    File f = new File(new File(workDir, "nbproject"), "file");
    f.getParentFile().mkdirs();
    f.createNewFile();
    File ignoreFile = new File(workDir.getParentFile(), "globalignore");
    write(ignoreFile, ".DS_Store\n.svn\nnbproject\nnbproject/private\n");
    Repository repo = getRepository(getLocalGitRepository());
    StoredConfig cfg = repo.getConfig();
    cfg.setString(ConfigConstants.CONFIG_CORE_SECTION, null, ConfigConstants.CONFIG_KEY_EXCLUDESFILE, ignoreFile.getAbsolutePath());
    cfg.save();
    GitClient client = getClient(workDir);
    replacedertEquals(Status.STATUS_IGNORED, client.getStatus(new File[] { f }, NULL_PROGRESS_MONITOR).get(f).getStatusIndexWC());
    // now since the file is already ignored, no ignore file should be modified
    replacedertEquals(0, client.ignore(new File[] { f }, NULL_PROGRESS_MONITOR).length);
    // on the other hand, if .git/info/exclude reverts the effect of global excludes file, ignored file should be modified
    File dotGitIgnoreFile = new File(new File(repo.getDirectory(), "info"), "exclude");
    dotGitIgnoreFile.getParentFile().mkdirs();
    write(dotGitIgnoreFile, "!/nbproject/");
    replacedertEquals(Status.STATUS_ADDED, client.getStatus(new File[] { f }, NULL_PROGRESS_MONITOR).get(f).getStatusIndexWC());
    replacedertEquals(dotGitIgnoreFile, client.ignore(new File[] { f }, NULL_PROGRESS_MONITOR)[0]);
    replacedertEquals(Status.STATUS_IGNORED, client.getStatus(new File[] { f }, NULL_PROGRESS_MONITOR).get(f).getStatusIndexWC());
}

19 Source : IgnoreTest.java
with Apache License 2.0
from apache

public void test242551_DoubleStarPattern() throws Exception {
    File f = new File(new File(workDir, "AAA/BBB/CCC"), "file");
    f.getParentFile().mkdirs();
    f.createNewFile();
    GitClient client = getClient(workDir);
    Map<File, GitStatus> statuses = client.getStatus(new File[0], NULL_PROGRESS_MONITOR);
    replacedertStatus(statuses, workDir, f, false, Status.STATUS_NORMAL, Status.STATUS_ADDED, Status.STATUS_ADDED, false);
    File ignoreFile = new File(workDir, ".gitignore");
    write(ignoreFile, "AAA/**/file");
    statuses = client.getStatus(new File[0], NULL_PROGRESS_MONITOR);
    replacedertEquals(Status.STATUS_IGNORED, statuses.get(f).getStatusIndexWC());
}

19 Source : CheckoutTest.java
with Apache License 2.0
from apache

public void testLineEndingsWindows() throws Exception {
    if (!isWindows()) {
        return;
    }
    // lets turn autocrlf on
    Thread.sleep(1100);
    StoredConfig cfg = repository.getConfig();
    cfg.setString(ConfigConstants.CONFIG_CORE_SECTION, null, ConfigConstants.CONFIG_KEY_AUTOCRLF, "true");
    cfg.save();
    File f = new File(workDir, "f");
    write(f, "a\r\nb\r\n");
    File[] roots = new File[] { f };
    GitClient client = getClient(workDir);
    runExternally(workDir, Arrays.asList("git.cmd", "add", "f"));
    List<String> res = runExternally(workDir, Arrays.asList("git.cmd", "status", "-s"));
    replacedertEquals(Arrays.asList("A  f"), res);
    DirCacheEntry e1 = repository.readDirCache().getEntry("f");
    runExternally(workDir, Arrays.asList("git.cmd", "commit", "-m", "hello"));
    write(f, "a\r\nb\r\nc\r\n");
    res = runExternally(workDir, Arrays.asList("git.cmd", "status", "-s"));
    replacedertEquals(Arrays.asList(" M f"), res);
    runExternally(workDir, Arrays.asList("git.cmd", "add", "f"));
    res = runExternally(workDir, Arrays.asList("git.cmd", "status", "-s"));
    replacedertEquals(Arrays.asList("M  f"), res);
    replacedertStatus(client.getStatus(roots, NULL_PROGRESS_MONITOR), workDir, f, true, GitStatus.Status.STATUS_MODIFIED, GitStatus.Status.STATUS_NORMAL, GitStatus.Status.STATUS_MODIFIED, false);
    client.checkout(roots, "HEAD", true, NULL_PROGRESS_MONITOR);
    replacedertStatus(client.getStatus(roots, NULL_PROGRESS_MONITOR), workDir, f, true, GitStatus.Status.STATUS_NORMAL, GitStatus.Status.STATUS_NORMAL, GitStatus.Status.STATUS_NORMAL, false);
    replacedertEquals(e1.getObjectId(), repository.readDirCache().getEntry("f").getObjectId());
    res = runExternally(workDir, Arrays.asList("git.cmd", "status", "-s"));
    replacedertEquals(0, res.size());
    write(f, "a\r\nb\r\nc\r\n");
    res = runExternally(workDir, Arrays.asList("git.cmd", "status", "-s"));
    replacedertEquals(Arrays.asList(" M f"), res);
    replacedertStatus(client.getStatus(roots, NULL_PROGRESS_MONITOR), workDir, f, true, GitStatus.Status.STATUS_NORMAL, GitStatus.Status.STATUS_MODIFIED, GitStatus.Status.STATUS_MODIFIED, false);
    client.checkout(roots, null, true, NULL_PROGRESS_MONITOR);
    replacedertStatus(client.getStatus(roots, NULL_PROGRESS_MONITOR), workDir, f, true, GitStatus.Status.STATUS_NORMAL, GitStatus.Status.STATUS_NORMAL, GitStatus.Status.STATUS_NORMAL, false);
    replacedertEquals(e1.getObjectId(), repository.readDirCache().getEntry("f").getObjectId());
    res = runExternally(workDir, Arrays.asList("git.cmd", "status", "-s"));
    replacedertEquals(0, res.size());
}

19 Source : CheckoutTest.java
with Apache License 2.0
from apache

public void testCheckoutPathsFromRevision() throws Exception {
    File file1 = new File(workDir, "file1");
    write(file1, "file 1 content");
    File[] files = new File[] { file1 };
    add(files);
    commit(files);
    String content1 = "change in file 1";
    write(file1, content1);
    add(files);
    commit(files);
    write(file1, "another change in file 1");
    Iterator<RevCommit> logs = new Git(repository).log().call().iterator();
    String currentRevision = logs.next().getId().getName();
    String previousRevision = logs.next().getId().getName();
    GitClient client = getClient(workDir);
    Map<File, GitStatus> statuses = client.getStatus(files, NULL_PROGRESS_MONITOR);
    replacedertStatus(statuses, workDir, file1, true, GitStatus.Status.STATUS_NORMAL, GitStatus.Status.STATUS_MODIFIED, GitStatus.Status.STATUS_MODIFIED, false);
    client.checkout(new File[] { file1 }, currentRevision, true, NULL_PROGRESS_MONITOR);
    statuses = client.getStatus(files, NULL_PROGRESS_MONITOR);
    replacedertStatus(statuses, workDir, file1, true, GitStatus.Status.STATUS_NORMAL, GitStatus.Status.STATUS_NORMAL, GitStatus.Status.STATUS_NORMAL, false);
    replacedertEquals(content1, read(file1));
    replacedertEquals(currentRevision, new Git(repository).log().call().iterator().next().getId().getName());
    write(file1, "another change in file 1");
    client.checkout(new File[] { file1 }, currentRevision, true, NULL_PROGRESS_MONITOR);
    statuses = client.getStatus(files, NULL_PROGRESS_MONITOR);
    replacedertStatus(statuses, workDir, file1, true, GitStatus.Status.STATUS_NORMAL, GitStatus.Status.STATUS_NORMAL, GitStatus.Status.STATUS_NORMAL, false);
    replacedertEquals(content1, read(file1));
    replacedertEquals(currentRevision, new Git(repository).log().call().iterator().next().getId().getName());
    write(file1, "another change in file 1");
    statuses = client.getStatus(files, NULL_PROGRESS_MONITOR);
    replacedertStatus(statuses, workDir, file1, true, GitStatus.Status.STATUS_NORMAL, GitStatus.Status.STATUS_MODIFIED, GitStatus.Status.STATUS_MODIFIED, false);
    client.checkout(new File[] { file1 }, previousRevision, true, NULL_PROGRESS_MONITOR);
    statuses = client.getStatus(files, NULL_PROGRESS_MONITOR);
    replacedertStatus(statuses, workDir, file1, true, GitStatus.Status.STATUS_MODIFIED, GitStatus.Status.STATUS_NORMAL, GitStatus.Status.STATUS_MODIFIED, false);
    replacedertEquals("file 1 content", read(file1));
    replacedertEquals(currentRevision, new Git(repository).log().call().iterator().next().getId().getName());
    write(file1, "another change in file 1");
    client.checkout(new File[] { file1 }, previousRevision, false, NULL_PROGRESS_MONITOR);
    statuses = client.getStatus(files, NULL_PROGRESS_MONITOR);
    replacedertStatus(statuses, workDir, file1, true, GitStatus.Status.STATUS_MODIFIED, GitStatus.Status.STATUS_NORMAL, GitStatus.Status.STATUS_MODIFIED, false);
    replacedertEquals("file 1 content", read(file1));
    replacedertEquals(currentRevision, new Git(repository).log().call().iterator().next().getId().getName());
}

19 Source : CheckoutTest.java
with Apache License 2.0
from apache

public void testCheckoutFilesFromIndexFileToFolder() throws Exception {
    File folder = new File(workDir, "folder");
    File subFolder = new File(folder, "folder");
    File file1 = new File(subFolder, "file2");
    subFolder.mkdirs();
    write(file1, "file 1 content");
    File[] files = new File[] { folder };
    add(files);
    commit(files);
    file1.delete();
    subFolder.delete();
    folder.delete();
    write(folder, "blabla");
    GitClient client = getClient(workDir);
    Map<File, GitStatus> statuses = client.getStatus(files, NULL_PROGRESS_MONITOR);
    replacedertStatus(statuses, workDir, file1, true, GitStatus.Status.STATUS_NORMAL, GitStatus.Status.STATUS_REMOVED, GitStatus.Status.STATUS_REMOVED, false);
    client.checkout(new File[] { folder }, null, true, NULL_PROGRESS_MONITOR);
    statuses = client.getStatus(files, NULL_PROGRESS_MONITOR);
    replacedertStatus(statuses, workDir, file1, true, GitStatus.Status.STATUS_NORMAL, GitStatus.Status.STATUS_NORMAL, GitStatus.Status.STATUS_NORMAL, false);
    replacedert (file1.isFile());
    replacedertEquals("file 1 content", read(file1));
}

19 Source : CheckoutTest.java
with Apache License 2.0
from apache

public void testCheckoutRevision() throws Exception {
    File file = new File(workDir, "file");
    write(file, "initial");
    File[] files = new File[] { file };
    add(files);
    GitClient client = getClient(workDir);
    GitRevisionInfo info = client.commit(files, "initial", null, null, NULL_PROGRESS_MONITOR);
    write(file, Constants.MASTER);
    add(file);
    GitRevisionInfo masterInfo = client.commit(files, Constants.MASTER, null, null, NULL_PROGRESS_MONITOR);
    // test checkout
    Monitor m = new Monitor();
    client.addNotificationListener(m);
    client.checkoutRevision(info.getRevision(), true, NULL_PROGRESS_MONITOR);
    String[] logFileContent = read(new File(workDir, ".git/logs/HEAD")).split("\\n");
    replacedertEquals("checkout: moving from master to " + info.getRevision(), logFileContent[logFileContent.length - 1].substring(logFileContent[logFileContent.length - 1].indexOf("checkout: ")));
    replacedertTrue(m.notifiedFiles.contains(file));
    replacedertEquals("initial", read(file));
    Map<File, GitStatus> statuses = client.getStatus(new File[] { workDir }, NULL_PROGRESS_MONITOR);
    replacedertStatus(statuses, workDir, file, true, GitStatus.Status.STATUS_NORMAL, GitStatus.Status.STATUS_NORMAL, GitStatus.Status.STATUS_NORMAL, false);
    Map<String, GitBranch> branches = client.getBranches(false, NULL_PROGRESS_MONITOR);
    replacedertTrue(branches.get(GitBranch.NO_BRANCH).isActive());
    write(file, BRANCH);
    add();
    GitRevisionInfo novaInfo = client.commit(files, BRANCH, null, null, NULL_PROGRESS_MONITOR);
    m = new Monitor();
    client.addNotificationListener(m);
    client.checkoutRevision(Constants.MASTER, true, NULL_PROGRESS_MONITOR);
    replacedertTrue(m.notifiedFiles.contains(file));
    replacedertEquals(Constants.MASTER, read(file));
    statuses = client.getStatus(new File[] { workDir }, NULL_PROGRESS_MONITOR);
    replacedertStatus(statuses, workDir, file, true, GitStatus.Status.STATUS_NORMAL, GitStatus.Status.STATUS_NORMAL, GitStatus.Status.STATUS_NORMAL, false);
    branches = client.getBranches(false, NULL_PROGRESS_MONITOR);
    replacedertTrue(branches.get(Constants.MASTER).isActive());
}

19 Source : CheckoutTest.java
with Apache License 2.0
from apache

public void testCheckoutPathsFromRevision_NotRecursive() throws Exception {
    File folder = new File(workDir, "folder");
    folder.mkdirs();
    File file1 = new File(folder, "file1");
    write(file1, "file 1 content");
    File subFolder = new File(folder, "subfolder");
    subFolder.mkdirs();
    File file2 = new File(subFolder, "file2");
    write(file2, "file 2 content");
    File[] files = new File[] { file1, file2 };
    add(files);
    GitClient client = getClient(workDir);
    commit(files);
    String content1 = "change 1";
    write(file1, content1);
    write(file2, content1);
    add(files);
    Map<File, GitStatus> statuses = client.getStatus(files, NULL_PROGRESS_MONITOR);
    replacedertStatus(statuses, workDir, file1, true, GitStatus.Status.STATUS_MODIFIED, GitStatus.Status.STATUS_NORMAL, GitStatus.Status.STATUS_MODIFIED, false);
    replacedertStatus(statuses, workDir, file2, true, GitStatus.Status.STATUS_MODIFIED, GitStatus.Status.STATUS_NORMAL, GitStatus.Status.STATUS_MODIFIED, false);
    // direct file descendants
    client.checkout(new File[] { folder }, "HEAD", false, NULL_PROGRESS_MONITOR);
    statuses = client.getStatus(files, NULL_PROGRESS_MONITOR);
    replacedertStatus(statuses, workDir, file1, true, GitStatus.Status.STATUS_NORMAL, GitStatus.Status.STATUS_NORMAL, GitStatus.Status.STATUS_NORMAL, false);
    replacedertStatus(statuses, workDir, file2, true, GitStatus.Status.STATUS_MODIFIED, GitStatus.Status.STATUS_NORMAL, GitStatus.Status.STATUS_MODIFIED, false);
    replacedertEquals(content1, read(file2));
    write(file1, content1);
    add(files);
    // recursive
    client.checkout(new File[] { folder }, "HEAD", true, NULL_PROGRESS_MONITOR);
    statuses = client.getStatus(files, NULL_PROGRESS_MONITOR);
    replacedertStatus(statuses, workDir, file1, true, GitStatus.Status.STATUS_NORMAL, GitStatus.Status.STATUS_NORMAL, GitStatus.Status.STATUS_NORMAL, false);
    replacedertStatus(statuses, workDir, file2, true, GitStatus.Status.STATUS_NORMAL, GitStatus.Status.STATUS_NORMAL, GitStatus.Status.STATUS_NORMAL, false);
}

19 Source : CheckoutTest.java
with Apache License 2.0
from apache

public void testCheckoutRevisionMergeLocalChanges() throws Exception {
    File file = new File(workDir, "file");
    write(file, "initial");
    File[] files = new File[] { file };
    add(files);
    GitClient client = getClient(workDir);
    GitRevisionInfo info = client.commit(files, "initial", null, null, NULL_PROGRESS_MONITOR);
    client.createBranch(BRANCH, info.getRevision(), NULL_PROGRESS_MONITOR);
    client.checkoutRevision(BRANCH, true, NULL_PROGRESS_MONITOR);
    write(file, BRANCH);
    add(file);
    client.commit(files, BRANCH, null, null, NULL_PROGRESS_MONITOR);
    write(file, "branch change");
    try {
        client.checkoutRevision(Constants.MASTER, true, NULL_PROGRESS_MONITOR);
        fail("Should fail, there are conflicts");
    } catch (GitException.CheckoutConflictException ex) {
        replacedertEquals(1, ex.getConflicts().length);
        replacedertEquals(file.getName(), ex.getConflicts()[0]);
        Map<String, GitBranch> branches = client.getBranches(false, NULL_PROGRESS_MONITOR);
        replacedertTrue(branches.get(BRANCH).isActive());
    }
    client.reset(BRANCH, GitClient.ResetType.HARD, NULL_PROGRESS_MONITOR);
    write(file, "branch change");
    CheckoutRevisionCommand cmd = new CheckoutRevisionCommand(repository, ApiUtils.getClreplacedFactory(), Constants.MASTER, false, NULL_PROGRESS_MONITOR, new FileListener() {

        @Override
        public void notifyFile(File file, String relativePathToRoot) {
        }
    });
    cmd.execute();
    Map<File, GitStatus> status = client.getStatus(files, NULL_PROGRESS_MONITOR);
    replacedertTrue(status.get(file).isConflict());
    replacedertEquals("<<<<<<< OURS\nbranch change\n=======\ninitial\n>>>>>>> THEIRS", read(file));
}

19 Source : CheckoutTest.java
with Apache License 2.0
from apache

public void testCheckoutFilesFromIndex() throws Exception {
    File file1 = new File(workDir, "file1");
    write(file1, "file 1 content");
    File file2 = new File(workDir, "file2");
    write(file2, "file 2 content");
    File[] files = new File[] { file1, file2 };
    add(files);
    commit(files);
    String content1 = "change in file 1";
    write(file1, content1);
    write(file2, "change in file 2");
    add(files);
    write(file1, "another change in file 1");
    String content2 = "another change in file 2";
    write(file2, content2);
    GitClient client = getClient(workDir);
    Map<File, GitStatus> statuses = client.getStatus(files, NULL_PROGRESS_MONITOR);
    replacedertStatus(statuses, workDir, file1, true, GitStatus.Status.STATUS_MODIFIED, GitStatus.Status.STATUS_MODIFIED, GitStatus.Status.STATUS_MODIFIED, false);
    replacedertStatus(statuses, workDir, file2, true, GitStatus.Status.STATUS_MODIFIED, GitStatus.Status.STATUS_MODIFIED, GitStatus.Status.STATUS_MODIFIED, false);
    client.checkout(new File[] { file1 }, null, true, NULL_PROGRESS_MONITOR);
    statuses = client.getStatus(files, NULL_PROGRESS_MONITOR);
    replacedertStatus(statuses, workDir, file1, true, GitStatus.Status.STATUS_MODIFIED, GitStatus.Status.STATUS_NORMAL, GitStatus.Status.STATUS_MODIFIED, false);
    replacedertStatus(statuses, workDir, file2, true, GitStatus.Status.STATUS_MODIFIED, GitStatus.Status.STATUS_MODIFIED, GitStatus.Status.STATUS_MODIFIED, false);
    replacedertEquals(content1, read(file1));
    replacedertEquals(content2, read(file2));
    write(file1, "another change in file 1");
    client.checkout(new File[] { file1 }, null, false, NULL_PROGRESS_MONITOR);
    statuses = client.getStatus(files, NULL_PROGRESS_MONITOR);
    replacedertStatus(statuses, workDir, file1, true, GitStatus.Status.STATUS_MODIFIED, GitStatus.Status.STATUS_NORMAL, GitStatus.Status.STATUS_MODIFIED, false);
    replacedertStatus(statuses, workDir, file2, true, GitStatus.Status.STATUS_MODIFIED, GitStatus.Status.STATUS_MODIFIED, GitStatus.Status.STATUS_MODIFIED, false);
    replacedertEquals(content1, read(file1));
    replacedertEquals(content2, read(file2));
    file1.delete();
    statuses = client.getStatus(files, NULL_PROGRESS_MONITOR);
    replacedertStatus(statuses, workDir, file1, true, GitStatus.Status.STATUS_MODIFIED, GitStatus.Status.STATUS_REMOVED, GitStatus.Status.STATUS_REMOVED, false);
    replacedertStatus(statuses, workDir, file2, true, GitStatus.Status.STATUS_MODIFIED, GitStatus.Status.STATUS_MODIFIED, GitStatus.Status.STATUS_MODIFIED, false);
    client.checkout(new File[] { file1 }, null, true, NULL_PROGRESS_MONITOR);
    statuses = client.getStatus(files, NULL_PROGRESS_MONITOR);
    replacedertStatus(statuses, workDir, file1, true, GitStatus.Status.STATUS_MODIFIED, GitStatus.Status.STATUS_NORMAL, GitStatus.Status.STATUS_MODIFIED, false);
    replacedertStatus(statuses, workDir, file2, true, GitStatus.Status.STATUS_MODIFIED, GitStatus.Status.STATUS_MODIFIED, GitStatus.Status.STATUS_MODIFIED, false);
    replacedertEquals(content1, read(file1));
    replacedertEquals(content2, read(file2));
    file1.delete();
    client.checkout(new File[] { file1 }, null, false, NULL_PROGRESS_MONITOR);
    statuses = client.getStatus(files, NULL_PROGRESS_MONITOR);
    replacedertStatus(statuses, workDir, file1, true, GitStatus.Status.STATUS_MODIFIED, GitStatus.Status.STATUS_NORMAL, GitStatus.Status.STATUS_MODIFIED, false);
    replacedertStatus(statuses, workDir, file2, true, GitStatus.Status.STATUS_MODIFIED, GitStatus.Status.STATUS_MODIFIED, GitStatus.Status.STATUS_MODIFIED, false);
    replacedertEquals(content1, read(file1));
    replacedertEquals(content2, read(file2));
}

19 Source : CheckoutTest.java
with Apache License 2.0
from apache

public void testCheckoutFilesFromIndex_NotRecursive() throws Exception {
    File folder = new File(workDir, "folder");
    folder.mkdirs();
    File file1 = new File(folder, "file1");
    write(file1, "file 1 content");
    File subFolder = new File(folder, "subfolder");
    subFolder.mkdirs();
    File file2 = new File(subFolder, "file2");
    write(file2, "file 2 content");
    File[] files = new File[] { file1, file2 };
    add(files);
    commit(files);
    String content1 = "change 1";
    write(file1, content1);
    write(file2, content1);
    add(files);
    String content2 = "change 2";
    write(file1, content2);
    write(file2, content2);
    GitClient client = getClient(workDir);
    Map<File, GitStatus> statuses = client.getStatus(files, NULL_PROGRESS_MONITOR);
    replacedertStatus(statuses, workDir, file1, true, GitStatus.Status.STATUS_MODIFIED, GitStatus.Status.STATUS_MODIFIED, GitStatus.Status.STATUS_MODIFIED, false);
    replacedertStatus(statuses, workDir, file2, true, GitStatus.Status.STATUS_MODIFIED, GitStatus.Status.STATUS_MODIFIED, GitStatus.Status.STATUS_MODIFIED, false);
    // direct file descendants
    client.checkout(new File[] { folder }, null, false, NULL_PROGRESS_MONITOR);
    statuses = client.getStatus(files, NULL_PROGRESS_MONITOR);
    replacedertStatus(statuses, workDir, file1, true, GitStatus.Status.STATUS_MODIFIED, GitStatus.Status.STATUS_NORMAL, GitStatus.Status.STATUS_MODIFIED, false);
    replacedertStatus(statuses, workDir, file2, true, GitStatus.Status.STATUS_MODIFIED, GitStatus.Status.STATUS_MODIFIED, GitStatus.Status.STATUS_MODIFIED, false);
    replacedertEquals(content1, read(file1));
    replacedertEquals(content2, read(file2));
    write(file1, content2);
    // recursive
    client.checkout(new File[] { folder }, null, true, NULL_PROGRESS_MONITOR);
    statuses = client.getStatus(files, NULL_PROGRESS_MONITOR);
    replacedertStatus(statuses, workDir, file1, true, GitStatus.Status.STATUS_MODIFIED, GitStatus.Status.STATUS_NORMAL, GitStatus.Status.STATUS_MODIFIED, false);
    replacedertStatus(statuses, workDir, file2, true, GitStatus.Status.STATUS_MODIFIED, GitStatus.Status.STATUS_NORMAL, GitStatus.Status.STATUS_MODIFIED, false);
    replacedertEquals(content1, read(file1));
    replacedertEquals(content1, read(file2));
}

19 Source : CheckoutTest.java
with Apache License 2.0
from apache

public void testCheckoutFilesFromIndexFolderToFile() throws Exception {
    File file1 = new File(workDir, "file1");
    write(file1, "file 1 content");
    File file2 = new File(file1, "file2");
    File[] files = new File[] { file1 };
    add(files);
    commit(files);
    file1.delete();
    file1.mkdirs();
    write(file2, "blabla");
    GitClient client = getClient(workDir);
    Map<File, GitStatus> statuses = client.getStatus(files, NULL_PROGRESS_MONITOR);
    replacedertStatus(statuses, workDir, file1, true, GitStatus.Status.STATUS_NORMAL, GitStatus.Status.STATUS_REMOVED, GitStatus.Status.STATUS_REMOVED, false);
    client.checkout(new File[] { file1 }, null, true, NULL_PROGRESS_MONITOR);
    statuses = client.getStatus(files, NULL_PROGRESS_MONITOR);
    replacedertStatus(statuses, workDir, file1, true, GitStatus.Status.STATUS_NORMAL, GitStatus.Status.STATUS_NORMAL, GitStatus.Status.STATUS_NORMAL, false);
    replacedert (file1.isFile());
    replacedertEquals("file 1 content", read(file1));
}

19 Source : CheckoutTest.java
with Apache License 2.0
from apache

public void testCheckoutRevisionAddRemoveFile() throws Exception {
    File file = new File(workDir, "file");
    write(file, "initial");
    File[] files = new File[] { file };
    add(files);
    GitClient client = getClient(workDir);
    GitRevisionInfo info = client.commit(files, "initial", null, null, NULL_PROGRESS_MONITOR);
    client.createBranch(BRANCH, info.getRevision(), NULL_PROGRESS_MONITOR);
    client.checkoutRevision(BRANCH, true, NULL_PROGRESS_MONITOR);
    remove(false, file);
    commit(files);
    // test checkout
    // the file is added to WT
    client.checkoutRevision(Constants.MASTER, true, NULL_PROGRESS_MONITOR);
    replacedertTrue(file.exists());
    Map<File, GitStatus> statuses = client.getStatus(new File[] { workDir }, NULL_PROGRESS_MONITOR);
    replacedertStatus(statuses, workDir, file, true, GitStatus.Status.STATUS_NORMAL, GitStatus.Status.STATUS_NORMAL, GitStatus.Status.STATUS_NORMAL, false);
    // the file is removed from WT
    client.checkoutRevision(BRANCH, true, NULL_PROGRESS_MONITOR);
    replacedertFalse(file.exists());
    statuses = client.getStatus(new File[] { workDir }, NULL_PROGRESS_MONITOR);
    replacedertNull(statuses.get(file));
}

19 Source : CheckoutTest.java
with Apache License 2.0
from apache

public void testCheckoutBranch() throws Exception {
    File file = new File(workDir, "file");
    write(file, "initial");
    File[] files = new File[] { file };
    add(files);
    GitClient client = getClient(workDir);
    GitRevisionInfo info = client.commit(files, "initial", null, null, NULL_PROGRESS_MONITOR);
    client.createBranch(BRANCH, info.getRevision(), NULL_PROGRESS_MONITOR);
    write(file, Constants.MASTER);
    add(file);
    GitRevisionInfo masterInfo = client.commit(files, Constants.MASTER, null, null, NULL_PROGRESS_MONITOR);
    // test checkout
    Monitor m = new Monitor();
    client.addNotificationListener(m);
    client.checkoutRevision(BRANCH, true, NULL_PROGRESS_MONITOR);
    String[] logFileContent = read(new File(workDir, ".git/logs/HEAD")).split("\\n");
    replacedertEquals("checkout: moving from master to nova", logFileContent[logFileContent.length - 1].substring(logFileContent[logFileContent.length - 1].indexOf("checkout: ")));
    replacedertTrue(m.notifiedFiles.contains(file));
    replacedertEquals("initial", read(file));
    Map<File, GitStatus> statuses = client.getStatus(new File[] { workDir }, NULL_PROGRESS_MONITOR);
    replacedertStatus(statuses, workDir, file, true, GitStatus.Status.STATUS_NORMAL, GitStatus.Status.STATUS_NORMAL, GitStatus.Status.STATUS_NORMAL, false);
    Map<String, GitBranch> branches = client.getBranches(false, NULL_PROGRESS_MONITOR);
    replacedertTrue(branches.get(BRANCH).isActive());
    write(file, BRANCH);
    add();
    GitRevisionInfo novaInfo = client.commit(files, BRANCH, null, null, NULL_PROGRESS_MONITOR);
    m = new Monitor();
    client.addNotificationListener(m);
    client.checkoutRevision(Constants.MASTER, true, NULL_PROGRESS_MONITOR);
    replacedertTrue(m.notifiedFiles.contains(file));
    replacedertEquals(Constants.MASTER, read(file));
    statuses = client.getStatus(new File[] { workDir }, NULL_PROGRESS_MONITOR);
    replacedertStatus(statuses, workDir, file, true, GitStatus.Status.STATUS_NORMAL, GitStatus.Status.STATUS_NORMAL, GitStatus.Status.STATUS_NORMAL, false);
    branches = client.getBranches(false, NULL_PROGRESS_MONITOR);
    replacedertTrue(branches.get(Constants.MASTER).isActive());
    m = new Monitor();
    client.addNotificationListener(m);
    client.checkoutRevision(BRANCH, true, NULL_PROGRESS_MONITOR);
    replacedertTrue(m.notifiedFiles.contains(file));
    replacedertEquals(BRANCH, read(file));
    statuses = client.getStatus(new File[] { workDir }, NULL_PROGRESS_MONITOR);
    replacedertStatus(statuses, workDir, file, true, GitStatus.Status.STATUS_NORMAL, GitStatus.Status.STATUS_NORMAL, GitStatus.Status.STATUS_NORMAL, false);
    branches = client.getBranches(false, NULL_PROGRESS_MONITOR);
    replacedertTrue(branches.get(BRANCH).isActive());
}

19 Source : CheckoutTest.java
with Apache License 2.0
from apache

public void testCheckoutRevisionKeepLocalChanges() throws Exception {
    File file = new File(workDir, "file");
    write(file, "initial");
    File[] files = new File[] { file };
    add(files);
    GitClient client = getClient(workDir);
    GitRevisionInfo info = client.commit(files, "initial", null, null, NULL_PROGRESS_MONITOR);
    client.createBranch(BRANCH, info.getRevision(), NULL_PROGRESS_MONITOR);
    write(file, Constants.MASTER);
    // test checkout
    // the file remains modified in WT
    client.checkoutRevision(BRANCH, true, NULL_PROGRESS_MONITOR);
    replacedertEquals(Constants.MASTER, read(file));
    Map<File, GitStatus> statuses = client.getStatus(new File[] { workDir }, NULL_PROGRESS_MONITOR);
    replacedertStatus(statuses, workDir, file, true, GitStatus.Status.STATUS_NORMAL, GitStatus.Status.STATUS_MODIFIED, GitStatus.Status.STATUS_MODIFIED, false);
    Map<String, GitBranch> branches = client.getBranches(false, NULL_PROGRESS_MONITOR);
    replacedertTrue(branches.get(BRANCH).isActive());
    add(file);
    // the file remains modified in index
    client.checkoutRevision(Constants.MASTER, true, NULL_PROGRESS_MONITOR);
    replacedertEquals(Constants.MASTER, read(file));
    statuses = client.getStatus(new File[] { workDir }, NULL_PROGRESS_MONITOR);
    replacedertStatus(statuses, workDir, file, true, GitStatus.Status.STATUS_MODIFIED, GitStatus.Status.STATUS_NORMAL, GitStatus.Status.STATUS_MODIFIED, false);
    branches = client.getBranches(false, NULL_PROGRESS_MONITOR);
    replacedertTrue(branches.get(Constants.MASTER).isActive());
}

19 Source : CatTest.java
with Apache License 2.0
from apache

public void testLineEndingsWindows() throws Exception {
    if (!isWindows()) {
        return;
    }
    // lets turn autocrlf on
    Thread.sleep(1100);
    StoredConfig cfg = repository.getConfig();
    cfg.setString(ConfigConstants.CONFIG_CORE_SECTION, null, ConfigConstants.CONFIG_KEY_AUTOCRLF, "true");
    cfg.save();
    File f = new File(workDir, "f");
    write(f, "a\r\nb\r\n");
    File[] roots = new File[] { f };
    GitClient client = getClient(workDir);
    runExternally(workDir, Arrays.asList("git.cmd", "add", "f"));
    List<String> res = runExternally(workDir, Arrays.asList("git.cmd", "status", "-s"));
    replacedertEquals(Arrays.asList("A  f"), res);
    DirCacheEntry e1 = repository.readDirCache().getEntry("f");
    runExternally(workDir, Arrays.asList("git.cmd", "commit", "-m", "hello"));
    write(f, "a\r\nb\r\nc\r\n");
    res = runExternally(workDir, Arrays.asList("git.cmd", "status", "-s"));
    replacedertEquals(Arrays.asList(" M f"), res);
    runExternally(workDir, Arrays.asList("git.cmd", "add", "f"));
    res = runExternally(workDir, Arrays.asList("git.cmd", "status", "-s"));
    replacedertEquals(Arrays.asList("M  f"), res);
    replacedertStatus(client.getStatus(roots, NULL_PROGRESS_MONITOR), workDir, f, true, GitStatus.Status.STATUS_MODIFIED, GitStatus.Status.STATUS_NORMAL, GitStatus.Status.STATUS_MODIFIED, false);
    FileOutputStream fo = new FileOutputStream(f);
    client.catFile(f, "HEAD", fo, NULL_PROGRESS_MONITOR);
    fo.close();
    replacedertStatus(client.getStatus(roots, NULL_PROGRESS_MONITOR), workDir, f, true, GitStatus.Status.STATUS_MODIFIED, GitStatus.Status.STATUS_MODIFIED, GitStatus.Status.STATUS_NORMAL, false);
    res = runExternally(workDir, Arrays.asList("git.cmd", "status", "-s"));
    replacedertEquals(Arrays.asList("MM f"), res);
    client.reset("HEAD", GitClient.ResetType.MIXED, NULL_PROGRESS_MONITOR);
    replacedertStatus(client.getStatus(roots, NULL_PROGRESS_MONITOR), workDir, f, true, GitStatus.Status.STATUS_NORMAL, GitStatus.Status.STATUS_NORMAL, GitStatus.Status.STATUS_NORMAL, false);
    replacedertEquals(e1.getObjectId(), repository.readDirCache().getEntry("f").getObjectId());
    res = runExternally(workDir, Arrays.asList("git.cmd", "status", "-s"));
    replacedertEquals(0, res.size());
}

19 Source : AddTest.java
with Apache License 2.0
from apache

public void testAddKeepExecutableInIndex() throws Exception {
    if (isWindows()) {
        // no reason to test on windows
        return;
    }
    File f = new File(workDir, "f");
    write(f, "hi, i am executable");
    f.setExecutable(true);
    File[] roots = { f };
    GitClient client = getClient(workDir);
    add(roots);
    Map<File, GitStatus> statuses = client.getStatus(roots, NULL_PROGRESS_MONITOR);
    replacedertStatus(statuses, workDir, f, true, Status.STATUS_ADDED, Status.STATUS_NORMAL, Status.STATUS_ADDED, false);
    StoredConfig config = repository.getConfig();
    config.setBoolean(ConfigConstants.CONFIG_CORE_SECTION, null, ConfigConstants.CONFIG_KEY_FILEMODE, false);
    config.save();
    // add should not overwrite executable bit in index
    f.setExecutable(false);
    add(roots);
    statuses = client.getStatus(roots, NULL_PROGRESS_MONITOR);
    replacedertStatus(statuses, workDir, f, true, Status.STATUS_ADDED, Status.STATUS_NORMAL, Status.STATUS_ADDED, false);
    // index should differ from wt
    config.setBoolean(ConfigConstants.CONFIG_CORE_SECTION, null, ConfigConstants.CONFIG_KEY_FILEMODE, true);
    config.save();
    statuses = client.getStatus(roots, NULL_PROGRESS_MONITOR);
    replacedertStatus(statuses, workDir, f, true, Status.STATUS_ADDED, Status.STATUS_MODIFIED, Status.STATUS_ADDED, false);
}

19 Source : AddTest.java
with Apache License 2.0
from apache

public void testUpdateIndexIgnoreExecutable() throws Exception {
    if (isWindows()) {
        // no reason to test on windows
        return;
    }
    File f = new File(workDir, "f");
    write(f, "hi, i am not executable");
    File[] roots = { f };
    add(roots);
    commit(roots);
    f.setExecutable(true);
    GitClient client = getClient(workDir);
    StoredConfig config = repository.getConfig();
    config.setBoolean(ConfigConstants.CONFIG_CORE_SECTION, null, ConfigConstants.CONFIG_KEY_FILEMODE, false);
    config.save();
    write(f, "hi, i am executable");
    // add should not set executable bit in index
    add(roots);
    Map<File, GitStatus> statuses = client.getStatus(roots, NULL_PROGRESS_MONITOR);
    replacedertStatus(statuses, workDir, f, true, Status.STATUS_MODIFIED, Status.STATUS_NORMAL, Status.STATUS_MODIFIED, false);
    // index should differ from wt
    config.setBoolean(ConfigConstants.CONFIG_CORE_SECTION, null, ConfigConstants.CONFIG_KEY_FILEMODE, true);
    config.save();
    statuses = client.getStatus(roots, NULL_PROGRESS_MONITOR);
    replacedertStatus(statuses, workDir, f, true, Status.STATUS_MODIFIED, Status.STATUS_MODIFIED, Status.STATUS_MODIFIED, false);
}

19 Source : AddTest.java
with Apache License 2.0
from apache

public void testAddIgnoreExecutable() throws Exception {
    if (isWindows()) {
        // no reason to test on windows
        return;
    }
    File f = new File(workDir, "f");
    write(f, "hi, i am executable");
    f.setExecutable(true);
    File[] roots = { f };
    GitClient client = getClient(workDir);
    StoredConfig config = repository.getConfig();
    config.setBoolean(ConfigConstants.CONFIG_CORE_SECTION, null, ConfigConstants.CONFIG_KEY_FILEMODE, false);
    config.save();
    // add should not set executable bit in index
    add(roots);
    Map<File, GitStatus> statuses = client.getStatus(roots, NULL_PROGRESS_MONITOR);
    replacedertStatus(statuses, workDir, f, true, Status.STATUS_ADDED, Status.STATUS_NORMAL, Status.STATUS_ADDED, false);
    // index should differ from wt
    config.setBoolean(ConfigConstants.CONFIG_CORE_SECTION, null, ConfigConstants.CONFIG_KEY_FILEMODE, true);
    config.save();
    statuses = client.getStatus(roots, NULL_PROGRESS_MONITOR);
    replacedertStatus(statuses, workDir, f, true, Status.STATUS_ADDED, Status.STATUS_MODIFIED, Status.STATUS_ADDED, false);
}

18 Source : CreateClientTest.java
with Apache License 2.0
from apache

public void testClientRelease() throws Exception {
    GitClient client1 = GitRepository.getInstance(workDir).createClient();
    Repository jgitRepo1 = getRepository(client1);
    replacedertRepoClients(jgitRepo1, 1);
    client1.release();
    replacedertRepoClients(jgitRepo1, 0);
    client1 = GitRepository.getInstance(workDir).createClient();
    replacedertEquals(jgitRepo1, getRepository(client1));
    replacedertRepoClients(jgitRepo1, 1);
    // some commands
    client1.getStatus(new File[] { workDir }, NULL_PROGRESS_MONITOR);
    client1.add(new File[] { workDir }, NULL_PROGRESS_MONITOR);
    GitClient client2 = GitRepository.getInstance(workDir).createClient();
    replacedertEquals(jgitRepo1, getRepository(client2));
    replacedertRepoClients(jgitRepo1, 2);
    // some commands
    client2.getStatus(new File[] { workDir }, NULL_PROGRESS_MONITOR);
    client2.add(new File[] { workDir }, NULL_PROGRESS_MONITOR);
    replacedertRepoClients(jgitRepo1, 2);
    client1.release();
    replacedertRepoClients(jgitRepo1, 1);
    client2.release();
    replacedertRepoClients(jgitRepo1, 0);
}

18 Source : CreateClientTest.java
with Apache License 2.0
from apache

/**
 * Submodules have .git folder elsewhere, they use GIT_LINK mechanism to access it
 */
public void testClientForSubmodule() throws Exception {
    File subRepo = new File(workDir, "subrepo");
    subRepo.mkdirs();
    File newFile = new File(subRepo, "file");
    newFile.createNewFile();
    File[] roots = new File[] { newFile };
    GitClient client = GitRepository.getInstance(subRepo).createClient();
    client.init(NULL_PROGRESS_MONITOR);
    client.add(roots, NULL_PROGRESS_MONITOR);
    Map<File, GitStatus> statuses = client.getStatus(new File[] { newFile }, NULL_PROGRESS_MONITOR);
    replacedertStatus(statuses, subRepo, newFile, true, GitStatus.Status.STATUS_ADDED, GitStatus.Status.STATUS_NORMAL, GitStatus.Status.STATUS_ADDED, false);
    Repository repo = getRepository(client);
    StoredConfig config = repo.getConfig();
    config.setString(ConfigConstants.CONFIG_CORE_SECTION, null, ConfigConstants.CONFIG_KEY_WORKTREE, subRepo.getAbsolutePath());
    config.save();
    File gitFolder = new File(subRepo, ".git");
    File newLocation = new File(workDir.getParentFile(), "newFolder");
    newLocation.mkdirs();
    gitFolder.renameTo(new File(newLocation, ".git"));
    gitFolder = new File(newLocation, ".git");
    File gitFile = new File(subRepo, ".git");
    write(gitFile, "gitdir: " + gitFolder.getAbsolutePath());
    ApiUtils.clearRepositoryPool();
    client = GitRepository.getInstance(subRepo).createClient();
    repo = getRepository(client);
    replacedertEquals(subRepo, repo.getWorkTree());
    replacedertEquals(gitFolder, repo.getDirectory());
    statuses = client.getStatus(new File[] { newFile }, NULL_PROGRESS_MONITOR);
    replacedertStatus(statuses, subRepo, newFile, true, GitStatus.Status.STATUS_ADDED, GitStatus.Status.STATUS_NORMAL, GitStatus.Status.STATUS_ADDED, false);
}

18 Source : StatusTest.java
with Apache License 2.0
from apache

// must not return status for nested repositories
public void testStatusNested() throws Exception {
    File f = new File(workDir, "f");
    write(f, "file");
    GitClient client = getClient(workDir);
    client.add(new File[] { f }, NULL_PROGRESS_MONITOR);
    client.commit(new File[] { f }, "init commit", null, null, NULL_PROGRESS_MONITOR);
    File nested = new File(workDir, "nested");
    nested.mkdirs();
    new File(workDir, "emptyFolder").mkdirs();
    Map<File, GitStatus> statuses = client.getStatus(new File[] { workDir }, NULL_PROGRESS_MONITOR);
    // commandline is silent about empty folders
    replacedertEquals(1, statuses.size());
    replacedertStatus(statuses, workDir, f, true, Status.STATUS_NORMAL, Status.STATUS_NORMAL, Status.STATUS_NORMAL, false);
    GitClient clientNested = getClient(nested);
    clientNested.init(NULL_PROGRESS_MONITOR);
    File f2 = new File(nested, "f");
    write(f2, "file");
    clientNested.add(new File[] { f2 }, NULL_PROGRESS_MONITOR);
    clientNested.commit(new File[] { f2 }, "init commit", null, null, NULL_PROGRESS_MONITOR);
    statuses = client.getStatus(new File[] { workDir }, NULL_PROGRESS_MONITOR);
    // on the other hand, nested repository parent should be listed as is on commandline
    replacedertEquals(2, statuses.size());
    replacedertStatus(statuses, workDir, f, true, Status.STATUS_NORMAL, Status.STATUS_NORMAL, Status.STATUS_NORMAL, false);
    replacedertStatus(statuses, workDir, nested, false, Status.STATUS_NORMAL, Status.STATUS_ADDED, Status.STATUS_ADDED, false);
    statuses = clientNested.getStatus(new File[] { nested }, NULL_PROGRESS_MONITOR);
    replacedertEquals(1, statuses.size());
    replacedertStatus(statuses, nested, f2, true, Status.STATUS_NORMAL, Status.STATUS_NORMAL, Status.STATUS_NORMAL, false);
}

18 Source : StatusTest.java
with Apache License 2.0
from apache

public void testSymlinkedFolder() throws Exception {
    File folder1 = new File(workDir, "boo");
    File file1 = new File(workDir, "old_file");
    File folder2 = new File(workDir, "some_dir");
    File file2_1 = new File(folder2, "some_file");
    folder1.mkdirs();
    folder2.mkdirs();
    file1.createNewFile();
    file2_1.createNewFile();
    add(workDir);
    commit(workDir);
    GitClient client = getClient(workDir);
    Map<File, GitStatus> statuses = client.getStatus(new File[0], NULL_PROGRESS_MONITOR);
    replacedertEquals(2, statuses.size());
    replacedertStatus(statuses, workDir, file1, true, Status.STATUS_NORMAL, Status.STATUS_NORMAL, Status.STATUS_NORMAL, false);
    replacedertStatus(statuses, workDir, file2_1, true, Status.STATUS_NORMAL, Status.STATUS_NORMAL, Status.STATUS_NORMAL, false);
    // create a symlink, not added to index
    String relPath = "../some_dir";
    File link = new File(folder1, folder2.getName());
    Files.createSymbolicLink(Paths.get(link.getAbsolutePath()), Paths.get(relPath));
    replacedertTrue(Files.isSymbolicLink(Paths.get(link.getAbsolutePath())));
    statuses = client.getStatus(new File[] { link }, NULL_PROGRESS_MONITOR);
    replacedertStatus(statuses, workDir, link, false, Status.STATUS_NORMAL, Status.STATUS_ADDED, Status.STATUS_ADDED, false);
    // symlink is added to index, not yet committed
    client.add(new File[] { link }, NULL_PROGRESS_MONITOR);
    statuses = client.getStatus(new File[] { link }, NULL_PROGRESS_MONITOR);
    replacedertStatus(statuses, workDir, link, true, Status.STATUS_ADDED, Status.STATUS_NORMAL, Status.STATUS_ADDED, false);
    // symlink is committed
    client.commit(new File[] { link }, "commit symlink", null, null, NULL_PROGRESS_MONITOR);
    statuses = client.getStatus(new File[] { link }, NULL_PROGRESS_MONITOR);
    replacedertStatus(statuses, workDir, link, true, Status.STATUS_NORMAL, Status.STATUS_NORMAL, Status.STATUS_NORMAL, false);
    // symlink is deleted on disk
    Files.delete(Paths.get(link.getAbsolutePath()));
    replacedertFalse(Files.isSymbolicLink(Paths.get(link.getAbsolutePath())));
    statuses = client.getStatus(new File[] { link }, NULL_PROGRESS_MONITOR);
    replacedertStatus(statuses, workDir, link, true, Status.STATUS_NORMAL, Status.STATUS_REMOVED, Status.STATUS_REMOVED, false);
    // symlink is also deleted from index
    client.remove(new File[] { link }, true, NULL_PROGRESS_MONITOR);
    statuses = client.getStatus(new File[] { link }, NULL_PROGRESS_MONITOR);
    replacedertStatus(statuses, workDir, link, true, Status.STATUS_REMOVED, Status.STATUS_NORMAL, Status.STATUS_REMOVED, false);
}

18 Source : StashTest.java
with Apache License 2.0
from apache

public void testStashApply() throws Exception {
    File folder = new File(workDir, "folder");
    File file1 = new File(workDir, "file");
    File file2 = new File(folder, "file");
    folder.mkdirs();
    write(file1, "file1");
    write(file2, "file2");
    add();
    commit();
    write(file1, "modification 1");
    add();
    write(file2, "modification 2");
    GitClient client = getClient(workDir);
    client.stashSave("stash", false, NULL_PROGRESS_MONITOR);
    Map<File, GitStatus> statuses = client.getStatus(new File[0], NULL_PROGRESS_MONITOR);
    replacedertStatus(statuses, workDir, file1, true, GitStatus.Status.STATUS_NORMAL, GitStatus.Status.STATUS_NORMAL, GitStatus.Status.STATUS_NORMAL, false);
    replacedertStatus(statuses, workDir, file2, true, GitStatus.Status.STATUS_NORMAL, GitStatus.Status.STATUS_NORMAL, GitStatus.Status.STATUS_NORMAL, false);
    client.stashApply(0, false, NULL_PROGRESS_MONITOR);
    replacedertEquals("modification 1", read(file1));
    replacedertEquals("modification 2", read(file2));
    statuses = client.getStatus(new File[0], NULL_PROGRESS_MONITOR);
    replacedertStatus(statuses, workDir, file1, true, GitStatus.Status.STATUS_MODIFIED, GitStatus.Status.STATUS_NORMAL, GitStatus.Status.STATUS_MODIFIED, false);
    replacedertStatus(statuses, workDir, file2, true, GitStatus.Status.STATUS_NORMAL, GitStatus.Status.STATUS_MODIFIED, GitStatus.Status.STATUS_MODIFIED, false);
    client.reset("master", GitClient.ResetType.HARD, NULL_PROGRESS_MONITOR);
    statuses = client.getStatus(new File[0], NULL_PROGRESS_MONITOR);
    replacedertStatus(statuses, workDir, file1, true, GitStatus.Status.STATUS_NORMAL, GitStatus.Status.STATUS_NORMAL, GitStatus.Status.STATUS_NORMAL, false);
    replacedertStatus(statuses, workDir, file2, true, GitStatus.Status.STATUS_NORMAL, GitStatus.Status.STATUS_NORMAL, GitStatus.Status.STATUS_NORMAL, false);
    client.stashApply(0, true, NULL_PROGRESS_MONITOR);
    replacedertEquals("modification 1", read(file1));
    replacedertEquals("modification 2", read(file2));
    statuses = client.getStatus(new File[0], NULL_PROGRESS_MONITOR);
    replacedertStatus(statuses, workDir, file1, true, GitStatus.Status.STATUS_MODIFIED, GitStatus.Status.STATUS_NORMAL, GitStatus.Status.STATUS_MODIFIED, false);
    replacedertStatus(statuses, workDir, file2, true, GitStatus.Status.STATUS_NORMAL, GitStatus.Status.STATUS_MODIFIED, GitStatus.Status.STATUS_MODIFIED, false);
    replacedertEquals(0, client.stashList(NULL_PROGRESS_MONITOR).length);
}

18 Source : ResetTest.java
with Apache License 2.0
from apache

// must not checkout from nested repositories
public void testResetNested() throws Exception {
    File f = new File(workDir, "f");
    write(f, "file");
    GitClient client = getClient(workDir);
    client.add(new File[] { f }, NULL_PROGRESS_MONITOR);
    client.commit(new File[] { f }, "init commit", null, null, NULL_PROGRESS_MONITOR);
    File nested = new File(workDir, "nested");
    nested.mkdirs();
    File f2 = new File(nested, "f");
    write(f2, "file");
    GitClient clientNested = getClient(nested);
    clientNested.init(NULL_PROGRESS_MONITOR);
    clientNested.add(new File[] { f2 }, NULL_PROGRESS_MONITOR);
    clientNested.commit(new File[] { f2 }, "init commit", null, null, NULL_PROGRESS_MONITOR);
    write(f, "change");
    add(f);
    write(f2, "change");
    clientNested.add(new File[] { f2 }, NULL_PROGRESS_MONITOR);
    client.reset(new File[] { workDir, nested }, "HEAD", true, NULL_PROGRESS_MONITOR);
    Map<File, GitStatus> statuses = client.getStatus(new File[] { workDir }, NULL_PROGRESS_MONITOR);
    replacedertEquals(2, statuses.size());
    replacedertStatus(statuses, workDir, f, true, Status.STATUS_NORMAL, Status.STATUS_MODIFIED, Status.STATUS_MODIFIED, false);
    replacedertStatus(statuses, workDir, nested, false, Status.STATUS_NORMAL, Status.STATUS_ADDED, Status.STATUS_ADDED, false);
    statuses = clientNested.getStatus(new File[] { nested }, NULL_PROGRESS_MONITOR);
    replacedertEquals(1, statuses.size());
    replacedertStatus(statuses, nested, f2, true, Status.STATUS_MODIFIED, Status.STATUS_NORMAL, Status.STATUS_MODIFIED, false);
    client.reset("master", ResetType.MIXED, NULL_PROGRESS_MONITOR);
    statuses = clientNested.getStatus(new File[] { nested }, NULL_PROGRESS_MONITOR);
    replacedertEquals(1, statuses.size());
    replacedertStatus(statuses, nested, f2, true, Status.STATUS_MODIFIED, Status.STATUS_NORMAL, Status.STATUS_MODIFIED, false);
    client.reset("master", ResetType.HARD, NULL_PROGRESS_MONITOR);
    statuses = clientNested.getStatus(new File[] { nested }, NULL_PROGRESS_MONITOR);
    replacedertEquals(1, statuses.size());
    replacedertStatus(statuses, nested, f2, true, Status.STATUS_MODIFIED, Status.STATUS_NORMAL, Status.STATUS_MODIFIED, false);
}

18 Source : ResetTest.java
with Apache License 2.0
from apache

public void testResetPaths() throws Exception {
    // index entry will be modified
    File file1 = new File(workDir, "file1");
    write(file1, "blablablabla");
    // index entry will be left alone
    File file2 = new File(workDir, "file2");
    write(file2, "blablablabla in file2");
    // index entry will be added
    File file3 = new File(workDir, "file3");
    write(file3, "blablablabla in file3");
    // index entry will be removed
    File file4 = new File(workDir, "file4");
    File[] files = new File[] { file1, file2, file3, file4 };
    add(files);
    commit(files);
    GitClient client = getClient(workDir);
    Map<File, GitStatus> statuses = client.getStatus(files, NULL_PROGRESS_MONITOR);
    replacedertEquals(3, statuses.size());
    replacedertStatus(statuses, workDir, file1, true, Status.STATUS_NORMAL, Status.STATUS_NORMAL, Status.STATUS_NORMAL, false);
    replacedertStatus(statuses, workDir, file2, true, Status.STATUS_NORMAL, Status.STATUS_NORMAL, Status.STATUS_NORMAL, false);
    replacedertStatus(statuses, workDir, file3, true, Status.STATUS_NORMAL, Status.STATUS_NORMAL, Status.STATUS_NORMAL, false);
    String content = "change in content";
    write(file1, content);
    write(file4, "blablablabla in file4");
    client.add(files, NULL_PROGRESS_MONITOR);
    commit(files);
    write(file2, "change in content in file 2");
    client.add(new File[] { file2 }, NULL_PROGRESS_MONITOR);
    client.remove(new File[] { file3 }, false, NULL_PROGRESS_MONITOR);
    LogCommand cmd = new Git(repository).log();
    Iterator<RevCommit> logs = cmd.call().iterator();
    logs.next();
    RevCommit commit = logs.next();
    String revision = commit.getId().getName();
    client.reset(new File[] { file1, file3, file4 }, revision, true, NULL_PROGRESS_MONITOR);
    // file1: modified HEAD-INDEX
    // file2: stays modified HEAD-INDEX
    // file3: removed in WT, normal HEAD-INDEX
    // file4: removed in index, normal in WT
    statuses = client.getStatus(files, NULL_PROGRESS_MONITOR);
    replacedertEquals(4, statuses.size());
    replacedertStatus(statuses, workDir, file1, true, Status.STATUS_MODIFIED, Status.STATUS_MODIFIED, Status.STATUS_NORMAL, false);
    replacedertStatus(statuses, workDir, file2, true, Status.STATUS_MODIFIED, Status.STATUS_NORMAL, Status.STATUS_MODIFIED, false);
    replacedertStatus(statuses, workDir, file3, true, Status.STATUS_NORMAL, Status.STATUS_REMOVED, Status.STATUS_REMOVED, false);
    replacedertStatus(statuses, workDir, file4, true, Status.STATUS_REMOVED, Status.STATUS_ADDED, Status.STATUS_NORMAL, false);
    replacedertEquals(content, read(file1));
}

18 Source : ResetTest.java
with Apache License 2.0
from apache

public void testResetPaths_NonRecursive() throws Exception {
    File folder = new File(workDir, "folder");
    folder.mkdirs();
    // index entry will be modified
    File file1 = new File(folder, "file1");
    write(file1, "blablablabla");
    File subfolder = new File(folder, "subfolder");
    subfolder.mkdirs();
    // index entry will be left alone
    File file2 = new File(subfolder, "file2");
    write(file2, "blablablabla in file2");
    File[] files = new File[] { file1, file2 };
    add(files);
    commit(files);
    GitClient client = getClient(workDir);
    Map<File, GitStatus> statuses = client.getStatus(files, NULL_PROGRESS_MONITOR);
    replacedertEquals(2, statuses.size());
    replacedertStatus(statuses, workDir, file1, true, Status.STATUS_NORMAL, Status.STATUS_NORMAL, Status.STATUS_NORMAL, false);
    replacedertStatus(statuses, workDir, file2, true, Status.STATUS_NORMAL, Status.STATUS_NORMAL, Status.STATUS_NORMAL, false);
    String content = "change in content";
    write(file1, content);
    write(file2, content);
    client.add(files, NULL_PROGRESS_MONITOR);
    // children
    client.reset(new File[] { folder }, "HEAD", false, NULL_PROGRESS_MONITOR);
    statuses = client.getStatus(files, NULL_PROGRESS_MONITOR);
    replacedertEquals(2, statuses.size());
    replacedertStatus(statuses, workDir, file1, true, Status.STATUS_NORMAL, Status.STATUS_MODIFIED, Status.STATUS_MODIFIED, false);
    replacedertStatus(statuses, workDir, file2, true, Status.STATUS_MODIFIED, Status.STATUS_NORMAL, Status.STATUS_MODIFIED, false);
    write(file1, content);
    // recursive
    client.reset(new File[] { folder }, "HEAD", true, NULL_PROGRESS_MONITOR);
    statuses = client.getStatus(files, NULL_PROGRESS_MONITOR);
    replacedertEquals(2, statuses.size());
    replacedertStatus(statuses, workDir, file1, true, Status.STATUS_NORMAL, Status.STATUS_MODIFIED, Status.STATUS_MODIFIED, false);
    replacedertStatus(statuses, workDir, file2, true, Status.STATUS_NORMAL, Status.STATUS_MODIFIED, Status.STATUS_MODIFIED, false);
    write(file1, content);
    add(file1);
    // non recursive on file
    client.reset(new File[] { file1 }, "HEAD", false, NULL_PROGRESS_MONITOR);
    statuses = client.getStatus(files, NULL_PROGRESS_MONITOR);
    replacedertEquals(2, statuses.size());
    replacedertStatus(statuses, workDir, file1, true, Status.STATUS_NORMAL, Status.STATUS_MODIFIED, Status.STATUS_MODIFIED, false);
}

18 Source : RenameTest.java
with Apache License 2.0
from apache

public void testRenameFile() throws Exception {
    File file = new File(workDir, "file");
    write(file, "hello");
    File target = new File(workDir, "fileRenamed");
    add(file);
    commit(file);
    GitClient client = getClient(workDir);
    Monitor m = new Monitor();
    client.addNotificationListener(m);
    client.rename(file, target, false, m);
    replacedertTrue(target.exists());
    replacedertFalse(file.exists());
    replacedertEquals("hello", read(target));
    replacedertEquals(Collections.singleton(target), m.notifiedFiles);
    Map<File, GitStatus> statuses = client.getStatus(new File[] { file, target }, NULL_PROGRESS_MONITOR);
    replacedertStatus(statuses, workDir, file, true, GitStatus.Status.STATUS_REMOVED, GitStatus.Status.STATUS_NORMAL, GitStatus.Status.STATUS_REMOVED, false);
    replacedertStatus(statuses, workDir, target, true, GitStatus.Status.STATUS_ADDED, GitStatus.Status.STATUS_NORMAL, GitStatus.Status.STATUS_ADDED, false);
    replacedertTrue(statuses.get(target).isRenamed());
    statuses = client.getStatus(new File[0], NULL_PROGRESS_MONITOR);
    replacedertStatus(statuses, workDir, file, true, GitStatus.Status.STATUS_REMOVED, GitStatus.Status.STATUS_NORMAL, GitStatus.Status.STATUS_REMOVED, false);
    replacedertStatus(statuses, workDir, target, true, GitStatus.Status.STATUS_ADDED, GitStatus.Status.STATUS_NORMAL, GitStatus.Status.STATUS_ADDED, false);
    replacedertTrue(statuses.get(target).isRenamed());
}

18 Source : RenameTest.java
with Apache License 2.0
from apache

public void testMoveTreeAfter() throws Exception {
    File folder = new File(workDir, "folder");
    folder.mkdirs();
    File file1 = new File(folder, "file1");
    write(file1, "file1 content");
    File file2 = new File(folder, "file2");
    write(file2, "file2 content");
    File subFolder1 = new File(folder, "folder1");
    subFolder1.mkdirs();
    File file11 = new File(subFolder1, "file");
    write(file11, "file11 content");
    File subFolder2 = new File(folder, "folder2");
    subFolder2.mkdirs();
    File file21 = new File(subFolder2, "file");
    write(file21, "file21 content");
    File target = new File(workDir, "target");
    File moved1 = new File(target, file1.getName());
    File moved2 = new File(target, file2.getName());
    File moved11 = new File(new File(target, file11.getParentFile().getName()), file11.getName());
    File moved21 = new File(new File(target, file21.getParentFile().getName()), file21.getName());
    add(file1, file11, file21);
    commit(file1, file11);
    folder.renameTo(target);
    GitClient client = getClient(workDir);
    Monitor m = new Monitor();
    client.addNotificationListener(m);
    client.rename(folder, target, true, m);
    replacedertTrue(moved1.exists());
    replacedertTrue(moved2.exists());
    replacedertTrue(moved11.exists());
    replacedertTrue(moved21.exists());
    replacedertEquals(new HashSet<File>(Arrays.asList(moved1, moved11, moved21)), m.notifiedFiles);
    Map<File, GitStatus> statuses = client.getStatus(new File[] { file1, file2, file11, file21, moved1, moved11, moved2, moved21 }, NULL_PROGRESS_MONITOR);
    replacedertStatus(statuses, workDir, file1, true, GitStatus.Status.STATUS_REMOVED, GitStatus.Status.STATUS_NORMAL, GitStatus.Status.STATUS_REMOVED, false);
    replacedertNull(statuses.get(file2));
    replacedertStatus(statuses, workDir, file11, true, GitStatus.Status.STATUS_REMOVED, GitStatus.Status.STATUS_NORMAL, GitStatus.Status.STATUS_REMOVED, false);
    replacedertNull(statuses.get(file21));
    replacedertStatus(statuses, workDir, moved1, true, GitStatus.Status.STATUS_ADDED, GitStatus.Status.STATUS_NORMAL, GitStatus.Status.STATUS_ADDED, false);
    replacedertStatus(statuses, workDir, moved2, false, GitStatus.Status.STATUS_NORMAL, GitStatus.Status.STATUS_ADDED, GitStatus.Status.STATUS_ADDED, false);
    replacedertStatus(statuses, workDir, moved11, true, GitStatus.Status.STATUS_ADDED, GitStatus.Status.STATUS_NORMAL, GitStatus.Status.STATUS_ADDED, false);
    replacedertStatus(statuses, workDir, moved21, true, GitStatus.Status.STATUS_ADDED, GitStatus.Status.STATUS_NORMAL, GitStatus.Status.STATUS_ADDED, false);
    replacedertTrue(statuses.get(moved1).isRenamed());
    replacedertTrue(statuses.get(moved11).isRenamed());
    // file21 was not committed
    replacedertFalse(statuses.get(moved21).isRenamed());
}

18 Source : RenameTest.java
with Apache License 2.0
from apache

public void testMoveFileToExisting() throws Exception {
    File file = new File(workDir, "file");
    write(file, "aaa");
    File target = new File(new File(workDir, "folder"), "file");
    add(file);
    commit(file);
    GitClient client = getClient(workDir);
    Monitor m = new Monitor();
    client.addNotificationListener(m);
    client.rename(file, target, false, m);
    replacedertTrue(target.exists());
    replacedertFalse(file.exists());
    replacedertEquals("aaa", read(target));
    replacedertEquals(Collections.singleton(target), m.notifiedFiles);
    Map<File, GitStatus> statuses = client.getStatus(new File[] { file, target }, NULL_PROGRESS_MONITOR);
    replacedertStatus(statuses, workDir, file, true, GitStatus.Status.STATUS_REMOVED, GitStatus.Status.STATUS_NORMAL, GitStatus.Status.STATUS_REMOVED, false);
    replacedertStatus(statuses, workDir, target, true, GitStatus.Status.STATUS_ADDED, GitStatus.Status.STATUS_NORMAL, GitStatus.Status.STATUS_ADDED, false);
    replacedertTrue(statuses.get(target).isRenamed());
    write(file, "aaa");
    write(target, "bbb");
    add(target, file);
    commit(target);
    File target2 = target;
    replacedertTrue(target2.exists());
    m = new Monitor();
    if (!file.renameTo(target2)) {
        replacedertTrue(target2.delete() && file.renameTo(target2));
    }
    client.addNotificationListener(m);
    client.rename(file, target2, true, m);
    replacedertTrue(m.notifiedWarnings.contains("Index already contains an entry for folder/file"));
    replacedertEquals(Collections.singleton(target2), m.notifiedFiles);
    statuses = client.getStatus(new File[] { file, target, target2 }, NULL_PROGRESS_MONITOR);
    replacedertStatus(statuses, workDir, target, true, GitStatus.Status.STATUS_MODIFIED, GitStatus.Status.STATUS_NORMAL, GitStatus.Status.STATUS_MODIFIED, false);
    replacedertStatus(statuses, workDir, target2, true, GitStatus.Status.STATUS_MODIFIED, GitStatus.Status.STATUS_NORMAL, GitStatus.Status.STATUS_MODIFIED, false);
    replacedertStatus(statuses, workDir, file, true, GitStatus.Status.STATUS_REMOVED, GitStatus.Status.STATUS_NORMAL, GitStatus.Status.STATUS_REMOVED, false);
    // aaa -> bbb is a 0% match
    replacedertFalse(statuses.get(target).isRenamed());
    replacedertFalse(statuses.get(target).isCopied());
}

18 Source : RenameTest.java
with Apache License 2.0
from apache

public void testRenameFileAfter() throws Exception {
    File file = new File(workDir, "file");
    write(file, "hello");
    File target = new File(workDir, "fileRenamed");
    add(file);
    commit(file);
    file.renameTo(target);
    GitClient client = getClient(workDir);
    Monitor m = new Monitor();
    replacedertTrue(target.exists());
    replacedertFalse(file.exists());
    replacedertEquals("hello", read(target));
    client.addNotificationListener(m);
    client.rename(file, target, true, m);
    replacedertEquals(Collections.singleton(target), m.notifiedFiles);
    Map<File, GitStatus> statuses = client.getStatus(new File[] { file, target }, NULL_PROGRESS_MONITOR);
    replacedertStatus(statuses, workDir, file, true, GitStatus.Status.STATUS_REMOVED, GitStatus.Status.STATUS_NORMAL, GitStatus.Status.STATUS_REMOVED, false);
    replacedertStatus(statuses, workDir, target, true, GitStatus.Status.STATUS_ADDED, GitStatus.Status.STATUS_NORMAL, GitStatus.Status.STATUS_ADDED, false);
    replacedertTrue(statuses.get(target).isRenamed());
}

See More Examples