diff --git a/org.spearce.jgit/src/org/spearce/jgit/lib/Constants.java b/org.spearce.jgit/src/org/spearce/jgit/lib/Constants.java
index 7bbd88e..9ae3c1d 100644
--- a/org.spearce.jgit/src/org/spearce/jgit/lib/Constants.java
+++ b/org.spearce.jgit/src/org/spearce/jgit/lib/Constants.java
@@ -214,6 +214,9 @@ public final class Constants {
/** Prefix for tag refs */
public static final String TAGS_PREFIX = "refs/tags";
+ /** Logs folder name */
+ public static final String LOGS = "logs";
+
/** Info refs folder */
public static final String INFO_REFS = "info/refs";
diff --git a/org.spearce.jgit/src/org/spearce/jgit/lib/RefLogWriter.java b/org.spearce.jgit/src/org/spearce/jgit/lib/RefLogWriter.java
index 8256d70..3aecaf2 100644
--- a/org.spearce.jgit/src/org/spearce/jgit/lib/RefLogWriter.java
+++ b/org.spearce.jgit/src/org/spearce/jgit/lib/RefLogWriter.java
@@ -70,7 +70,7 @@ public class RefLogWriter {
String entry = buildReflogString(repo, oldCommit, commit, message);
File directory = repo.getDirectory();
- File reflogfile = new File(directory, "logs/" + refName);
+ File reflogfile = new File(directory, Constants.LOGS + "/" + refName);
File reflogdir = reflogfile.getParentFile();
if (!reflogdir.exists())
if (!reflogdir.mkdirs())diff --git a/org.spearce.jgit/src/org/spearce/jgit/transport/TransportAmazonS3.java b/org.spearce.jgit/src/org/spearce/jgit/transport/TransportAmazonS3.java
index 9aa2567..f9df36d 100644
--- a/org.spearce.jgit/src/org/spearce/jgit/transport/TransportAmazonS3.java
+++ b/org.spearce.jgit/src/org/spearce/jgit/transport/TransportAmazonS3.java
@@ -178,7 +178,7 @@ class TransportAmazonS3 extends WalkTransport {
if (subpath.endsWith("/"))
subpath = subpath.substring(0, subpath.length() - 1);
String k = objectsKey;
- while (subpath.startsWith("../")) {
+ while (subpath.startsWith(ROOT_DIR)) {
k = k.substring(0, k.lastIndexOf('/'));
subpath = subpath.substring(3);
}@@ -264,7 +264,8 @@ class TransportAmazonS3 extends WalkTransport {
private void readLooseRefs(final TreeMap<String, Ref> avail)
throws TransportException {
try {
- for (final String n : s3.list(bucket, resolveKey("../refs")))
+ for (final String n : s3.list(bucket, resolveKey(ROOT_DIR
+ + "refs")))
readRef(avail, "refs/" + n);
} catch (IOException e) {
throw new TransportException(getURI(), "cannot list refs", e);@@ -274,8 +275,9 @@ class TransportAmazonS3 extends WalkTransport {
private Ref readRef(final TreeMap<String, Ref> avail, final String rn)
throws TransportException {
final String s;
+ String ref = ROOT_DIR + rn;
try {
- final BufferedReader br = openReader("../" + rn);
+ final BufferedReader br = openReader(ref);
try {
s = br.readLine();
} finally {@@ -284,7 +286,7 @@ class TransportAmazonS3 extends WalkTransport {
} catch (FileNotFoundException noRef) {
return null;
} catch (IOException err) {
- throw new TransportException(getURI(), "read ../" + rn, err);
+ throw new TransportException(getURI(), "read " + ref, err);
}
if (s == null)diff --git a/org.spearce.jgit/src/org/spearce/jgit/transport/TransportSftp.java b/org.spearce.jgit/src/org/spearce/jgit/transport/TransportSftp.java
index 6a5df07..78f4ad8 100644
--- a/org.spearce.jgit/src/org/spearce/jgit/transport/TransportSftp.java
+++ b/org.spearce.jgit/src/org/spearce/jgit/transport/TransportSftp.java
@@ -372,8 +372,8 @@ class TransportSftp extends WalkTransport {
Map<String, Ref> readAdvertisedRefs() throws TransportException {
final TreeMap<String, Ref> avail = new TreeMap<String, Ref>();
readPackedRefs(avail);
- readRef(avail, "../HEAD", "HEAD");
- readLooseRefs(avail, "../refs", "refs/");
+ readRef(avail, ROOT_DIR + "HEAD", "HEAD");
+ readLooseRefs(avail, ROOT_DIR + "refs", "refs/");
return avail;
}
@@ -423,7 +423,7 @@ class TransportSftp extends WalkTransport {
if (line.startsWith("ref: ")) {
final String p = line.substring("ref: ".length());
- Ref r = readRef(avail, "../" + p, p);
+ Ref r = readRef(avail, ROOT_DIR + p, p);
if (r == null)
r = avail.get(p);
if (r != null) {diff --git a/org.spearce.jgit/src/org/spearce/jgit/transport/WalkPushConnection.java b/org.spearce.jgit/src/org/spearce/jgit/transport/WalkPushConnection.java
index 19071d7..39b967c 100644
--- a/org.spearce.jgit/src/org/spearce/jgit/transport/WalkPushConnection.java
+++ b/org.spearce.jgit/src/org/spearce/jgit/transport/WalkPushConnection.java
@@ -37,6 +37,8 @@
package org.spearce.jgit.transport;
+import static org.spearce.jgit.transport.WalkRemoteObjectDatabase.ROOT_DIR;
+
import java.io.IOException;
import java.io.OutputStream;
import java.util.ArrayList;
@@ -163,7 +165,7 @@ class WalkPushConnection extends BaseConnection implements PushConnection {
@Override
protected void writeFile(String file, byte[] content)
throws IOException {
- dest.writeFile("../" + file, content);
+ dest.writeFile(ROOT_DIR + file, content);
}
};
if (!packedRefUpdates.isEmpty()) {@@ -334,7 +336,7 @@ class WalkPushConnection extends BaseConnection implements PushConnection {
try {
final String ref = "ref: " + pickHEAD(updates) + "\n";
final byte[] bytes = ref.getBytes(Constants.CHARACTER_ENCODING);
- dest.writeFile("../HEAD", bytes);
+ dest.writeFile(ROOT_DIR + "HEAD", bytes);
} catch (IOException e) {
throw new TransportException(uri, "cannot create HEAD", e);
}@@ -343,7 +345,7 @@ class WalkPushConnection extends BaseConnection implements PushConnection {
final String config = "[core]\n"
+ "\trepositoryformatversion = 0\n";
final byte[] bytes = config.getBytes(Constants.CHARACTER_ENCODING);
- dest.writeFile("../config", bytes);
+ dest.writeFile(ROOT_DIR + "config", bytes);
} catch (IOException e) {
throw new TransportException(uri, "cannot create config", e);
}diff --git a/org.spearce.jgit/src/org/spearce/jgit/transport/WalkRemoteObjectDatabase.java b/org.spearce.jgit/src/org/spearce/jgit/transport/WalkRemoteObjectDatabase.java
index 25640dc..8fb5e1e 100644
--- a/org.spearce.jgit/src/org/spearce/jgit/transport/WalkRemoteObjectDatabase.java
+++ b/org.spearce.jgit/src/org/spearce/jgit/transport/WalkRemoteObjectDatabase.java
@@ -66,6 +66,9 @@ import org.spearce.jgit.util.NB;
* independent {@link WalkFetchConnection}.
*/
abstract class WalkRemoteObjectDatabase {
+
+ static final String ROOT_DIR = "../";
+
static final String CHARENC = Constants.CHARACTER_ENCODING;
static final String INFO_PACKS = "info/packs";@@ -74,9 +77,7 @@ abstract class WalkRemoteObjectDatabase {
static final String INFO_HTTP_ALTERNATES = "info/http-alternates";
- static final String INFO_REFS = "../info/refs";
-
- static final String PACKED_REFS = "../packed-refs";
+ static final String INFO_REFS = ROOT_DIR + Constants.INFO_REFS;
abstract URIish getURI();
@@ -271,7 +272,7 @@ abstract class WalkRemoteObjectDatabase {
* deletion is not supported, or deletion failed.
*/
void deleteRef(final String name) throws IOException {
- deleteFile("../" + name);
+ deleteFile(ROOT_DIR + name);
}
/**@@ -284,7 +285,7 @@ abstract class WalkRemoteObjectDatabase {
* deletion is not supported, or deletion failed.
*/
void deleteRefLog(final String name) throws IOException {
- deleteFile("../logs/" + name);
+ deleteFile(ROOT_DIR + Constants.LOGS + "/" + name);
}
/**@@ -308,7 +309,7 @@ abstract class WalkRemoteObjectDatabase {
value.copyTo(b);
b.write('\n');
- writeFile("../" + name, b.toByteArray());
+ writeFile(ROOT_DIR + name, b.toByteArray());
}
/**@@ -411,7 +412,8 @@ abstract class WalkRemoteObjectDatabase {
protected void readPackedRefs(final Map<String, Ref> avail)
throws TransportException {
try {
- final BufferedReader br = openReader(PACKED_REFS);
+ final BufferedReader br = openReader(ROOT_DIR
+ + Constants.PACKED_REFS);
try {
readPackedRefsImpl(avail, br);
} finally {--
1.6.0.rc2.35.g04c6e