-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Hi Thanks for the suggestions and comments, the new patches are available here: http://repo.or.cz/w/egit/florian.git?a=shortlog;h=refs/heads/mailinglist-patches-4 I will send them as a reply to this email soon. The most noticeable change is that I improved the fnmatch functionality. All character classes of the type [:class:] work now. Other character classes, including the character classes [=class=] and [.class.] will cause a InvalidPatternException. The last two aren't supported at my bash neighter, but are defined in the POSIX standard. Two other implementation differences are: The bash shell doesn't support the full range of digits, but my implementatiton does. e.g. ۹ (U+06F9 EXTENDED ARABIC-INDIC DIGIT NINE) A pattern like [[:] results in a InvalidPatternException in my implementation. The shell has there a strange behavior: if the files "[" and ":" exists then "ls [[:]" shows only ":". The other main change is that I introduced a AbstractTestCase class which which offers functionality to create temporary folders. RepositoryTestCase extends now from this new class. An other patch reducing the duplication between AbstractTestCase and RepositoryTestCase class will follow soon, if you like the change. I also updated all license statements to the 3-clause BSD. Even if you don't like the last change (the AbstractTestCase change) it would be cool if you would accept at least some patches. Best regards, Florian -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.6 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iD8DBQFIUrzK59ca4mzhfxMRAg+XAKDUoEdpil0+qqZ0pgMx/yJYKd2ztwCfe4aI fqJ25VXnX2RWEay9aH4Np6Y= =4i44 -----END PGP SIGNATURE----- --
Signed-off-by: Florian Koeberle <florianskarten@web.de> --- .../jgit/treewalk/rules/IgnoreRuleListFactory.java | 115 ++++++++++++++++++++ 1 files changed, 115 insertions(+), 0 deletions(-) create mode 100644 org.spearce.jgit/src/org/spearce/jgit/treewalk/rules/IgnoreRuleListFactory.java diff --git a/org.spearce.jgit/src/org/spearce/jgit/treewalk/rules/IgnoreRuleListFactory.java b/org.spearce.jgit/src/org/spearce/jgit/treewalk/rules/IgnoreRuleListFactory.java new file mode 100644 index 0000000..aa4a384 --- /dev/null +++ b/org.spearce.jgit/src/org/spearce/jgit/treewalk/rules/IgnoreRuleListFactory.java @@ -0,0 +1,115 @@ +/* + * Copyright (C) 2008, Florian K
Signed-off-by: Florian Koeberle <florianskarten@web.de> --- .../jgit/treewalk/rules/FilePathPattern.java | 97 ++++++++++++++++++++ 1 files changed, 97 insertions(+), 0 deletions(-) create mode 100644 org.spearce.jgit/src/org/spearce/jgit/treewalk/rules/FilePathPattern.java diff --git a/org.spearce.jgit/src/org/spearce/jgit/treewalk/rules/FilePathPattern.java b/org.spearce.jgit/src/org/spearce/jgit/treewalk/rules/FilePathPattern.java new file mode 100644 index 0000000..cd7c9aa --- /dev/null +++ b/org.spearce.jgit/src/org/spearce/jgit/treewalk/rules/FilePathPattern.java @@ -0,0 +1,97 @@ +/* + * Copyright (C) 2008, Florian K
Signed-off-by: Florian Koeberle <florianskarten@web.de> --- .../src/org/spearce/jgit/treewalk/rules/Rule.java | 82 ++++++++++++++++++++ 1 files changed, 82 insertions(+), 0 deletions(-) create mode 100644 org.spearce.jgit/src/org/spearce/jgit/treewalk/rules/Rule.java diff --git a/org.spearce.jgit/src/org/spearce/jgit/treewalk/rules/Rule.java b/org.spearce.jgit/src/org/spearce/jgit/treewalk/rules/Rule.java new file mode 100644 index 0000000..8e5b2f4 --- /dev/null +++ b/org.spearce.jgit/src/org/spearce/jgit/treewalk/rules/Rule.java @@ -0,0 +1,82 @@ +/* + * Copyright (C) 2008, Florian K
Signed-off-by: Florian Koeberle <florianskarten@web.de> --- .../errors/PathNotInProjectDirectoryException.java | 46 ++++++++++++++++++++ 1 files changed, 46 insertions(+), 0 deletions(-) create mode 100644 org.spearce.jgit/src/org/spearce/jgit/errors/PathNotInProjectDirectoryException.java diff --git a/org.spearce.jgit/src/org/spearce/jgit/errors/PathNotInProjectDirectoryException.java b/org.spearce.jgit/src/org/spearce/jgit/errors/PathNotInProjectDirectoryException.java new file mode 100644 index 0000000..5fce2b3 --- /dev/null +++ b/org.spearce.jgit/src/org/spearce/jgit/errors/PathNotInProjectDirectoryException.java @@ -0,0 +1,46 @@ +/* + * Copyright (C) 2008, Florian K
Signed-off-by: Florian Koeberle <florianskarten@web.de> --- .../jgit/treewalk/rules/FileNamePattern.java | 79 ++++++++++++++++++++ 1 files changed, 79 insertions(+), 0 deletions(-) create mode 100644 org.spearce.jgit/src/org/spearce/jgit/treewalk/rules/FileNamePattern.java diff --git a/org.spearce.jgit/src/org/spearce/jgit/treewalk/rules/FileNamePattern.java b/org.spearce.jgit/src/org/spearce/jgit/treewalk/rules/FileNamePattern.java new file mode 100644 index 0000000..3760308 --- /dev/null +++ b/org.spearce.jgit/src/org/spearce/jgit/treewalk/rules/FileNamePattern.java @@ -0,0 +1,79 @@ +/* + * Copyright (C) 2008, Florian K
Signed-off-by: Florian Koeberle <florianskarten@web.de> --- .../spearce/jgit/treewalk/rules/FilePattern.java | 128 ++++++++++++++++++++ 1 files changed, 128 insertions(+), 0 deletions(-) create mode 100644 org.spearce.jgit/src/org/spearce/jgit/treewalk/rules/FilePattern.java diff --git a/org.spearce.jgit/src/org/spearce/jgit/treewalk/rules/FilePattern.java b/org.spearce.jgit/src/org/spearce/jgit/treewalk/rules/FilePattern.java new file mode 100644 index 0000000..86cba6b --- /dev/null +++ b/org.spearce.jgit/src/org/spearce/jgit/treewalk/rules/FilePattern.java @@ -0,0 +1,128 @@ +/* + * Copyright (C) 2008, Florian K
Signed-off-by: Florian Koeberle <florianskarten@web.de> --- .../src/org/spearce/jgit/treewalk/rules/Rules.java | 121 ++++++++++++++++++++ 1 files changed, 121 insertions(+), 0 deletions(-) create mode 100644 org.spearce.jgit/src/org/spearce/jgit/treewalk/rules/Rules.java diff --git a/org.spearce.jgit/src/org/spearce/jgit/treewalk/rules/Rules.java b/org.spearce.jgit/src/org/spearce/jgit/treewalk/rules/Rules.java new file mode 100644 index 0000000..0a71150 --- /dev/null +++ b/org.spearce.jgit/src/org/spearce/jgit/treewalk/rules/Rules.java @@ -0,0 +1,121 @@ +/* + * Copyright (C) 2008, Florian K
Signed-off-by: Florian Koeberle <florianskarten@web.de> --- .../treewalk/rules/RuleListToObjectConverter.java | 151 ++++++++++++++++++++ .../jgit/treewalk/rules/RulesImplementation.java | 88 ++++++++++++ 2 files changed, 239 insertions(+), 0 deletions(-) create mode 100644 org.spearce.jgit/src/org/spearce/jgit/treewalk/rules/RuleListToObjectConverter.java create mode 100644 org.spearce.jgit/src/org/spearce/jgit/treewalk/rules/RulesImplementation.java diff --git a/org.spearce.jgit/src/org/spearce/jgit/treewalk/rules/RuleListToObjectConverter.java b/org.spearce.jgit/src/org/spearce/jgit/treewalk/rules/RuleListToObjectConverter.java new file mode 100644 index 0000000..96f27bb --- /dev/null +++ b/org.spearce.jgit/src/org/spearce/jgit/treewalk/rules/RuleListToObjectConverter.java @@ -0,0 +1,151 @@ +/* + * Copyright (C) 2008, Florian K
Signed-off-by: Florian Koeberle <florianskarten@web.de>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
---
.../src/org/spearce/jgit/lib/Constants.java | 6 ++++++
1 files changed, 6 insertions(+), 0 deletions(-)
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 26b8c8e..744d4d8 100644
--- a/org.spearce.jgit/src/org/spearce/jgit/lib/Constants.java
+++ b/org.spearce.jgit/src/org/spearce/jgit/lib/Constants.java
@@ -207,6 +207,12 @@ public final class Constants {
public static final String TAGS_PREFIX = "refs/tags";
/**
+ * The name of the repository directory in the project directory. Project
+ * directory means here the tree under version control.
+ */
+ public static final String REPOSITORY_DIRECTORY_NAME = ".git";
+
+ /**
* Create a new digest function for objects.
*
* @return a new digest object.
--
1.5.4.3
--
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
Signed-off-by: Florian Koeberle <florianskarten@web.de>
---
.../src/org/spearce/jgit/lib/Constants.java | 10 ++++++++++
1 files changed, 10 insertions(+), 0 deletions(-)
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 744d4d8..ee85ded 100644
--- a/org.spearce.jgit/src/org/spearce/jgit/lib/Constants.java
+++ b/org.spearce.jgit/src/org/spearce/jgit/lib/Constants.java
@@ -213,6 +213,16 @@ public final class Constants {
public static final String REPOSITORY_DIRECTORY_NAME = ".git";
/**
+ * Contains the name of the objects directory in the repository directory.
+ */
+ public static final String OBJECTS_DIRECTORY_NAME = "objects";
+
+ /**
+ * Contains the name of the refs directory in the repository directory.
+ */
+ public static final String REFS_DIRECTORY_NAME = "refs";
+
+ /**
* Create a new digest function for objects.
*
* @return a new digest object.
--
1.5.4.3
--
Signed-off-by: Florian Koeberle <florianskarten@web.de>
---
.../org/spearce/jgit/lib/RepositoryTestCase.java | 22 ++++++++++---------
1 files changed, 12 insertions(+), 10 deletions(-)
diff --git a/org.spearce.jgit.test/tst/org/spearce/jgit/lib/RepositoryTestCase.java b/org.spearce.jgit.test/tst/org/spearce/jgit/lib/RepositoryTestCase.java
index 14e7179..aae9ed6 100644
--- a/org.spearce.jgit.test/tst/org/spearce/jgit/lib/RepositoryTestCase.java
+++ b/org.spearce.jgit.test/tst/org/spearce/jgit/lib/RepositoryTestCase.java
@@ -113,8 +113,8 @@ public abstract class RepositoryTestCase extends TestCase {
throws IOException {
Reader r = new InputStreamReader(new FileInputStream(f), "ISO-8859-1");
char[] data = new char[(int) f.length()];
- if (f.length() != r.read(data))
- throw new IOException("Internal error reading file data from "+f);
+ if (f.length() != r.read(data))
+ throw new IOException("Internal error reading file data from " + f);
assertEquals(checkData, new String(data));
}
@@ -123,7 +123,7 @@ public abstract class RepositoryTestCase extends TestCase {
public void setUp() throws Exception {
super.setUp();
recursiveDelete(trashParent);
- trash = new File(trashParent,"trash"+System.currentTimeMillis());
+ trash = new File(trashParent, "trash" + System.currentTimeMillis());
trash_git = new File(trash, ".git");
Runtime.getRuntime().addShutdownHook(new Thread() {
@@ -140,8 +140,7 @@ public abstract class RepositoryTestCase extends TestCase {
"pack-34be9032ac282b11fa9babdc2b2a93ca996c9c2f",
"pack-df2982f284bbabb6bdb59ee3fcc6eb0983e20371",
"pack-9fb5b411fe6dfa89cc2e6b89d2bd8e5de02b5745",
- "pack-e6d07037cbcf13376308a0a995d1fa48f8f76aaa"
- };
+ "pack-e6d07037cbcf13376308a0a995d1fa48f8f76aaa" };
final File tst = new File("tst");
final File packDir = new File(db.getObjectsDirectory(), "pack");
for (int k = 0; k < packs.length; k++) {
@@ -151,7 +150,8 @@ public abstract class RepositoryTestCase ...Signed-off-by: Florian Koeberle <florianskarten@web.de>
---
.../src/org/spearce/jgit/lib/Repository.java | 31 ++++++++
.../src/org/spearce/jgit/lib/WorkTree.java | 81 ++++++++++++++++++++
2 files changed, 112 insertions(+), 0 deletions(-)
create mode 100644 org.spearce.jgit/src/org/spearce/jgit/lib/WorkTree.java
diff --git a/org.spearce.jgit/src/org/spearce/jgit/lib/Repository.java b/org.spearce.jgit/src/org/spearce/jgit/lib/Repository.java
index 3efe60b..5a21c6e 100644
--- a/org.spearce.jgit/src/org/spearce/jgit/lib/Repository.java
+++ b/org.spearce.jgit/src/org/spearce/jgit/lib/Repository.java
@@ -986,4 +986,35 @@ public class Repository {
public File getWorkDir() {
return getDirectory().getParentFile();
}
+
+ /**
+ * Creates a new {@link WorkTree} and initialize a repository for it.
+ *
+ * @param workTreeDirectory
+ * the directory with the project files.
+ * @return a new {@link WorkTree} with a new and open {@link Repository}.
+ * @throws IOException
+ * thrown by {@link Repository#create()}
+ */
+ public static WorkTree createWorkTree(File workTreeDirectory)
+ throws IOException {
+ final File gitDirectory = new File(workTreeDirectory,
+ Constants.REPOSITORY_DIRECTORY_NAME);
+ if (gitDirectory.exists()) {
+ throw new IllegalArgumentException(
+ "Repository exists in given project directory.");
+ }
+ final Repository repository = new Repository(gitDirectory);
+ try {
+ repository.create();
+ return new WorkTree(workTreeDirectory, repository);
+ } catch (RuntimeException e) {
+ repository.close();
+ throw e;
+ } catch (IOException e) {
+ repository.close();
+ throw e;
+ }
+ }
+
}
diff --git a/org.spearce.jgit/src/org/spearce/jgit/lib/WorkTree.java b/org.spearce.jgit/src/org/spearce/jgit/lib/WorkTree.java
new file mode 100644
index 0000000..0040954
--- /dev/null
+++ b/org.spearce.jgit/src/org/spearce/jgit/lib/WorkTree.java
@@ -0,0 +1,81 @@
+/*
+ * Copyright ...Signed-off-by: Florian Koeberle <florianskarten@web.de> --- .../tst/org/spearce/jgit/lib/AbstractTestCase.java | 108 ++++++++++++++++++++ .../org/spearce/jgit/lib/RepositoryTestCase.java | 22 +---- 2 files changed, 109 insertions(+), 21 deletions(-) create mode 100644 org.spearce.jgit.test/tst/org/spearce/jgit/lib/AbstractTestCase.java diff --git a/org.spearce.jgit.test/tst/org/spearce/jgit/lib/AbstractTestCase.java b/org.spearce.jgit.test/tst/org/spearce/jgit/lib/AbstractTestCase.java new file mode 100644 index 0000000..c017fc0 --- /dev/null +++ b/org.spearce.jgit.test/tst/org/spearce/jgit/lib/AbstractTestCase.java @@ -0,0 +1,108 @@ +/* + * Copyright (C) 2006, Shawn Pearce <spearce@spearce.org> + * Copyright (C) 2008, Florian K
Signed-off-by: Florian Koeberle <florianskarten@web.de> --- .../jgit/treewalk/rules/AddRuleListFactory.java | 96 ++++++++++++++++++++ 1 files changed, 96 insertions(+), 0 deletions(-) create mode 100644 org.spearce.jgit/src/org/spearce/jgit/treewalk/rules/AddRuleListFactory.java diff --git a/org.spearce.jgit/src/org/spearce/jgit/treewalk/rules/AddRuleListFactory.java b/org.spearce.jgit/src/org/spearce/jgit/treewalk/rules/AddRuleListFactory.java new file mode 100644 index 0000000..5304a38 --- /dev/null +++ b/org.spearce.jgit/src/org/spearce/jgit/treewalk/rules/AddRuleListFactory.java @@ -0,0 +1,96 @@ +/* + * Copyright (C) 2008, Florian K
Signed-off-by: Florian Koeberle <florianskarten@web.de> --- .../jgit/treewalk/rules/AddRulesFactory.java | 127 ++++++++++++++++++++ 1 files changed, 127 insertions(+), 0 deletions(-) create mode 100644 org.spearce.jgit/src/org/spearce/jgit/treewalk/rules/AddRulesFactory.java diff --git a/org.spearce.jgit/src/org/spearce/jgit/treewalk/rules/AddRulesFactory.java b/org.spearce.jgit/src/org/spearce/jgit/treewalk/rules/AddRulesFactory.java new file mode 100644 index 0000000..767b5c7 --- /dev/null +++ b/org.spearce.jgit/src/org/spearce/jgit/treewalk/rules/AddRulesFactory.java @@ -0,0 +1,127 @@ +/* + * Copyright (C) 2008, Florian K
Signed-off-by: Florian Koeberle <florianskarten@web.de>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
---
.../src/org/spearce/jgit/lib/Constants.java | 14 ++++++++------
1 files changed, 8 insertions(+), 6 deletions(-)
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 d1e8a41..26b8c8e 100644
--- a/org.spearce.jgit/src/org/spearce/jgit/lib/Constants.java
+++ b/org.spearce.jgit/src/org/spearce/jgit/lib/Constants.java
@@ -226,8 +226,9 @@ public final class Constants {
/**
* Convert an OBJ_* type constant to a TYPE_* type constant.
- *
- * @param typeCode the type code, from a pack representation.
+ *
+ * @param typeCode
+ * the type code, from a pack representation.
* @return the canonical string name of this type.
*/
public static String typeString(final int typeCode) {
@@ -248,10 +249,11 @@ public final class Constants {
/**
* Convert an OBJ_* type constant to an ASCII encoded string constant.
* <p>
- * The ASCII encoded string is often the canonical representation of
- * the type within a loose object header, or within a tag header.
- *
- * @param typeCode the type code, from a pack representation.
+ * The ASCII encoded string is often the canonical representation of the
+ * type within a loose object header, or within a tag header.
+ *
+ * @param typeCode
+ * the type code, from a pack representation.
* @return the canonical ASCII encoded name of this type.
*/
public static byte[] encodedTypeString(final int typeCode) {
--
1.5.4.3
--
Signed-off-by: Florian Koeberle <florianskarten@web.de> --- .../jgit/treewalk/LightFileTreeIteratorTest.java | 135 ++++++++++++++++++++ .../jgit/treewalk/LightFileTreeIterator.java | 133 +++++++++++++++++++ 2 files changed, 268 insertions(+), 0 deletions(-) create mode 100644 org.spearce.jgit.test/tst/org/spearce/jgit/treewalk/LightFileTreeIteratorTest.java create mode 100644 org.spearce.jgit/src/org/spearce/jgit/treewalk/LightFileTreeIterator.java diff --git a/org.spearce.jgit.test/tst/org/spearce/jgit/treewalk/LightFileTreeIteratorTest.java b/org.spearce.jgit.test/tst/org/spearce/jgit/treewalk/LightFileTreeIteratorTest.java new file mode 100644 index 0000000..d1d8f48 --- /dev/null +++ b/org.spearce.jgit.test/tst/org/spearce/jgit/treewalk/LightFileTreeIteratorTest.java @@ -0,0 +1,135 @@ +/* + * Copyright (C) 2008, Florian K
Signed-off-by: Florian Koeberle <florianskarten@web.de> --- .../jgit/errors/NoGitRepositoryFoundException.java | 65 ++++++++++++++++++++ 1 files changed, 65 insertions(+), 0 deletions(-) create mode 100644 org.spearce.jgit/src/org/spearce/jgit/errors/NoGitRepositoryFoundException.java diff --git a/org.spearce.jgit/src/org/spearce/jgit/errors/NoGitRepositoryFoundException.java b/org.spearce.jgit/src/org/spearce/jgit/errors/NoGitRepositoryFoundException.java new file mode 100644 index 0000000..1d84e60 --- /dev/null +++ b/org.spearce.jgit/src/org/spearce/jgit/errors/NoGitRepositoryFoundException.java @@ -0,0 +1,65 @@ +/* + * Copyright (C) 2008, Florian K
Signed-off-by: Florian Koeberle <florianskarten@web.de> --- .../treewalk/rules/OverallIgnoreRulesTest.java | 396 ++++++++++++++++++++ 1 files changed, 396 insertions(+), 0 deletions(-) create mode 100644 org.spearce.jgit.test/tst/org/spearce/jgit/treewalk/rules/OverallIgnoreRulesTest.java diff --git a/org.spearce.jgit.test/tst/org/spearce/jgit/treewalk/rules/OverallIgnoreRulesTest.java b/org.spearce.jgit.test/tst/org/spearce/jgit/treewalk/rules/OverallIgnoreRulesTest.java new file mode 100644 index 0000000..55e9de5 --- /dev/null +++ b/org.spearce.jgit.test/tst/org/spearce/jgit/treewalk/rules/OverallIgnoreRulesTest.java @@ -0,0 +1,396 @@ +/* + * Copyright (C) 2008, Florian K
Signed-off-by: Florian Koeberle <florianskarten@web.de> --- .../jgit/treewalk/LightFileTreeIterable.java | 80 ++++++++++++++++++++ 1 files changed, 80 insertions(+), 0 deletions(-) create mode 100644 org.spearce.jgit/src/org/spearce/jgit/treewalk/LightFileTreeIterable.java diff --git a/org.spearce.jgit/src/org/spearce/jgit/treewalk/LightFileTreeIterable.java b/org.spearce.jgit/src/org/spearce/jgit/treewalk/LightFileTreeIterable.java new file mode 100644 index 0000000..ea06e2d --- /dev/null +++ b/org.spearce.jgit/src/org/spearce/jgit/treewalk/LightFileTreeIterable.java @@ -0,0 +1,80 @@ +/* + * Copyright (C) 2008, Florian K
Signed-off-by: Florian Koeberle <florianskarten@web.de>
---
.../src/org/spearce/jgit/lib/Repository.java | 80 ++++++++++++++++++++
1 files changed, 80 insertions(+), 0 deletions(-)
diff --git a/org.spearce.jgit/src/org/spearce/jgit/lib/Repository.java b/org.spearce.jgit/src/org/spearce/jgit/lib/Repository.java
index d7c3b13..ee7bbe4 100644
--- a/org.spearce.jgit/src/org/spearce/jgit/lib/Repository.java
+++ b/org.spearce.jgit/src/org/spearce/jgit/lib/Repository.java
@@ -39,6 +39,11 @@
package org.spearce.jgit.lib;
+import static org.spearce.jgit.lib.Constants.HEAD;
+import static org.spearce.jgit.lib.Constants.OBJECTS_DIRECTORY_NAME;
+import static org.spearce.jgit.lib.Constants.REFS_DIRECTORY_NAME;
+import static org.spearce.jgit.lib.Constants.REPOSITORY_DIRECTORY_NAME;
+
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
@@ -51,6 +56,7 @@ import java.util.HashMap;
import java.util.Map;
import org.spearce.jgit.errors.IncorrectObjectTypeException;
+import org.spearce.jgit.errors.NoGitRepositoryFoundException;
import org.spearce.jgit.errors.RevisionSyntaxException;
import org.spearce.jgit.stgit.StGitPatch;
import org.spearce.jgit.util.FS;
@@ -1052,4 +1058,78 @@ public class Repository {
}
}
+ /**
+ * Find the git repository for the current working directory.
+ *
+ * @return a {@link Repository}.
+ * @throws NoGitRepositoryFoundException
+ * if no git repository could be found for the current
+ * directory.
+ * @throws IOException
+ * if not able to determine the absolute path of the current
+ * working directory.
+ */
+ public static WorkTree findWorkTree() throws NoGitRepositoryFoundException,
+ IOException {
+ return findWorkTree(new File("."));
+ }
+
+ /**
+ * Checks if a path is a valid git repository. Works similar like the method
+ * is_git_directory from the original setup.c file.
+ *
+ * @param directory
+ * ...Signed-off-by: Florian Koeberle <florianskarten@web.de>
---
.../src/org/spearce/jgit/lib/Repository.java | 285 +++++++++++---------
1 files changed, 160 insertions(+), 125 deletions(-)
diff --git a/org.spearce.jgit/src/org/spearce/jgit/lib/Repository.java b/org.spearce.jgit/src/org/spearce/jgit/lib/Repository.java
index 5a21c6e..d7c3b13 100644
--- a/org.spearce.jgit/src/org/spearce/jgit/lib/Repository.java
+++ b/org.spearce.jgit/src/org/spearce/jgit/lib/Repository.java
@@ -66,16 +66,17 @@ import org.spearce.jgit.util.FS;
*
* <ul>
* <li>GIT_DIR
- * <ul>
- * <li>objects/ - objects</li>
- * <li>refs/ - tags and heads</li>
- * <li>config - configuration</li>
- * <li>info/ - more configurations</li>
- * </ul>
+ * <ul>
+ * <li>objects/ - objects</li>
+ * <li>refs/ - tags and heads</li>
+ * <li>config - configuration</li>
+ * <li>info/ - more configurations</li>
+ * </ul>
* </li>
* </ul>
*
- * This implementation only handles a subtly undocumented subset of git features.
+ * This implementation only handles a subtly undocumented subset of git
+ * features.
*
*/
public class Repository {
@@ -93,7 +94,7 @@ public class Repository {
/**
* Construct a representation of a Git repository.
- *
+ *
* @param d
* GIT_DIR (the location of the repository metadata).
* @throws IOException
@@ -106,7 +107,8 @@ public class Repository {
objectsDirs = readObjectsDirs(FS.resolve(gitDir, "objects"),
new ArrayList<File>()).toArray(new File[0]);
} catch (IOException e) {
- IOException ex = new IOException("Cannot find all object dirs for " + gitDir);
+ IOException ex = new IOException("Cannot find all object dirs for "
+ + gitDir);
ex.initCause(e);
throw ex;
}
@@ -130,12 +132,13 @@ public class Repository {
scanForPacks();
}
- private Collection<File> readObjectsDirs(File objectsDir, Collection<File> ret) throws IOException {
+ private Collection<File> readObjectsDirs(File ...Signed-off-by: Florian Koeberle <florianskarten@web.de> --- .../spearce/jgit/fnmatch/FileNameMatcherTest.java | 678 ++++++++++++++++++++ .../jgit/errors/InvalidPatternException.java | 65 ++ .../jgit/errors/NoClosingBracketException.java | 69 ++ .../src/org/spearce/jgit/fnmatch/AbstractHead.java | 74 +++ .../org/spearce/jgit/fnmatch/CharacterHead.java | 53 ++ .../org/spearce/jgit/fnmatch/FileNameMatcher.java | 327 ++++++++++ .../src/org/spearce/jgit/fnmatch/GroupHead.java | 220 +++++++ .../src/org/spearce/jgit/fnmatch/Head.java | 50 ++ .../src/org/spearce/jgit/fnmatch/LastHead.java | 56 ++ .../jgit/fnmatch/RestrictedWildCardHead.java | 52 ++ .../src/org/spearce/jgit/fnmatch/WildCardHead.java | 49 ++ 11 files changed, 1693 insertions(+), 0 deletions(-) create mode 100644 org.spearce.jgit.test/tst/org/spearce/jgit/fnmatch/FileNameMatcherTest.java create mode 100644 org.spearce.jgit/src/org/spearce/jgit/errors/InvalidPatternException.java create mode 100644 org.spearce.jgit/src/org/spearce/jgit/errors/NoClosingBracketException.java create mode 100644 org.spearce.jgit/src/org/spearce/jgit/fnmatch/AbstractHead.java create mode 100644 org.spearce.jgit/src/org/spearce/jgit/fnmatch/CharacterHead.java create mode 100644 org.spearce.jgit/src/org/spearce/jgit/fnmatch/FileNameMatcher.java create mode 100644 org.spearce.jgit/src/org/spearce/jgit/fnmatch/GroupHead.java create mode 100644 org.spearce.jgit/src/org/spearce/jgit/fnmatch/Head.java create mode 100644 org.spearce.jgit/src/org/spearce/jgit/fnmatch/LastHead.java create mode 100644 org.spearce.jgit/src/org/spearce/jgit/fnmatch/RestrictedWildCardHead.java create mode 100644 org.spearce.jgit/src/org/spearce/jgit/fnmatch/WildCardHead.java diff --git a/org.spearce.jgit.test/tst/org/spearce/jgit/fnmatch/FileNameMatcherTest.java b/org.spearce.jgit.test/tst/org/spearce/jgit/fnmatch/FileNameMatcherTest.java new file mode 100644 index 0000000..74e88fa --- /dev/null +++ ...
Signed-off-by: Florian Koeberle <florianskarten@web.de> --- .../treewalk/rules/AddCommandIterationTest.java | 339 ++++++++++++++++++++ 1 files changed, 339 insertions(+), 0 deletions(-) create mode 100644 org.spearce.jgit.test/tst/org/spearce/jgit/treewalk/rules/AddCommandIterationTest.java diff --git a/org.spearce.jgit.test/tst/org/spearce/jgit/treewalk/rules/AddCommandIterationTest.java b/org.spearce.jgit.test/tst/org/spearce/jgit/treewalk/rules/AddCommandIterationTest.java new file mode 100644 index 0000000..a17fc18 --- /dev/null +++ b/org.spearce.jgit.test/tst/org/spearce/jgit/treewalk/rules/AddCommandIterationTest.java @@ -0,0 +1,339 @@ +/* + * Copyright (C) 2008, Florian K
Having : in a filename is asking for trouble. I think the parser thinks [[: as in [[:alpha:]] and break the parsing somhow. This is possibly even undefined, Not trying to clean up got me into trouble with tons and tons of garbage, that is why I placed new repos in a directory and try to delete it if possible. That ofcourse excludes parallell runs. Anyone with a good idea on how to The patch constituents are somwehat loose. Would this rebase do? pick e331b13 Added the package fnmatch and two exceptions. squash 64d8aa2 Added the interface FilePattern. squash ae7915f Added the class Rule. squash 48496f5 Added the interface Rules. squash d7f58cb Added the class FileNamePattern. squash f757bf1 Added the class FilePathPattern. pick 39ea57e Added the class IgnoreRuleListFactory. squash b61bf41 Added a Rules interface implementation and a factory for it. pick f1c6c47 Added test class OverallIgnoreRulestest. pick 5321c90 Formatted Constants class. pick b59c160 Added constant REPOSITORY_DIRECTORY_NAME to Constants class. squash 435b176 Added path related constants to the Constants class. pick 76ad8d2 Added the class NoGitRepositoryFoundException. pick 0164c9e Formatted Repository class. pick fab1279 Added WorkTree class which can be constructed over Repository. squash afda1f4 Added findWorkTree method to Repository class. pick eb61f60 Formatted RepositoryTestCase. pick 5aca2f0 Added a super class for RepositoryTestCase with a createTemporaryDirectory() method. pick 9b6a188 Added the class LightFileTreeIterator and a test for it. squash c9a4795 Added class LightFileTreeIterable. pick 3b068aa Added the class PathNotInProjectDirectoryException. pick ef7be7f Added the class AddRuleListFactory. squash 0b81a9c Added class AddRulesFactory. pick 9bbb0c3 Added the test class AddCommandIterationTest. This groups patches into related chunks. I had to run native2ascii -encoding UTF-8 on FileNameMatcherTest.java to make it pass. The reason ofcourse is that java doesn't specify a ...
