Package org.eclipse.jgit.util

Examples of org.eclipse.jgit.util.FS


import org.junit.Test;

public class TreeWalkJava7Test extends RepositoryTestCase {
  @Test
  public void testSymlinkToDirNotRecursingViaSymlink() throws Exception {
    FS fs = db.getFS();
    assertTrue(fs.supportsSymlinks());
    writeTrashFile("target/data", "targetdata");
    fs.createSymLink(new File(trash, "link"), "target");
    TreeWalk tw = new TreeWalk(db);
    tw.setRecursive(true);
    tw.addTree(new FileTreeIterator(db));
    assertTrue(tw.next());
    assertEquals("link", tw.getPathString());
View Full Code Here


          r = new IgnoreNode();
      } else {
        r = new IgnoreNode();
      }

      FS fs = repository.getFS();
      String path = repository.getConfig().get(CoreConfig.KEY)
          .getExcludesFile();
      if (path != null) {
        File excludesfile;
        if (path.startsWith("~/")) //$NON-NLS-1$
          excludesfile = fs.resolve(fs.userHome(), path.substring(2));
        else
          excludesfile = fs.resolve(null, path);
        loadRulesFromFile(r, excludesfile);
      }

      File exclude = fs.resolve(repository.getDirectory(),
          Constants.INFO_EXCLUDE);
      loadRulesFromFile(r, exclude);

      return r.getRules().isEmpty() ? null : r;
    }
View Full Code Here

   * @throws IOException
   * @throws InterruptedException
   */
  @Test
  public void testSymlinkAttributes() throws IOException, InterruptedException {
    FS fs = FS.DETECTED;
    File link = new File(trash, "ä");
    File target = new File(trash, "å");
    fs.createSymLink(link, "å");
    assertTrue(fs.exists(link));
    String targetName = fs.readSymLink(link);
    assertEquals("å", targetName);
    assertTrue(fs.lastModified(link) > 0);
    assertTrue(fs.exists(link));
    assertFalse(fs.canExecute(link));
    assertEquals(2, fs.length(link));
    assertFalse(fs.exists(target));
    assertFalse(fs.isFile(target));
    assertFalse(fs.isDirectory(target));
    assertFalse(fs.canExecute(target));

    RepositoryTestCase.fsTick(link);
    // Now create the link target
    FileUtils.createNewFile(target);
    assertTrue(fs.exists(link));
    assertTrue(fs.lastModified(link) > 0);
    assertTrue(fs.lastModified(target) > fs.lastModified(link));
    assertFalse(fs.canExecute(link));
    fs.setExecute(target, true);
    assertFalse(fs.canExecute(link));
    assertTrue(fs.canExecute(target));
  }
View Full Code Here

    try {
      ol.copyTo(channel);
    } finally {
      channel.close();
    }
    FS fs = repo.getFS();
    WorkingTreeOptions opt = repo.getConfig().get(WorkingTreeOptions.KEY);
    if (opt.isFileMode() && fs.supportsExecute()) {
      if (FileMode.EXECUTABLE_FILE.equals(entry.getRawMode())) {
        if (!fs.canExecute(tmpFile))
          fs.setExecute(tmpFile, true);
      } else {
        if (fs.canExecute(tmpFile))
          fs.setExecute(tmpFile, false);
      }
    }
    if (!tmpFile.renameTo(f)) {
      // tried to rename which failed. Let' delete the target file and try
      // again
View Full Code Here

   *            directory to begin searching in.
   * @return {@code this} (for chaining calls).
   */
  public B findGitDir(File current) {
    if (getGitDir() == null) {
      FS tryFS = safeFS();
      while (current != null) {
        File dir = new File(current, DOT_GIT);
        if (FileKey.isGitRepository(dir, tryFS)) {
          setGitDir(dir);
          break;
View Full Code Here

   * the listeners only when it differs.
   */
  private final AtomicInteger lastNotifiedModCnt = new AtomicInteger();

  RefDirectory(final FileRepository db) {
    final FS fs = db.getFS();
    parent = db;
    gitDir = db.getDirectory();
    refsDir = fs.resolve(gitDir, R_REFS);
    logsDir = fs.resolve(gitDir, LOGS);
    logsRefsDir = fs.resolve(gitDir, LOGS + '/' + R_REFS);
    packedRefsFile = fs.resolve(gitDir, PACKED_REFS);

    looseRefs.set(RefList.<LooseRef> emptyList());
    packedRefs.set(PackedRefList.NO_PACKED_REFS);
  }
View Full Code Here

          r = new IgnoreNode();
      } else {
        r = new IgnoreNode();
      }

      FS fs = repository.getFS();
      String path = repository.getConfig().get(CoreConfig.KEY)
          .getExcludesFile();
      if (path != null) {
        File excludesfile;
        if (path.startsWith("~/"))
          excludesfile = fs.resolve(fs.userHome(), path.substring(2));
        else
          excludesfile = fs.resolve(null, path);
        loadRulesFromFile(r, excludesfile);
      }

      File exclude = fs
          .resolve(repository.getDirectory(), "info/exclude");
      loadRulesFromFile(r, exclude);

      return r.getRules().isEmpty() ? null : r;
    }
View Full Code Here

   *            directory to begin searching in.
   * @return {@code this} (for chaining calls).
   */
  public B findGitDir(File current) {
    if (getGitDir() == null) {
      FS tryFS = safeFS();
      while (current != null) {
        File dir = new File(current, DOT_GIT);
        if (FileKey.isGitRepository(dir, tryFS)) {
          setGitDir(dir);
          break;
View Full Code Here

   * @param forceWrite
   *            true to write to disk all entries logged, false to respect the
   *            repository's config and current log file status
   */
  public ReflogWriter(final Repository repository, final boolean forceWrite) {
    final FS fs = repository.getFS();
    parent = repository;
    File gitDir = repository.getDirectory();
    logsDir = fs.resolve(gitDir, LOGS);
    logsRefsDir = fs.resolve(gitDir, LOGS + '/' + R_REFS);
    this.forceWrite = forceWrite;
  }
View Full Code Here

    try {
      ol.copyTo(channel);
    } finally {
      channel.close();
    }
    FS fs = repo.getFS();
    if (opt.isFileMode() && fs.supportsExecute()) {
      if (FileMode.EXECUTABLE_FILE.equals(entry.getRawMode())) {
        if (!fs.canExecute(tmpFile))
          fs.setExecute(tmpFile, true);
      } else {
        if (fs.canExecute(tmpFile))
          fs.setExecute(tmpFile, false);
      }
    }
    if (!tmpFile.renameTo(f)) {
      // tried to rename which failed. Let' delete the target file and try
      // again
View Full Code Here

TOP

Related Classes of org.eclipse.jgit.util.FS

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.