Merge branch 'stable-0.9' * stable-0.9: Qualify post-0.9.3 builds JGit 0.9.3 clone: Correct formatting of init message Fix cloning of repositories with big objects Qualify post-0.9.1 builds JGit 0.9.1 Fix PlotCommitList to set lanes on child-less commits
diff --git a/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/RevWalkTextBuiltin.java b/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/RevWalkTextBuiltin.java index bf3924b..768890c 100644 --- a/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/RevWalkTextBuiltin.java +++ b/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/RevWalkTextBuiltin.java
@@ -50,8 +50,10 @@ import org.kohsuke.args4j.Argument; import org.kohsuke.args4j.Option; +import org.eclipse.jgit.errors.IncorrectObjectTypeException; import org.eclipse.jgit.lib.Constants; import org.eclipse.jgit.lib.ObjectId; +import org.eclipse.jgit.lib.Ref; import org.eclipse.jgit.pgm.opt.PathTreeFilterHandler; import org.eclipse.jgit.revwalk.FollowFilter; import org.eclipse.jgit.revwalk.ObjectWalk; @@ -80,6 +82,9 @@ abstract class RevWalkTextBuiltin extends TextBuiltin { @Option(name = "--total-count") boolean count = false; + @Option(name = "--all") + boolean all = false; + char[] outbuffer = new char[Constants.OBJECT_ID_LENGTH * 2]; private final EnumSet<RevSort> sorting = EnumSet.noneOf(RevSort.class); @@ -156,6 +161,18 @@ else if (pathFilter != TreeFilter.ALL) else if (revLimiter.size() > 1) walk.setRevFilter(AndRevFilter.create(revLimiter)); + if (all) + for (Ref a : db.getAllRefs().values()) { + ObjectId oid = a.getPeeledObjectId(); + if (oid == null) + oid = a.getObjectId(); + try { + commits.add(walk.parseCommit(oid)); + } catch (IncorrectObjectTypeException e) { + // Ignore all refs which are not commits + } + } + if (commits.isEmpty()) { final ObjectId head = db.resolve(Constants.HEAD); if (head == null)
diff --git a/org.eclipse.jgit.test/tst/org/eclipse/jgit/transport/URIishTest.java b/org.eclipse.jgit.test/tst/org/eclipse/jgit/transport/URIishTest.java index ff8c9a6..6aef874 100644 --- a/org.eclipse.jgit.test/tst/org/eclipse/jgit/transport/URIishTest.java +++ b/org.eclipse.jgit.test/tst/org/eclipse/jgit/transport/URIishTest.java
@@ -83,6 +83,16 @@ public void testWindowsFile2() throws Exception { assertEquals(u, new URIish(str)); } + public void testRelativePath() throws Exception { + final String str = "../../foo/bar"; + URIish u = new URIish(str); + assertNull(u.getScheme()); + assertFalse(u.isRemote()); + assertEquals(str, u.getPath()); + assertEquals(str, u.toString()); + assertEquals(u, new URIish(str)); + } + public void testUNC() throws Exception { final String str = "\\\\some\\place"; URIish u = new URIish(str);
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 3f53328..44160c0 100644 --- a/org.eclipse.jgit/src/org/eclipse/jgit/transport/URIish.java +++ b/org.eclipse.jgit/src/org/eclipse/jgit/transport/URIish.java
@@ -64,7 +64,12 @@ public class URIish implements Serializable { private static final long serialVersionUID = 1L; private static final Pattern FULL_URI = Pattern - .compile("^(?:([a-z][a-z0-9+-]+)://(?:([^/]+?)(?::([^/]+?))?@)?(?:([^/]+?))?(?::(\\d+))?)?((?:[A-Za-z]:)?/.+)$"); + .compile("^(?:([a-z][a-z0-9+-]+)://" // optional http:// + + "(?:([^/]+?)(?::([^/]+?))?@)?" // optional user:password@ + + "(?:([^/]+?))?(?::(\\d+))?)?" // optional example.com:1337 + + "((?:[A-Za-z]:)?" // optional drive-letter: + + "(?:\\.\\.)?" // optionally a relative path + +"/.+)$"); // /anything private static final Pattern SCP_URI = Pattern .compile("^(?:([^@]+?)@)?([^:]+?):(.+)$");