diff --git a/org.eclipse.jgit.junit/src/org/eclipse/jgit/junit/LocalDiskRepositoryTestCase.java b/org.eclipse.jgit.junit/src/org/eclipse/jgit/junit/LocalDiskRepositoryTestCase.java index ddace0df2..001deb262 100644 --- a/org.eclipse.jgit.junit/src/org/eclipse/jgit/junit/LocalDiskRepositoryTestCase.java +++ b/org.eclipse.jgit.junit/src/org/eclipse/jgit/junit/LocalDiskRepositoryTestCase.java @@ -286,7 +286,7 @@ protected Repository createWorkRepository() throws IOException { */ private Repository createRepository(boolean bare) throws IOException { String uniqueId = System.currentTimeMillis() + "_" + (testCount++); - String gitdirName = "test" + uniqueId + (bare ? "" : "/") + ".git"; + String gitdirName = "test" + uniqueId + (bare ? "" : "/") + Constants.DOT_GIT; File gitdir = new File(trash, gitdirName).getCanonicalFile(); Repository db = new Repository(gitdir); diff --git a/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/Clone.java b/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/Clone.java index 3fe50d668..10bb357e2 100644 --- a/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/Clone.java +++ b/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/Clone.java @@ -100,7 +100,7 @@ protected void run() throws Exception { } } if (gitdir == null) - gitdir = new File(localName, ".git"); + gitdir = new File(localName, Constants.DOT_GIT); db = new Repository(gitdir); db.create(); diff --git a/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/Glog.java b/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/Glog.java index c799222f5..caf4f30e3 100644 --- a/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/Glog.java +++ b/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/Glog.java @@ -1,4 +1,5 @@ /* + * Copyright (C) 2010, Robin Rosenberg * Copyright (C) 2008, Shawn O. Pearce * and other copyright owners as documented in the project's IP log. * @@ -57,6 +58,7 @@ import javax.swing.JScrollPane; import org.eclipse.jgit.awtui.CommitGraphPane; +import org.eclipse.jgit.lib.Constants; import org.eclipse.jgit.revplot.PlotWalk; import org.eclipse.jgit.revwalk.RevCommit; import org.eclipse.jgit.revwalk.RevSort; @@ -125,7 +127,7 @@ protected RevWalk createWalk() { private String repoName() { final File f = db.getDirectory(); String n = f.getName(); - if (".git".equals(n)) + if (Constants.DOT_GIT.equals(n)) n = f.getParentFile().getName(); return n; } diff --git a/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/Init.java b/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/Init.java index b6a4a44a9..a8fe7d8a5 100644 --- a/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/Init.java +++ b/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/Init.java @@ -1,6 +1,7 @@ /* * Copyright (C) 2009, Constantine Plotnikov * Copyright (C) 2008, Google Inc. + * Copyright (C) 2010, Robin Rosenberg * and other copyright owners as documented in the project's IP log. * * This program and the accompanying materials are made available @@ -47,6 +48,7 @@ import java.io.File; import org.kohsuke.args4j.Option; +import org.eclipse.jgit.lib.Constants; import org.eclipse.jgit.lib.Repository; @Command(common = true, usage = "Create an empty git repository") @@ -62,7 +64,7 @@ protected final boolean requiresRepository() { @Override protected void run() throws Exception { if (gitdir == null) - gitdir = new File(bare ? "." : ".git"); + gitdir = new File(bare ? "." : Constants.DOT_GIT); db = new Repository(gitdir); db.create(bare); out.println("Initialized empty Git repository in " diff --git a/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/Main.java b/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/Main.java index b4c5660a6..10ebef463 100644 --- a/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/Main.java +++ b/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/Main.java @@ -228,7 +228,7 @@ private static File findGitDir() { } File current = new File("").getAbsoluteFile(); while (current != null) { - final File gitDir = new File(current, ".git"); + final File gitDir = new File(current, Constants.DOT_GIT); if (gitDir.isDirectory()) return gitDir; current = current.getParentFile(); diff --git a/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/ReceivePack.java b/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/ReceivePack.java index c6a6fd0cb..f43a2793e 100644 --- a/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/ReceivePack.java +++ b/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/ReceivePack.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2008-2009, Google Inc. - * Copyright (C) 2009, Robin Rosenberg + * Copyright (C) 2009-2010, Robin Rosenberg * and other copyright owners as documented in the project's IP log. * * This program and the accompanying materials are made available @@ -47,6 +47,7 @@ import java.io.File; import org.kohsuke.args4j.Argument; +import org.eclipse.jgit.lib.Constants; import org.eclipse.jgit.lib.Repository; @Command(common = false, usage = "Server side backend for 'jgit push'") @@ -63,8 +64,8 @@ protected final boolean requiresRepository() { protected void run() throws Exception { final org.eclipse.jgit.transport.ReceivePack rp; - if (new File(dstGitdir, ".git").isDirectory()) - dstGitdir = new File(dstGitdir, ".git"); + if (new File(dstGitdir, Constants.DOT_GIT).isDirectory()) + dstGitdir = new File(dstGitdir, Constants.DOT_GIT); db = new Repository(dstGitdir); if (!db.getObjectsDirectory().isDirectory()) throw die("'" + dstGitdir.getPath() + "' not a git repository"); diff --git a/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/UploadPack.java b/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/UploadPack.java index 85dbbc5d9..ea30899dc 100644 --- a/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/UploadPack.java +++ b/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/UploadPack.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2008-2009, Google Inc. - * Copyright (C) 2009, Robin Rosenberg + * Copyright (C) 2009-2010, Robin Rosenberg * and other copyright owners as documented in the project's IP log. * * This program and the accompanying materials are made available @@ -48,6 +48,7 @@ import org.kohsuke.args4j.Argument; import org.kohsuke.args4j.Option; +import org.eclipse.jgit.lib.Constants; import org.eclipse.jgit.lib.Repository; @Command(common = false, usage = "Server side backend for 'jgit fetch'") @@ -67,8 +68,8 @@ protected final boolean requiresRepository() { protected void run() throws Exception { final org.eclipse.jgit.transport.UploadPack rp; - if (new File(srcGitdir, ".git").isDirectory()) - srcGitdir = new File(srcGitdir, ".git"); + if (new File(srcGitdir, Constants.DOT_GIT).isDirectory()) + srcGitdir = new File(srcGitdir, Constants.DOT_GIT); db = new Repository(srcGitdir); if (!db.getObjectsDirectory().isDirectory()) throw die("'" + srcGitdir.getPath() + "' not a git repository"); diff --git a/org.eclipse.jgit.test/tst/org/eclipse/jgit/lib/T0003_Basic.java b/org.eclipse.jgit.test/tst/org/eclipse/jgit/lib/T0003_Basic.java index e29e9e721..e0cc34510 100644 --- a/org.eclipse.jgit.test/tst/org/eclipse/jgit/lib/T0003_Basic.java +++ b/org.eclipse.jgit.test/tst/org/eclipse/jgit/lib/T0003_Basic.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007, Dave Watson - * Copyright (C) 2007-2009, Robin Rosenberg + * Copyright (C) 2007-2010, Robin Rosenberg * Copyright (C) 2006-2008, Shawn O. Pearce * and other copyright owners as documented in the project's IP log. * @@ -57,7 +57,7 @@ public class T0003_Basic extends SampleDataRepositoryTestCase { public void test001_Initalize() { - final File gitdir = new File(trash, ".git"); + final File gitdir = new File(trash, Constants.DOT_GIT); final File objects = new File(gitdir, "objects"); final File objects_pack = new File(objects, "pack"); final File objects_info = new File(objects, "info"); @@ -97,11 +97,11 @@ public void test000_openRepoBadArgs() throws IOException { */ public void test000_openrepo_default_gitDirSet() throws IOException { File repo1Parent = new File(trash.getParentFile(), "r1"); - Repository repo1initial = new Repository(new File(repo1Parent, ".git")); + Repository repo1initial = new Repository(new File(repo1Parent, Constants.DOT_GIT)); repo1initial.create(); repo1initial.close(); - File theDir = new File(repo1Parent, ".git"); + File theDir = new File(repo1Parent, Constants.DOT_GIT); Repository r = new Repository(theDir, null); assertEqualsPath(theDir, r.getDirectory()); assertEqualsPath(repo1Parent, r.getWorkDir()); @@ -117,11 +117,11 @@ public void test000_openrepo_default_gitDirSet() throws IOException { */ public void test000_openrepo_default_gitDirAndWorkTreeSet() throws IOException { File repo1Parent = new File(trash.getParentFile(), "r1"); - Repository repo1initial = new Repository(new File(repo1Parent, ".git")); + Repository repo1initial = new Repository(new File(repo1Parent, Constants.DOT_GIT)); repo1initial.create(); repo1initial.close(); - File theDir = new File(repo1Parent, ".git"); + File theDir = new File(repo1Parent, Constants.DOT_GIT); Repository r = new Repository(theDir, repo1Parent.getParentFile()); assertEqualsPath(theDir, r.getDirectory()); assertEqualsPath(repo1Parent.getParentFile(), r.getWorkDir()); @@ -137,11 +137,11 @@ public void test000_openrepo_default_gitDirAndWorkTreeSet() throws IOException { */ public void test000_openrepo_default_workDirSet() throws IOException { File repo1Parent = new File(trash.getParentFile(), "r1"); - Repository repo1initial = new Repository(new File(repo1Parent, ".git")); + Repository repo1initial = new Repository(new File(repo1Parent, Constants.DOT_GIT)); repo1initial.create(); repo1initial.close(); - File theDir = new File(repo1Parent, ".git"); + File theDir = new File(repo1Parent, Constants.DOT_GIT); Repository r = new Repository(null, repo1Parent); assertEqualsPath(theDir, r.getDirectory()); assertEqualsPath(repo1Parent, r.getWorkDir()); @@ -159,14 +159,14 @@ public void test000_openrepo_default_absolute_workdirconfig() File repo1Parent = new File(trash.getParentFile(), "r1"); File workdir = new File(trash.getParentFile(), "rw"); workdir.mkdir(); - Repository repo1initial = new Repository(new File(repo1Parent, ".git")); + Repository repo1initial = new Repository(new File(repo1Parent, Constants.DOT_GIT)); repo1initial.create(); repo1initial.getConfig().setString("core", null, "worktree", workdir.getAbsolutePath()); repo1initial.getConfig().save(); repo1initial.close(); - File theDir = new File(repo1Parent, ".git"); + File theDir = new File(repo1Parent, Constants.DOT_GIT); Repository r = new Repository(theDir, null); assertEqualsPath(theDir, r.getDirectory()); assertEqualsPath(workdir, r.getWorkDir()); @@ -184,14 +184,14 @@ public void test000_openrepo_default_relative_workdirconfig() File repo1Parent = new File(trash.getParentFile(), "r1"); File workdir = new File(trash.getParentFile(), "rw"); workdir.mkdir(); - Repository repo1initial = new Repository(new File(repo1Parent, ".git")); + Repository repo1initial = new Repository(new File(repo1Parent, Constants.DOT_GIT)); repo1initial.create(); repo1initial.getConfig() .setString("core", null, "worktree", "../../rw"); repo1initial.getConfig().save(); repo1initial.close(); - File theDir = new File(repo1Parent, ".git"); + File theDir = new File(repo1Parent, Constants.DOT_GIT); Repository r = new Repository(theDir, null); assertEqualsPath(theDir, r.getDirectory()); assertEqualsPath(workdir, r.getWorkDir()); @@ -211,11 +211,11 @@ public void test000_openrepo_alternate_index_file_and_objdirs() File indexFile = new File(trash, "idx"); File objDir = new File(trash, "../obj"); File[] altObjDirs = new File[] { db.getObjectsDirectory() }; - Repository repo1initial = new Repository(new File(repo1Parent, ".git")); + Repository repo1initial = new Repository(new File(repo1Parent, Constants.DOT_GIT)); repo1initial.create(); repo1initial.close(); - File theDir = new File(repo1Parent, ".git"); + File theDir = new File(repo1Parent, Constants.DOT_GIT); Repository r = new Repository(theDir, null, objDir, altObjDirs, indexFile); assertEqualsPath(theDir, r.getDirectory()); diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/lib/Constants.java b/org.eclipse.jgit/src/org/eclipse/jgit/lib/Constants.java index 05de98c1a..348905dd1 100644 --- a/org.eclipse.jgit/src/org/eclipse/jgit/lib/Constants.java +++ b/org.eclipse.jgit/src/org/eclipse/jgit/lib/Constants.java @@ -308,6 +308,12 @@ public final class Constants { /** Default remote name used by clone, push and fetch operations */ public static final String DEFAULT_REMOTE_NAME = "origin"; + /** Default name for the Git repository directory */ + public static final String DOT_GIT = ".git"; + + /** A bare repository typically ends with this string */ + public static final String DOT_GIT_EXT = ".git"; + /** * Create a new digest function for objects. * diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/lib/Repository.java b/org.eclipse.jgit/src/org/eclipse/jgit/lib/Repository.java index bbc5cc2a6..91a97740e 100644 --- a/org.eclipse.jgit/src/org/eclipse/jgit/lib/Repository.java +++ b/org.eclipse.jgit/src/org/eclipse/jgit/lib/Repository.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2007, Dave Watson - * Copyright (C) 2006-2009, Robin Rosenberg + * Copyright (C) 2006-2010, Robin Rosenberg * Copyright (C) 2006-2008, Shawn O. Pearce * and other copyright owners as documented in the project's IP log. * @@ -183,7 +183,7 @@ public Repository(final File d, final File workTree, final File objectDir, if (workTree != null) { workDir = workTree; if (d == null) - gitDir = new File(workTree, ".git"); + gitDir = new File(workTree, Constants.DOT_GIT); else gitDir = d; } else { diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/lib/RepositoryCache.java b/org.eclipse.jgit/src/org/eclipse/jgit/lib/RepositoryCache.java index f0fc544de..b086968c6 100644 --- a/org.eclipse.jgit/src/org/eclipse/jgit/lib/RepositoryCache.java +++ b/org.eclipse.jgit/src/org/eclipse/jgit/lib/RepositoryCache.java @@ -377,13 +377,13 @@ private static String readFirstLine(final File head) { public static File resolve(final File directory) { if (isGitRepository(directory)) return directory; - if (isGitRepository(new File(directory, ".git"))) - return new File(directory, ".git"); + if (isGitRepository(new File(directory, Constants.DOT_GIT))) + return new File(directory, Constants.DOT_GIT); final String name = directory.getName(); final File parent = directory.getParentFile(); - if (isGitRepository(new File(parent, name + ".git"))) - return new File(parent, name + ".git"); + if (isGitRepository(new File(parent, name + Constants.DOT_GIT_EXT))) + return new File(parent, name + Constants.DOT_GIT_EXT); return null; } } diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/transport/Daemon.java b/org.eclipse.jgit/src/org/eclipse/jgit/transport/Daemon.java index c6f69043b..cafcd7b4b 100644 --- a/org.eclipse.jgit/src/org/eclipse/jgit/transport/Daemon.java +++ b/org.eclipse.jgit/src/org/eclipse/jgit/transport/Daemon.java @@ -57,6 +57,7 @@ import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.CopyOnWriteArrayList; +import org.eclipse.jgit.lib.Constants; import org.eclipse.jgit.lib.PersonIdent; import org.eclipse.jgit.lib.Repository; import org.eclipse.jgit.lib.RepositoryCache; @@ -204,8 +205,8 @@ public void setExportAll(final boolean export) { * the repository instance. */ public void exportRepository(String name, final Repository db) { - if (!name.endsWith(".git")) - name = name + ".git"; + if (!name.endsWith(Constants.DOT_GIT_EXT)) + name = name + Constants.DOT_GIT_EXT; exports.put(name, db); RepositoryCache.register(db); } @@ -358,7 +359,8 @@ Repository openRepository(String name) { name = name.substring(1); Repository db; - db = exports.get(name.endsWith(".git") ? name : name + ".git"); + db = exports.get(name.endsWith(Constants.DOT_GIT_EXT) ? name : name + + Constants.DOT_GIT_EXT); if (db != null) { db.incrementOpen(); return db; diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/transport/TransportLocal.java b/org.eclipse.jgit/src/org/eclipse/jgit/transport/TransportLocal.java index 8bb22275b..a99a9b413 100644 --- a/org.eclipse.jgit/src/org/eclipse/jgit/transport/TransportLocal.java +++ b/org.eclipse.jgit/src/org/eclipse/jgit/transport/TransportLocal.java @@ -56,6 +56,7 @@ import org.eclipse.jgit.errors.NotSupportedException; import org.eclipse.jgit.errors.TransportException; +import org.eclipse.jgit.lib.Constants; import org.eclipse.jgit.lib.Repository; import org.eclipse.jgit.util.FS; @@ -101,8 +102,8 @@ static boolean canHandle(final URIish uri) { super(local, uri); File d = FS.resolve(new File(PWD), uri.getPath()).getAbsoluteFile(); - if (new File(d, ".git").isDirectory()) - d = new File(d, ".git"); + if (new File(d, Constants.DOT_GIT).isDirectory()) + d = new File(d, Constants.DOT_GIT); remoteGitDir = d; } diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/transport/URIish.java b/org.eclipse.jgit/src/org/eclipse/jgit/transport/URIish.java index 1f7bad183..80b94b232 100644 --- a/org.eclipse.jgit/src/org/eclipse/jgit/transport/URIish.java +++ b/org.eclipse.jgit/src/org/eclipse/jgit/transport/URIish.java @@ -50,6 +50,8 @@ import java.util.regex.Matcher; import java.util.regex.Pattern; +import org.eclipse.jgit.lib.Constants; + /** * This URI like construct used for referencing Git archives over the net, as * well as locally stored archives. The most important difference compared to @@ -57,8 +59,6 @@ * any special character is written as-is. */ public class URIish { - private static final String DOT_GIT = ".git"; - private static final Pattern FULL_URI = Pattern .compile("^(?:([a-z][a-z0-9+-]+)://(?:([^/]+?)(?::([^/]+?))?@)?(?:([^/]+?))?(?::(\\d+))?)?((?:[A-Za-z]:)?/.+)$"); @@ -408,10 +408,11 @@ public String getHumanishName() throws IllegalArgumentException { if (elements.length == 0) throw new IllegalArgumentException(); String result = elements[elements.length - 1]; - if (DOT_GIT.equals(result)) + if (Constants.DOT_GIT.equals(result)) result = elements[elements.length - 2]; - else if (result.endsWith(DOT_GIT)) - result = result.substring(0, result.length() - DOT_GIT.length()); + else if (result.endsWith(Constants.DOT_GIT_EXT)) + result = result.substring(0, result.length() + - Constants.DOT_GIT_EXT.length()); return result; } diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/treewalk/FileTreeIterator.java b/org.eclipse.jgit/src/org/eclipse/jgit/treewalk/FileTreeIterator.java index 10bb539a2..19db39a8f 100644 --- a/org.eclipse.jgit/src/org/eclipse/jgit/treewalk/FileTreeIterator.java +++ b/org.eclipse.jgit/src/org/eclipse/jgit/treewalk/FileTreeIterator.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2008, Google Inc. - * Copyright (C) 2007, Robin Rosenberg + * Copyright (C) 2007-2010, Robin Rosenberg * Copyright (C) 2008, Shawn O. Pearce * Copyright (C) 2009, Tor Arne Vestbø * and other copyright owners as documented in the project's IP log. @@ -52,6 +52,7 @@ import java.io.InputStream; import org.eclipse.jgit.errors.IncorrectObjectTypeException; +import org.eclipse.jgit.lib.Constants; import org.eclipse.jgit.lib.FileMode; import org.eclipse.jgit.lib.Repository; import org.eclipse.jgit.util.FS; @@ -124,7 +125,7 @@ static public class FileEntry extends Entry { file = f; if (f.isDirectory()) { - if (new File(f, ".git").isDirectory()) + if (new File(f, Constants.DOT_GIT).isDirectory()) mode = FileMode.GITLINK; else mode = FileMode.TREE; diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/treewalk/WorkingTreeIterator.java b/org.eclipse.jgit/src/org/eclipse/jgit/treewalk/WorkingTreeIterator.java index 0c6786bcd..6b8a6cea4 100644 --- a/org.eclipse.jgit/src/org/eclipse/jgit/treewalk/WorkingTreeIterator.java +++ b/org.eclipse.jgit/src/org/eclipse/jgit/treewalk/WorkingTreeIterator.java @@ -336,7 +336,7 @@ protected void init(final Entry[] list) { final String name = e.getName(); if (".".equals(name) || "..".equals(name)) continue; - if (".git".equals(name)) + if (Constants.DOT_GIT.equals(name)) continue; if (i != o) entries[o] = e;