* changes: Introduce a named constant for the ".git" directory extension Introduce a named constant for the .git directory.tags/v0.7.0
@@ -286,7 +286,7 @@ public abstract class LocalDiskRepositoryTestCase extends TestCase { | |||
*/ | |||
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); | |||
@@ -100,7 +100,7 @@ class Clone extends AbstractFetchCommand { | |||
} | |||
} | |||
if (gitdir == null) | |||
gitdir = new File(localName, ".git"); | |||
gitdir = new File(localName, Constants.DOT_GIT); | |||
db = new Repository(gitdir); | |||
db.create(); |
@@ -1,4 +1,5 @@ | |||
/* | |||
* Copyright (C) 2010, Robin Rosenberg <robin.rosenberg@dewire.com> | |||
* Copyright (C) 2008, Shawn O. Pearce <spearce@spearce.org> | |||
* and other copyright owners as documented in the project's IP log. | |||
* | |||
@@ -57,6 +58,7 @@ import javax.swing.JPanel; | |||
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 @@ class Glog extends RevWalkTextBuiltin { | |||
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; | |||
} |
@@ -1,6 +1,7 @@ | |||
/* | |||
* Copyright (C) 2009, Constantine Plotnikov <constantine.plotnikov@gmail.com> | |||
* Copyright (C) 2008, Google Inc. | |||
* Copyright (C) 2010, Robin Rosenberg <robin.rosenberg@dewire.com> | |||
* 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 @@ package org.eclipse.jgit.pgm; | |||
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 @@ class Init extends TextBuiltin { | |||
@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 " |
@@ -228,7 +228,7 @@ public class Main { | |||
} | |||
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(); |
@@ -1,6 +1,6 @@ | |||
/* | |||
* Copyright (C) 2008-2009, Google Inc. | |||
* Copyright (C) 2009, Robin Rosenberg <robin.rosenberg@dewire.com> | |||
* Copyright (C) 2009-2010, Robin Rosenberg <robin.rosenberg@dewire.com> | |||
* 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 @@ package org.eclipse.jgit.pgm; | |||
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 @@ class ReceivePack extends TextBuiltin { | |||
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"); |
@@ -1,6 +1,6 @@ | |||
/* | |||
* Copyright (C) 2008-2009, Google Inc. | |||
* Copyright (C) 2009, Robin Rosenberg <robin.rosenberg@dewire.com> | |||
* Copyright (C) 2009-2010, Robin Rosenberg <robin.rosenberg@dewire.com> | |||
* 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 java.io.File; | |||
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 @@ class UploadPack extends TextBuiltin { | |||
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"); |
@@ -1,6 +1,6 @@ | |||
/* | |||
* Copyright (C) 2007, Dave Watson <dwatson@mimvista.com> | |||
* Copyright (C) 2007-2009, Robin Rosenberg <robin.rosenberg@dewire.com> | |||
* Copyright (C) 2007-2010, Robin Rosenberg <robin.rosenberg@dewire.com> | |||
* Copyright (C) 2006-2008, Shawn O. Pearce <spearce@spearce.org> | |||
* and other copyright owners as documented in the project's IP log. | |||
* | |||
@@ -57,7 +57,7 @@ import org.eclipse.jgit.errors.ConfigInvalidException; | |||
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 class T0003_Basic extends SampleDataRepositoryTestCase { | |||
*/ | |||
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 class T0003_Basic extends SampleDataRepositoryTestCase { | |||
*/ | |||
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 class T0003_Basic extends SampleDataRepositoryTestCase { | |||
*/ | |||
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 class T0003_Basic extends SampleDataRepositoryTestCase { | |||
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 class T0003_Basic extends SampleDataRepositoryTestCase { | |||
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 class T0003_Basic extends SampleDataRepositoryTestCase { | |||
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()); |
@@ -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. | |||
* |
@@ -1,6 +1,6 @@ | |||
/* | |||
* Copyright (C) 2007, Dave Watson <dwatson@mimvista.com> | |||
* Copyright (C) 2006-2009, Robin Rosenberg <robin.rosenberg@dewire.com> | |||
* Copyright (C) 2006-2010, Robin Rosenberg <robin.rosenberg@dewire.com> | |||
* Copyright (C) 2006-2008, Shawn O. Pearce <spearce@spearce.org> | |||
* and other copyright owners as documented in the project's IP log. | |||
* | |||
@@ -183,7 +183,7 @@ public class Repository { | |||
if (workTree != null) { | |||
workDir = workTree; | |||
if (d == null) | |||
gitDir = new File(workTree, ".git"); | |||
gitDir = new File(workTree, Constants.DOT_GIT); | |||
else | |||
gitDir = d; | |||
} else { |
@@ -377,13 +377,13 @@ public class RepositoryCache { | |||
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; | |||
} | |||
} |
@@ -57,6 +57,7 @@ import java.util.Map; | |||
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 class Daemon { | |||
* 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 @@ public class Daemon { | |||
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; |
@@ -56,6 +56,7 @@ import java.io.PipedOutputStream; | |||
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 @@ class TransportLocal extends Transport implements PackTransport { | |||
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; | |||
} | |||
@@ -50,6 +50,8 @@ import java.net.URL; | |||
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 @@ import java.util.regex.Pattern; | |||
* 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 class URIish { | |||
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; | |||
} | |||
@@ -1,6 +1,6 @@ | |||
/* | |||
* Copyright (C) 2008, Google Inc. | |||
* Copyright (C) 2007, Robin Rosenberg <robin.rosenberg@dewire.com> | |||
* Copyright (C) 2007-2010, Robin Rosenberg <robin.rosenberg@dewire.com> | |||
* Copyright (C) 2008, Shawn O. Pearce <spearce@spearce.org> | |||
* Copyright (C) 2009, Tor Arne Vestbø <torarnv@gmail.com> | |||
* and other copyright owners as documented in the project's IP log. | |||
@@ -52,6 +52,7 @@ import java.io.IOException; | |||
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 @@ public class FileTreeIterator extends WorkingTreeIterator { | |||
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; |
@@ -336,7 +336,7 @@ public abstract class WorkingTreeIterator extends AbstractTreeIterator { | |||
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; |