Introduce a named constant for the .git directory.

Not all occurrences of ".git" are replaced by this constant, only
those where it actually refers to the directory with that name, i.e
not the ".git" directory suffix.

Asserts and comment are also excluded from replacement.

Change-Id: I65a9da89aedd53817f2ea3eaab4f9c2bed35d7ee
Signed-off-by: Robin Rosenberg <robin.rosenberg@dewire.com>
This commit is contained in:
Robin Rosenberg 2010-01-14 23:53:11 +01:00
parent f5eb0d9366
commit 0b8b6b5309
15 changed files with 48 additions and 37 deletions

View File

@ -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);

View File

@ -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();

View File

@ -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.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;
}

View File

@ -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 @@
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 "

View File

@ -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();

View File

@ -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 @@
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");

View File

@ -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 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");

View File

@ -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 @@
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());

View File

@ -308,6 +308,9 @@ 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";
/**
* Create a new digest function for objects.
*

View File

@ -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 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 {

View File

@ -377,8 +377,8 @@ 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();

View File

@ -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;
}

View File

@ -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,7 +408,7 @@ 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());

View File

@ -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.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;

View File

@ -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;