diff options
author | Shawn O. Pearce <spearce@spearce.org> | 2010-09-16 17:22:37 -0700 |
---|---|---|
committer | Shawn O. Pearce <spearce@spearce.org> | 2010-09-16 17:22:37 -0700 |
commit | 5deb5b9a4aebd562a8680167dc6aee93fd7bb5c5 (patch) | |
tree | 3e963186d1f791e8f9f1a2f4113dd94652ea0846 | |
parent | 55714f6e73c9f858eb17eadcb9df05de029017aa (diff) | |
parent | 26f507f0df5822df0f19a5ca16462a4bbfeab5fc (diff) | |
download | jgit-5deb5b9a4aebd562a8680167dc6aee93fd7bb5c5.tar.gz jgit-5deb5b9a4aebd562a8680167dc6aee93fd7bb5c5.zip |
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
35 files changed, 617 insertions, 203 deletions
diff --git a/org.eclipse.jgit.console/META-INF/MANIFEST.MF b/org.eclipse.jgit.console/META-INF/MANIFEST.MF index a7599e0de1..6820ac9e11 100644 --- a/org.eclipse.jgit.console/META-INF/MANIFEST.MF +++ b/org.eclipse.jgit.console/META-INF/MANIFEST.MF @@ -3,11 +3,11 @@ Manifest-Version: 1.0 Bundle-ManifestVersion: 2 Bundle-Name: %plugin_name Bundle-SymbolicName: org.eclipse.jgit.console -Bundle-Version: 0.9.0.qualifier +Bundle-Version: 0.9.4.qualifier Bundle-Vendor: %provider_name Bundle-RequiredExecutionEnvironment: JavaSE-1.6 -Export-Package: org.eclipse.jgit.console;version="0.9.0" -Import-Package: org.eclipse.jgit.nls;version="[0.9.0,0.10.0)", - org.eclipse.jgit.transport;version="[0.9.0,0.10.0)", - org.eclipse.jgit.util;version="[0.9.0,0.10.0)" +Export-Package: org.eclipse.jgit.console;version="0.9.4" +Import-Package: org.eclipse.jgit.nls;version="[0.9.4,0.10.0)", + org.eclipse.jgit.transport;version="[0.9.4,0.10.0)", + org.eclipse.jgit.util;version="[0.9.4,0.10.0)" Require-Bundle: com.jcraft.jsch;bundle-version="[0.1.37,0.2.0)" diff --git a/org.eclipse.jgit.console/pom.xml b/org.eclipse.jgit.console/pom.xml index 6612865b08..77cfae674b 100644 --- a/org.eclipse.jgit.console/pom.xml +++ b/org.eclipse.jgit.console/pom.xml @@ -52,7 +52,7 @@ <parent> <groupId>org.eclipse.jgit</groupId> <artifactId>org.eclipse.jgit-parent</artifactId> - <version>0.9.0-SNAPSHOT</version> + <version>0.9.4-SNAPSHOT</version> </parent> <artifactId>org.eclipse.jgit.console</artifactId> diff --git a/org.eclipse.jgit.http.server/META-INF/MANIFEST.MF b/org.eclipse.jgit.http.server/META-INF/MANIFEST.MF index edaa1edd19..d517ecc838 100644 --- a/org.eclipse.jgit.http.server/META-INF/MANIFEST.MF +++ b/org.eclipse.jgit.http.server/META-INF/MANIFEST.MF @@ -2,22 +2,22 @@ Manifest-Version: 1.0 Bundle-ManifestVersion: 2 Bundle-Name: %plugin_name Bundle-SymbolicName: org.eclipse.jgit.http.server -Bundle-Version: 0.9.0.qualifier +Bundle-Version: 0.9.4.qualifier Bundle-Localization: plugin Bundle-Vendor: %provider_name Export-Package: - org.eclipse.jgit.http.server;version="0.9.0", - org.eclipse.jgit.http.server.glue;version="0.9.0", - org.eclipse.jgit.http.server.resolver;version="0.9.0" + org.eclipse.jgit.http.server;version="0.9.4", + org.eclipse.jgit.http.server.glue;version="0.9.4", + org.eclipse.jgit.http.server.resolver;version="0.9.4" Bundle-ActivationPolicy: lazy Bundle-RequiredExecutionEnvironment: J2SE-1.5 Import-Package: javax.servlet;version="[2.5.0,3.0.0)", javax.servlet.http;version="[2.5.0,3.0.0)", - org.eclipse.jgit.errors;version="[0.9.0,0.10.0)", - org.eclipse.jgit.lib;version="[0.9.0,0.10.0)", - org.eclipse.jgit.nls;version="[0.9.0,0.10.0)", - org.eclipse.jgit.revwalk;version="[0.9.0,0.10.0)", - org.eclipse.jgit.storage.file;version="[0.9.0,0.10.0)", - org.eclipse.jgit.transport;version="[0.9.0,0.10.0)", - org.eclipse.jgit.util;version="[0.9.0,0.10.0)", - org.eclipse.jgit.util.io;version="[0.9.0,0.10.0)" + org.eclipse.jgit.errors;version="[0.9.4,0.10.0)", + org.eclipse.jgit.lib;version="[0.9.4,0.10.0)", + org.eclipse.jgit.nls;version="[0.9.4,0.10.0)", + org.eclipse.jgit.revwalk;version="[0.9.4,0.10.0)", + org.eclipse.jgit.storage.file;version="[0.9.4,0.10.0)", + org.eclipse.jgit.transport;version="[0.9.4,0.10.0)", + org.eclipse.jgit.util;version="[0.9.4,0.10.0)", + org.eclipse.jgit.util.io;version="[0.9.4,0.10.0)" diff --git a/org.eclipse.jgit.http.server/pom.xml b/org.eclipse.jgit.http.server/pom.xml index c2623ca873..0da665e337 100644 --- a/org.eclipse.jgit.http.server/pom.xml +++ b/org.eclipse.jgit.http.server/pom.xml @@ -52,7 +52,7 @@ <parent> <groupId>org.eclipse.jgit</groupId> <artifactId>org.eclipse.jgit-parent</artifactId> - <version>0.9.0-SNAPSHOT</version> + <version>0.9.4-SNAPSHOT</version> </parent> <artifactId>org.eclipse.jgit.http.server</artifactId> diff --git a/org.eclipse.jgit.http.test/META-INF/MANIFEST.MF b/org.eclipse.jgit.http.test/META-INF/MANIFEST.MF index 21dd60817d..aef31b6556 100644 --- a/org.eclipse.jgit.http.test/META-INF/MANIFEST.MF +++ b/org.eclipse.jgit.http.test/META-INF/MANIFEST.MF @@ -2,7 +2,7 @@ Manifest-Version: 1.0 Bundle-ManifestVersion: 2 Bundle-Name: %plugin_name Bundle-SymbolicName: org.eclipse.jgit.http.test -Bundle-Version: 0.9.0.qualifier +Bundle-Version: 0.9.4.qualifier Bundle-Vendor: %provider_name Bundle-Localization: plugin Bundle-RequiredExecutionEnvironment: J2SE-1.5 @@ -22,13 +22,13 @@ Import-Package: javax.servlet;version="[2.5.0,3.0.0)", org.eclipse.jetty.util.component;version="[7.0.1,8.0.0)", org.eclipse.jetty.util.log;version="[7.0.1,8.0.0)", org.eclipse.jetty.util.thread;version="[7.0.1,8.0.0)", - org.eclipse.jgit.errors;version="[0.9.0,0.10.0)", - org.eclipse.jgit.http.server;version="[0.9.0,0.10.0)", - org.eclipse.jgit.http.server.glue;version="[0.9.0,0.10.0)", - org.eclipse.jgit.http.server.resolver;version="[0.9.0,0.10.0)", - org.eclipse.jgit.junit;version="[0.9.0,0.10.0)", - org.eclipse.jgit.lib;version="[0.9.0,0.10.0)", - org.eclipse.jgit.revwalk;version="[0.9.0,0.10.0)", - org.eclipse.jgit.storage.file;version="[0.9.0,0.10.0)", - org.eclipse.jgit.transport;version="[0.9.0,0.10.0)", - org.eclipse.jgit.util;version="[0.9.0,0.10.0)" + org.eclipse.jgit.errors;version="[0.9.4,0.10.0)", + org.eclipse.jgit.http.server;version="[0.9.4,0.10.0)", + org.eclipse.jgit.http.server.glue;version="[0.9.4,0.10.0)", + org.eclipse.jgit.http.server.resolver;version="[0.9.4,0.10.0)", + org.eclipse.jgit.junit;version="[0.9.4,0.10.0)", + org.eclipse.jgit.lib;version="[0.9.4,0.10.0)", + org.eclipse.jgit.revwalk;version="[0.9.4,0.10.0)", + org.eclipse.jgit.storage.file;version="[0.9.4,0.10.0)", + org.eclipse.jgit.transport;version="[0.9.4,0.10.0)", + org.eclipse.jgit.util;version="[0.9.4,0.10.0)" diff --git a/org.eclipse.jgit.http.test/pom.xml b/org.eclipse.jgit.http.test/pom.xml index 96b7f400d4..2bea48db64 100644 --- a/org.eclipse.jgit.http.test/pom.xml +++ b/org.eclipse.jgit.http.test/pom.xml @@ -51,7 +51,7 @@ <parent> <groupId>org.eclipse.jgit</groupId> <artifactId>org.eclipse.jgit-parent</artifactId> - <version>0.9.0-SNAPSHOT</version> + <version>0.9.4-SNAPSHOT</version> </parent> <artifactId>org.eclipse.jgit.http.test</artifactId> diff --git a/org.eclipse.jgit.iplog/META-INF/MANIFEST.MF b/org.eclipse.jgit.iplog/META-INF/MANIFEST.MF index 31a19b5ca0..85eb1ffbec 100644 --- a/org.eclipse.jgit.iplog/META-INF/MANIFEST.MF +++ b/org.eclipse.jgit.iplog/META-INF/MANIFEST.MF @@ -2,22 +2,22 @@ Manifest-Version: 1.0 Bundle-ManifestVersion: 2 Bundle-Name: %plugin_name Bundle-SymbolicName: org.eclipse.jgit.iplog -Bundle-Version: 0.9.0.qualifier +Bundle-Version: 0.9.4.qualifier Bundle-Vendor: %provider_name Bundle-Localization: plugin Bundle-ActivationPolicy: lazy Bundle-RequiredExecutionEnvironment: J2SE-1.5 -Import-Package: org.eclipse.jgit.diff;version="[0.9.0,0.10.0)", - org.eclipse.jgit.dircache;version="[0.9.0,0.10.0)", - org.eclipse.jgit.errors;version="[0.9.0,0.10.0)", - org.eclipse.jgit.lib;version="[0.9.0,0.10.0)", - org.eclipse.jgit.nls;version="[0.9.0,0.10.0)", - org.eclipse.jgit.revplot;version="[0.9.0,0.10.0)", - org.eclipse.jgit.revwalk;version="[0.9.0,0.10.0)", - org.eclipse.jgit.revwalk.filter;version="[0.9.0,0.10.0)", - org.eclipse.jgit.storage.file;version="[0.9.0,0.10.0)", - org.eclipse.jgit.transport;version="[0.9.0,0.10.0)", - org.eclipse.jgit.treewalk;version="[0.9.0,0.10.0)", - org.eclipse.jgit.treewalk.filter;version="[0.9.0,0.10.0)", - org.eclipse.jgit.util;version="[0.9.0,0.10.0)" -Export-Package: org.eclipse.jgit.iplog;version="0.9.0" +Import-Package: org.eclipse.jgit.diff;version="[0.9.4,0.10.0)", + org.eclipse.jgit.dircache;version="[0.9.4,0.10.0)", + org.eclipse.jgit.errors;version="[0.9.4,0.10.0)", + org.eclipse.jgit.lib;version="[0.9.4,0.10.0)", + org.eclipse.jgit.nls;version="[0.9.4,0.10.0)", + org.eclipse.jgit.revplot;version="[0.9.4,0.10.0)", + org.eclipse.jgit.revwalk;version="[0.9.4,0.10.0)", + org.eclipse.jgit.revwalk.filter;version="[0.9.4,0.10.0)", + org.eclipse.jgit.storage.file;version="[0.9.4,0.10.0)", + org.eclipse.jgit.transport;version="[0.9.4,0.10.0)", + org.eclipse.jgit.treewalk;version="[0.9.4,0.10.0)", + org.eclipse.jgit.treewalk.filter;version="[0.9.4,0.10.0)", + org.eclipse.jgit.util;version="[0.9.4,0.10.0)" +Export-Package: org.eclipse.jgit.iplog;version="0.9.4" diff --git a/org.eclipse.jgit.iplog/pom.xml b/org.eclipse.jgit.iplog/pom.xml index a780071f31..5ebf16b0f0 100644 --- a/org.eclipse.jgit.iplog/pom.xml +++ b/org.eclipse.jgit.iplog/pom.xml @@ -51,7 +51,7 @@ <parent> <groupId>org.eclipse.jgit</groupId> <artifactId>org.eclipse.jgit-parent</artifactId> - <version>0.9.0-SNAPSHOT</version> + <version>0.9.4-SNAPSHOT</version> </parent> <artifactId>org.eclipse.jgit.iplog</artifactId> diff --git a/org.eclipse.jgit.junit/META-INF/MANIFEST.MF b/org.eclipse.jgit.junit/META-INF/MANIFEST.MF index 9216a5ac47..1e2c094287 100644 --- a/org.eclipse.jgit.junit/META-INF/MANIFEST.MF +++ b/org.eclipse.jgit.junit/META-INF/MANIFEST.MF @@ -2,28 +2,28 @@ Manifest-Version: 1.0 Bundle-ManifestVersion: 2 Bundle-Name: %plugin_name Bundle-SymbolicName: org.eclipse.jgit.junit -Bundle-Version: 0.9.0.qualifier +Bundle-Version: 0.9.4.qualifier Bundle-Localization: plugin Bundle-Vendor: %provider_name Bundle-ActivationPolicy: lazy Bundle-RequiredExecutionEnvironment: J2SE-1.5 Import-Package: junit.framework;version="[4.0.0,5.0.0)", - org.eclipse.jgit.diff;version="[0.9.0,0.10.0)", - org.eclipse.jgit.dircache;version="[0.9.0,0.10.0)", - org.eclipse.jgit.errors;version="[0.9.0,0.10.0)", - org.eclipse.jgit.fnmatch;version="[0.9.0,0.10.0)", - org.eclipse.jgit.lib;version="[0.9.0,0.10.0)", - org.eclipse.jgit.merge;version="[0.9.0,0.10.0)", - org.eclipse.jgit.patch;version="[0.9.0,0.10.0)", - org.eclipse.jgit.revplot;version="[0.9.0,0.10.0)", - org.eclipse.jgit.revwalk;version="[0.9.0,0.10.0)", - org.eclipse.jgit.revwalk.filter;version="[0.9.0,0.10.0)", - org.eclipse.jgit.storage.file;version="[0.9.0,0.10.0)", - org.eclipse.jgit.storage.pack;version="[0.9.0,0.10.0)", - org.eclipse.jgit.transport;version="[0.9.0,0.10.0)", - org.eclipse.jgit.treewalk;version="[0.9.0,0.10.0)", - org.eclipse.jgit.treewalk.filter;version="[0.9.0,0.10.0)", - org.eclipse.jgit.util;version="[0.9.0,0.10.0)", - org.eclipse.jgit.util.io;version="[0.9.0,0.10.0)" -Export-Package: org.eclipse.jgit.junit;version="0.9.0" + org.eclipse.jgit.diff;version="[0.9.4,0.10.0)", + org.eclipse.jgit.dircache;version="[0.9.4,0.10.0)", + org.eclipse.jgit.errors;version="[0.9.4,0.10.0)", + org.eclipse.jgit.fnmatch;version="[0.9.4,0.10.0)", + org.eclipse.jgit.lib;version="[0.9.4,0.10.0)", + org.eclipse.jgit.merge;version="[0.9.4,0.10.0)", + org.eclipse.jgit.patch;version="[0.9.4,0.10.0)", + org.eclipse.jgit.revplot;version="[0.9.4,0.10.0)", + org.eclipse.jgit.revwalk;version="[0.9.4,0.10.0)", + org.eclipse.jgit.revwalk.filter;version="[0.9.4,0.10.0)", + org.eclipse.jgit.storage.file;version="[0.9.4,0.10.0)", + org.eclipse.jgit.storage.pack;version="[0.9.4,0.10.0)", + org.eclipse.jgit.transport;version="[0.9.4,0.10.0)", + org.eclipse.jgit.treewalk;version="[0.9.4,0.10.0)", + org.eclipse.jgit.treewalk.filter;version="[0.9.4,0.10.0)", + org.eclipse.jgit.util;version="[0.9.4,0.10.0)", + org.eclipse.jgit.util.io;version="[0.9.4,0.10.0)" +Export-Package: org.eclipse.jgit.junit;version="0.9.4" Require-Bundle: com.jcraft.jsch;bundle-version="[0.1.37,0.2.0)" diff --git a/org.eclipse.jgit.junit/pom.xml b/org.eclipse.jgit.junit/pom.xml index 0e806a2deb..a3889c09e6 100644 --- a/org.eclipse.jgit.junit/pom.xml +++ b/org.eclipse.jgit.junit/pom.xml @@ -52,7 +52,7 @@ <parent> <groupId>org.eclipse.jgit</groupId> <artifactId>org.eclipse.jgit-parent</artifactId> - <version>0.9.0-SNAPSHOT</version> + <version>0.9.4-SNAPSHOT</version> </parent> <artifactId>org.eclipse.jgit.junit</artifactId> diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.feature/feature.xml b/org.eclipse.jgit.packaging/org.eclipse.jgit.feature/feature.xml index 6a662bdc99..c383375086 100644 --- a/org.eclipse.jgit.packaging/org.eclipse.jgit.feature/feature.xml +++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.feature/feature.xml @@ -2,7 +2,7 @@ <feature id="org.eclipse.jgit" label="%featureName" - version="0.9.0.qualifier" + version="0.9.4.qualifier" provider-name="%providerName"> <description url="http://www.eclipse.org/jgit/"> diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.feature/pom.xml b/org.eclipse.jgit.packaging/org.eclipse.jgit.feature/pom.xml index 8144db8391..ed2bb9b074 100644 --- a/org.eclipse.jgit.packaging/org.eclipse.jgit.feature/pom.xml +++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.feature/pom.xml @@ -50,7 +50,7 @@ <parent> <groupId>org.eclipse.jgit</groupId> <artifactId>jgit.tycho.parent</artifactId> - <version>0.9.0-SNAPSHOT</version> + <version>0.9.4-SNAPSHOT</version> </parent> <artifactId>org.eclipse.jgit.feature</artifactId> @@ -62,7 +62,7 @@ <dependency> <groupId>org.eclipse.jgit</groupId> <artifactId>org.eclipse.jgit</artifactId> - <version>0.9.0-SNAPSHOT</version> + <version>0.9.4-SNAPSHOT</version> </dependency> </dependencies> diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.junit.feature/feature.xml b/org.eclipse.jgit.packaging/org.eclipse.jgit.junit.feature/feature.xml index d61e1cd483..b63814f20a 100644 --- a/org.eclipse.jgit.packaging/org.eclipse.jgit.junit.feature/feature.xml +++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.junit.feature/feature.xml @@ -2,7 +2,7 @@ <feature id="org.eclipse.jgit.junit" label="%featureName" - version="0.9.0.qualifier" + version="0.9.4.qualifier" provider-name="%providerName"> <description url="http://www.eclipse.org/jgit/"> diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.junit.feature/pom.xml b/org.eclipse.jgit.packaging/org.eclipse.jgit.junit.feature/pom.xml index 72bc3131d5..1693d8c199 100644 --- a/org.eclipse.jgit.packaging/org.eclipse.jgit.junit.feature/pom.xml +++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.junit.feature/pom.xml @@ -50,7 +50,7 @@ <parent> <groupId>org.eclipse.jgit</groupId> <artifactId>jgit.tycho.parent</artifactId> - <version>0.9.0-SNAPSHOT</version> + <version>0.9.4-SNAPSHOT</version> </parent> <artifactId>org.eclipse.jgit.junit.feature</artifactId> @@ -62,7 +62,7 @@ <dependency> <groupId>org.eclipse.jgit</groupId> <artifactId>org.eclipse.jgit.junit</artifactId> - <version>0.9.0-SNAPSHOT</version> + <version>0.9.4-SNAPSHOT</version> </dependency> </dependencies> diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.source.feature/feature.xml b/org.eclipse.jgit.packaging/org.eclipse.jgit.source.feature/feature.xml index 1e4fa8875e..a58592fc05 100644 --- a/org.eclipse.jgit.packaging/org.eclipse.jgit.source.feature/feature.xml +++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.source.feature/feature.xml @@ -2,7 +2,7 @@ <feature id="org.eclipse.jgit.source" label="%featureName" - version="0.9.0.qualifier" + version="0.9.4.qualifier" provider-name="%providerName"> <description url="http://www.eclipse.org/jgit/"> diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.source.feature/pom.xml b/org.eclipse.jgit.packaging/org.eclipse.jgit.source.feature/pom.xml index fae19933cb..2cc970bf5f 100644 --- a/org.eclipse.jgit.packaging/org.eclipse.jgit.source.feature/pom.xml +++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.source.feature/pom.xml @@ -50,7 +50,7 @@ <parent> <groupId>org.eclipse.jgit</groupId> <artifactId>jgit.tycho.parent</artifactId> - <version>0.9.0-SNAPSHOT</version> + <version>0.9.4-SNAPSHOT</version> </parent> <artifactId>org.eclipse.jgit.source.feature</artifactId> diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.updatesite/pom.xml b/org.eclipse.jgit.packaging/org.eclipse.jgit.updatesite/pom.xml index a60ec74b6d..2d4aef8996 100644 --- a/org.eclipse.jgit.packaging/org.eclipse.jgit.updatesite/pom.xml +++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.updatesite/pom.xml @@ -50,7 +50,7 @@ <parent> <groupId>org.eclipse.jgit</groupId> <artifactId>jgit.tycho.parent</artifactId> - <version>0.9.0-SNAPSHOT</version> + <version>0.9.4-SNAPSHOT</version> </parent> <artifactId>org.eclipse.jgit.updatesite</artifactId> @@ -58,18 +58,18 @@ <name>Eclipse JGit Plugin Update Site (Incubation)</name> <!-- see http://issues.sonatype.org/browse/TYCHO-313 --> - <version>0.9.0-SNAPSHOT</version> + <version>0.9.4-SNAPSHOT</version> <dependencies> <dependency> <groupId>org.eclipse.jgit</groupId> <artifactId>org.eclipse.jgit</artifactId> - <version>0.9.0-SNAPSHOT</version> + <version>0.9.4-SNAPSHOT</version> </dependency> <dependency> <groupId>org.eclipse.jgit</groupId> <artifactId>org.eclipse.jgit.junit</artifactId> - <version>0.9.0-SNAPSHOT</version> + <version>0.9.4-SNAPSHOT</version> </dependency> </dependencies> diff --git a/org.eclipse.jgit.packaging/pom.xml b/org.eclipse.jgit.packaging/pom.xml index cb545674e6..cdf08bcad4 100644 --- a/org.eclipse.jgit.packaging/pom.xml +++ b/org.eclipse.jgit.packaging/pom.xml @@ -53,7 +53,7 @@ <groupId>org.eclipse.jgit</groupId> <artifactId>jgit.tycho.parent</artifactId> - <version>0.9.0-SNAPSHOT</version> + <version>0.9.4-SNAPSHOT</version> <packaging>pom</packaging> <name>JGit Tycho Parent (Incubation)</name> @@ -83,7 +83,7 @@ <dependency> <groupId>org.eclipse.jgit</groupId> <artifactId>org.eclipse.jgit</artifactId> - <version>0.9.0-SNAPSHOT</version> + <version>0.9.4-SNAPSHOT</version> <classifier>sources</classifier> </dependency> </dependencies> diff --git a/org.eclipse.jgit.pgm/META-INF/MANIFEST.MF b/org.eclipse.jgit.pgm/META-INF/MANIFEST.MF index 771e113d3b..4fd557df14 100644 --- a/org.eclipse.jgit.pgm/META-INF/MANIFEST.MF +++ b/org.eclipse.jgit.pgm/META-INF/MANIFEST.MF @@ -2,32 +2,32 @@ Manifest-Version: 1.0 Bundle-ManifestVersion: 2 Bundle-Name: %plugin_name Bundle-SymbolicName: org.eclipse.jgit.pgm -Bundle-Version: 0.9.0.qualifier +Bundle-Version: 0.9.4.qualifier Bundle-Vendor: %provider_name Bundle-Localization: plugin Bundle-RequiredExecutionEnvironment: J2SE-1.5 -Import-Package: org.eclipse.jgit.api;version="[0.9.0,0.10.0)", - org.eclipse.jgit.api.errors;version="[0.9.0,0.10.0)", - org.eclipse.jgit.awtui;version="[0.9.0,0.10.0)", - org.eclipse.jgit.diff;version="[0.9.0,0.10.0)", - org.eclipse.jgit.dircache;version="[0.9.0,0.10.0)", - org.eclipse.jgit.errors;version="[0.9.0,0.10.0)", - org.eclipse.jgit.iplog;version="[0.9.0,0.10.0)", - org.eclipse.jgit.lib;version="[0.9.0,0.10.0)", - org.eclipse.jgit.nls;version="[0.9.0,0.10.0)", - org.eclipse.jgit.revplot;version="[0.9.0,0.10.0)", - org.eclipse.jgit.revwalk;version="[0.9.0,0.10.0)", - org.eclipse.jgit.revwalk.filter;version="[0.9.0,0.10.0)", - org.eclipse.jgit.storage.file;version="[0.9.0,0.10.0)", - org.eclipse.jgit.storage.pack;version="[0.9.0,0.10.0)", - org.eclipse.jgit.transport;version="[0.9.0,0.10.0)", - org.eclipse.jgit.treewalk;version="[0.9.0,0.10.0)", - org.eclipse.jgit.treewalk.filter;version="[0.9.0,0.10.0)", - org.eclipse.jgit.util;version="[0.9.0,0.10.0)", +Import-Package: org.eclipse.jgit.api;version="[0.9.4,0.10.0)", + org.eclipse.jgit.api.errors;version="[0.9.4,0.10.0)", + org.eclipse.jgit.awtui;version="[0.9.4,0.10.0)", + org.eclipse.jgit.diff;version="[0.9.4,0.10.0)", + org.eclipse.jgit.dircache;version="[0.9.4,0.10.0)", + org.eclipse.jgit.errors;version="[0.9.4,0.10.0)", + org.eclipse.jgit.iplog;version="[0.9.4,0.10.0)", + org.eclipse.jgit.lib;version="[0.9.4,0.10.0)", + org.eclipse.jgit.nls;version="[0.9.4,0.10.0)", + org.eclipse.jgit.revplot;version="[0.9.4,0.10.0)", + org.eclipse.jgit.revwalk;version="[0.9.4,0.10.0)", + org.eclipse.jgit.revwalk.filter;version="[0.9.4,0.10.0)", + org.eclipse.jgit.storage.file;version="[0.9.4,0.10.0)", + org.eclipse.jgit.storage.pack;version="[0.9.4,0.10.0)", + org.eclipse.jgit.transport;version="[0.9.4,0.10.0)", + org.eclipse.jgit.treewalk;version="[0.9.4,0.10.0)", + org.eclipse.jgit.treewalk.filter;version="[0.9.4,0.10.0)", + org.eclipse.jgit.util;version="[0.9.4,0.10.0)", org.kohsuke.args4j;version="[2.0.12,2.1.0)", org.kohsuke.args4j.spi;version="[2.0.12,2.1.0)" Bundle-ActivationPolicy: lazy -Export-Package: org.eclipse.jgit.pgm;version="0.9.0"; +Export-Package: org.eclipse.jgit.pgm;version="0.9.4"; uses:="org.eclipse.jgit.lib, org.eclipse.jgit.nls, org.eclipse.jgit.treewalk, diff --git a/org.eclipse.jgit.pgm/pom.xml b/org.eclipse.jgit.pgm/pom.xml index d803e00115..67a85aa7d4 100644 --- a/org.eclipse.jgit.pgm/pom.xml +++ b/org.eclipse.jgit.pgm/pom.xml @@ -50,7 +50,7 @@ <parent> <groupId>org.eclipse.jgit</groupId> <artifactId>org.eclipse.jgit-parent</artifactId> - <version>0.9.0-SNAPSHOT</version> + <version>0.9.4-SNAPSHOT</version> </parent> <artifactId>org.eclipse.jgit.pgm</artifactId> diff --git a/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/AbstractFetchCommand.java b/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/AbstractFetchCommand.java index 356966ab59..fd7fd4459b 100644 --- a/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/AbstractFetchCommand.java +++ b/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/AbstractFetchCommand.java @@ -49,6 +49,7 @@ package org.eclipse.jgit.pgm; import java.io.IOException; import java.io.PrintWriter; +import java.text.MessageFormat; import org.eclipse.jgit.lib.Constants; import org.eclipse.jgit.lib.ObjectId; @@ -104,16 +105,19 @@ abstract class AbstractFetchCommand extends TextBuiltin { else if (0 <= cr) s = cr; else { - writer.format(CLIText.get().remoteMessage, pkt); + writer.print(MessageFormat.format(CLIText.get().remoteMessage, + pkt)); writer.println(); break; } if (pkt.charAt(s) == '\r') { - writer.format(CLIText.get().remoteMessage, pkt.substring(0, s)); + writer.print(MessageFormat.format(CLIText.get().remoteMessage, + pkt.substring(0, s))); writer.print('\r'); } else { - writer.format(CLIText.get().remoteMessage, pkt.substring(0, s)); + writer.print(MessageFormat.format(CLIText.get().remoteMessage, + pkt.substring(0, s))); writer.println(); } diff --git a/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/Clone.java b/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/Clone.java index 1b1a8c28e8..1b04989670 100644 --- a/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/Clone.java +++ b/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/Clone.java @@ -114,7 +114,9 @@ class Clone extends AbstractFetchCommand { dst.getConfig().save(); db = dst; - out.format(CLIText.get().initializedEmptyGitRepositoryIn, gitdir.getAbsolutePath()); + out.print(MessageFormat.format( + CLIText.get().initializedEmptyGitRepositoryIn, gitdir + .getAbsolutePath())); out.println(); out.flush(); diff --git a/org.eclipse.jgit.test/META-INF/MANIFEST.MF b/org.eclipse.jgit.test/META-INF/MANIFEST.MF index c1ef787b15..dbf6bf2674 100644 --- a/org.eclipse.jgit.test/META-INF/MANIFEST.MF +++ b/org.eclipse.jgit.test/META-INF/MANIFEST.MF @@ -2,40 +2,40 @@ Manifest-Version: 1.0 Bundle-ManifestVersion: 2 Bundle-Name: %plugin_name Bundle-SymbolicName: org.eclipse.jgit.test -Bundle-Version: 0.9.0.qualifier +Bundle-Version: 0.9.4.qualifier Bundle-Localization: plugin Bundle-Vendor: %provider_name Bundle-ActivationPolicy: lazy Bundle-RequiredExecutionEnvironment: J2SE-1.5 Import-Package: junit.framework;version="[4.0.0,5.0.0)", junit.textui;version="[3.8.2,4.0.0)", - org.eclipse.jgit;version="[0.9.0,0.10.0)", - org.eclipse.jgit.api;version="[0.9.0,0.10.0)", - org.eclipse.jgit.api.errors;version="[0.9.0,0.10.0)", - org.eclipse.jgit.awtui;version="[0.9.0,0.10.0)", - org.eclipse.jgit.console;version="[0.9.0,0.10.0)", - org.eclipse.jgit.diff;version="[0.9.0,0.10.0)", - org.eclipse.jgit.dircache;version="[0.9.0,0.10.0)", - org.eclipse.jgit.errors;version="[0.9.0,0.10.0)", - org.eclipse.jgit.events;version="[0.9.0,0.10.0)", - org.eclipse.jgit.fnmatch;version="[0.9.0,0.10.0)", - org.eclipse.jgit.http.server;version="[0.9.0,0.10.0)", - org.eclipse.jgit.ignore;version="[0.9.0,0.10.0)", - org.eclipse.jgit.iplog;version="[0.9.0,0.10.0)", - org.eclipse.jgit.junit;version="[0.9.0,0.10.0)", - org.eclipse.jgit.lib;version="[0.9.0,0.10.0)", - org.eclipse.jgit.merge;version="[0.9.0,0.10.0)", - org.eclipse.jgit.nls;version="[0.9.0,0.10.0)", - org.eclipse.jgit.patch;version="[0.9.0,0.10.0)", - org.eclipse.jgit.pgm;version="[0.9.0,0.10.0)", - org.eclipse.jgit.revplot;version="[0.9.0,0.10.0)", - org.eclipse.jgit.revwalk;version="[0.9.0,0.10.0)", - org.eclipse.jgit.revwalk.filter;version="[0.9.0,0.10.0)", - org.eclipse.jgit.storage.file;version="[0.9.0,0.10.0)", - org.eclipse.jgit.storage.pack;version="[0.9.0,0.10.0)", - org.eclipse.jgit.transport;version="[0.9.0,0.10.0)", - org.eclipse.jgit.treewalk;version="[0.9.0,0.10.0)", - org.eclipse.jgit.treewalk.filter;version="[0.9.0,0.10.0)", - org.eclipse.jgit.util;version="[0.9.0,0.10.0)", - org.eclipse.jgit.util.io;version="[0.9.0,0.10.0)" + org.eclipse.jgit;version="[0.9.4,0.10.0)", + org.eclipse.jgit.api;version="[0.9.4,0.10.0)", + org.eclipse.jgit.api.errors;version="[0.9.4,0.10.0)", + org.eclipse.jgit.awtui;version="[0.9.4,0.10.0)", + org.eclipse.jgit.console;version="[0.9.4,0.10.0)", + org.eclipse.jgit.diff;version="[0.9.4,0.10.0)", + org.eclipse.jgit.dircache;version="[0.9.4,0.10.0)", + org.eclipse.jgit.errors;version="[0.9.4,0.10.0)", + org.eclipse.jgit.events;version="[0.9.4,0.10.0)", + org.eclipse.jgit.fnmatch;version="[0.9.4,0.10.0)", + org.eclipse.jgit.http.server;version="[0.9.4,0.10.0)", + org.eclipse.jgit.ignore;version="[0.9.4,0.10.0)", + org.eclipse.jgit.iplog;version="[0.9.4,0.10.0)", + org.eclipse.jgit.junit;version="[0.9.4,0.10.0)", + org.eclipse.jgit.lib;version="[0.9.4,0.10.0)", + org.eclipse.jgit.merge;version="[0.9.4,0.10.0)", + org.eclipse.jgit.nls;version="[0.9.4,0.10.0)", + org.eclipse.jgit.patch;version="[0.9.4,0.10.0)", + org.eclipse.jgit.pgm;version="[0.9.4,0.10.0)", + org.eclipse.jgit.revplot;version="[0.9.4,0.10.0)", + org.eclipse.jgit.revwalk;version="[0.9.4,0.10.0)", + org.eclipse.jgit.revwalk.filter;version="[0.9.4,0.10.0)", + org.eclipse.jgit.storage.file;version="[0.9.4,0.10.0)", + org.eclipse.jgit.storage.pack;version="[0.9.4,0.10.0)", + org.eclipse.jgit.transport;version="[0.9.4,0.10.0)", + org.eclipse.jgit.treewalk;version="[0.9.4,0.10.0)", + org.eclipse.jgit.treewalk.filter;version="[0.9.4,0.10.0)", + org.eclipse.jgit.util;version="[0.9.4,0.10.0)", + org.eclipse.jgit.util.io;version="[0.9.4,0.10.0)" Require-Bundle: com.jcraft.jsch;bundle-version="[0.1.37,0.2.0)" diff --git a/org.eclipse.jgit.test/pom.xml b/org.eclipse.jgit.test/pom.xml index 5a1f9e2219..953d1c22be 100644 --- a/org.eclipse.jgit.test/pom.xml +++ b/org.eclipse.jgit.test/pom.xml @@ -52,7 +52,7 @@ <parent> <groupId>org.eclipse.jgit</groupId> <artifactId>org.eclipse.jgit-parent</artifactId> - <version>0.9.0-SNAPSHOT</version> + <version>0.9.4-SNAPSHOT</version> </parent> <artifactId>org.eclipse.jgit.test</artifactId> diff --git a/org.eclipse.jgit.test/tst/org/eclipse/jgit/revplot/PlotCommitListTest.java b/org.eclipse.jgit.test/tst/org/eclipse/jgit/revplot/PlotCommitListTest.java new file mode 100644 index 0000000000..b8e1df7888 --- /dev/null +++ b/org.eclipse.jgit.test/tst/org/eclipse/jgit/revplot/PlotCommitListTest.java @@ -0,0 +1,306 @@ +/* + * Copyright (C) 2010, Christian Halstrick <christian.halstrick@sap.com> + * and other copyright owners as documented in the project's IP log. + * + * This program and the accompanying materials are made available + * under the terms of the Eclipse Distribution License v1.0 which + * accompanies this distribution, is reproduced below, and is + * available at http://www.eclipse.org/org/documents/edl-v10.php + * + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or + * without modification, are permitted provided that the following + * conditions are met: + * + * - Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * - Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials provided + * with the distribution. + * + * - Neither the name of the Eclipse Foundation, Inc. nor the + * names of its contributors may be used to endorse or promote + * products derived from this software without specific prior + * written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND + * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, + * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +package org.eclipse.jgit.revplot; + +import org.eclipse.jgit.revwalk.RevCommit; +import org.eclipse.jgit.revwalk.RevWalkTestCase; + +public class PlotCommitListTest extends RevWalkTestCase { + + class CommitListAssert { + private PlotCommitList<PlotLane> pcl; + private PlotCommit<PlotLane> current; + private int nextIndex = 0; + + CommitListAssert(PlotCommitList<PlotLane> pcl) { + this.pcl = pcl; + } + + public CommitListAssert commit(RevCommit id) { + assertTrue("Unexpected end of list at pos#"+nextIndex, pcl.size()>nextIndex); + current = pcl.get(nextIndex++); + assertEquals("Expected commit not found at pos#" + (nextIndex - 1), + id.getId(), current.getId()); + return this; + } + + public CommitListAssert lanePos(int pos) { + PlotLane lane = current.getLane(); + assertEquals("Position of lane of commit #" + (nextIndex - 1) + + " not as expected.", pos, lane.getPosition()); + return this; + } + + public CommitListAssert parents(RevCommit... parents) { + assertEquals("Number of parents of commit #" + (nextIndex - 1) + + " not as expected.", parents.length, + current.getParentCount()); + for (int i = 0; i < parents.length; i++) + assertEquals("Unexpected parent of commit #" + (nextIndex - 1), + parents[i], current.getParent(i)); + return this; + } + + public CommitListAssert noMoreCommits() { + assertEquals("Unexpected size of list", nextIndex, pcl.size()); + return this; + } + } + + @SuppressWarnings("boxing") + public void testLinear() throws Exception { + final RevCommit a = commit(); + final RevCommit b = commit(a); + final RevCommit c = commit(b); + + PlotWalk pw = new PlotWalk(db); + pw.markStart(pw.lookupCommit(c.getId())); + + PlotCommitList<PlotLane> pcl = new PlotCommitList<PlotLane>(); + pcl.source(pw); + pcl.fillTo(Integer.MAX_VALUE); + + CommitListAssert test = new CommitListAssert(pcl); + test.commit(c).lanePos(0).parents(b); + test.commit(b).lanePos(0).parents(a); + test.commit(a).lanePos(0).parents(); + test.noMoreCommits(); + } + + @SuppressWarnings("boxing") + public void testMerged() throws Exception { + final RevCommit a = commit(); + final RevCommit b = commit(a); + final RevCommit c = commit(a); + final RevCommit d = commit(b, c); + + PlotWalk pw = new PlotWalk(db); + pw.markStart(pw.lookupCommit(d.getId())); + + PlotCommitList<PlotLane> pcl = new PlotCommitList<PlotLane>(); + pcl.source(pw); + pcl.fillTo(Integer.MAX_VALUE); + + CommitListAssert test = new CommitListAssert(pcl); + test.commit(d).lanePos(0).parents(b, c); + test.commit(c).lanePos(0).parents(a); + test.commit(b).lanePos(1).parents(a); + test.commit(a).lanePos(0).parents(); + test.noMoreCommits(); + } + + @SuppressWarnings("boxing") + public void testSideBranch() throws Exception { + final RevCommit a = commit(); + final RevCommit b = commit(a); + final RevCommit c = commit(a); + + PlotWalk pw = new PlotWalk(db); + pw.markStart(pw.lookupCommit(b.getId())); + pw.markStart(pw.lookupCommit(c.getId())); + + PlotCommitList<PlotLane> pcl = new PlotCommitList<PlotLane>(); + pcl.source(pw); + pcl.fillTo(Integer.MAX_VALUE); + + CommitListAssert test = new CommitListAssert(pcl); + test.commit(c).lanePos(0).parents(a); + test.commit(b).lanePos(1).parents(a); + test.commit(a).lanePos(0).parents(); + test.noMoreCommits(); + } + + @SuppressWarnings("boxing") + public void test2SideBranches() throws Exception { + final RevCommit a = commit(); + final RevCommit b = commit(a); + final RevCommit c = commit(a); + final RevCommit d = commit(a); + + PlotWalk pw = new PlotWalk(db); + pw.markStart(pw.lookupCommit(b.getId())); + pw.markStart(pw.lookupCommit(c.getId())); + pw.markStart(pw.lookupCommit(d.getId())); + + PlotCommitList<PlotLane> pcl = new PlotCommitList<PlotLane>(); + pcl.source(pw); + pcl.fillTo(Integer.MAX_VALUE); + + CommitListAssert test = new CommitListAssert(pcl); + test.commit(d).lanePos(0).parents(a); + test.commit(c).lanePos(1).parents(a); + test.commit(b).lanePos(1).parents(a); + test.commit(a).lanePos(0).parents(); + test.noMoreCommits(); + } + + @SuppressWarnings("boxing") + public void testBug300282_1() throws Exception { + final RevCommit a = commit(); + final RevCommit b = commit(a); + final RevCommit c = commit(a); + final RevCommit d = commit(a); + final RevCommit e = commit(a); + final RevCommit f = commit(a); + final RevCommit g = commit(f); + + PlotWalk pw = new PlotWalk(db); + // TODO: when we add unnecessary commit's as tips (e.g. a commit which + // is a parent of another tip) the walk will return those commits twice. + // Find out why! + // pw.markStart(pw.lookupCommit(a.getId())); + pw.markStart(pw.lookupCommit(b.getId())); + pw.markStart(pw.lookupCommit(c.getId())); + pw.markStart(pw.lookupCommit(d.getId())); + pw.markStart(pw.lookupCommit(e.getId())); + // pw.markStart(pw.lookupCommit(f.getId())); + pw.markStart(pw.lookupCommit(g.getId())); + + PlotCommitList<PlotLane> pcl = new PlotCommitList<PlotLane>(); + pcl.source(pw); + pcl.fillTo(Integer.MAX_VALUE); + + CommitListAssert test = new CommitListAssert(pcl); + test.commit(g).lanePos(0).parents(f); + test.commit(f).lanePos(0).parents(a); + test.commit(e).lanePos(1).parents(a); + test.commit(d).lanePos(1).parents(a); + test.commit(c).lanePos(1).parents(a); + test.commit(b).lanePos(1).parents(a); + test.commit(a).lanePos(0).parents(); + test.noMoreCommits(); + } + + // test the history of the egit project between 9fdaf3c1 and e76ad9170f + public void testEgitHistory() throws Exception { + final RevCommit merge_fix = commit(); + final RevCommit add_simple = commit(merge_fix); + final RevCommit remove_unused = commit(merge_fix); + final RevCommit merge_remove = commit(add_simple, remove_unused); + final RevCommit resolve_handler = commit(merge_fix); + final RevCommit clear_repositorycache = commit(merge_remove); + final RevCommit add_Maven = commit(clear_repositorycache); + final RevCommit use_remote = commit(clear_repositorycache); + final RevCommit findToolBar_layout = commit(clear_repositorycache); + final RevCommit merge_add_Maven = commit(findToolBar_layout, add_Maven); + final RevCommit update_eclipse_iplog = commit(merge_add_Maven); + final RevCommit changeset_implementation = commit(clear_repositorycache); + final RevCommit merge_use_remote = commit(update_eclipse_iplog, + use_remote); + final RevCommit disable_source = commit(merge_use_remote); + final RevCommit update_eclipse_iplog2 = commit(merge_use_remote); + final RevCommit merge_disable_source = commit(update_eclipse_iplog2, + disable_source); + final RevCommit merge_changeset_implementation = commit( + merge_disable_source, changeset_implementation); + final RevCommit clone_operation = commit(merge_disable_source, + merge_changeset_implementation); + final RevCommit update_eclipse = commit(add_Maven); + final RevCommit merge_resolve_handler = commit(clone_operation, + resolve_handler); + final RevCommit disable_comment = commit(clone_operation); + final RevCommit merge_disable_comment = commit(merge_resolve_handler, + disable_comment); + final RevCommit fix_broken = commit(merge_disable_comment); + final RevCommit add_a_clear = commit(fix_broken); + final RevCommit merge_update_eclipse = commit(add_a_clear, + update_eclipse); + final RevCommit sort_roots = commit(merge_update_eclipse); + final RevCommit fix_logged_npe = commit(merge_changeset_implementation); + final RevCommit merge_fixed_logged_npe = commit(sort_roots, + fix_logged_npe); + + PlotWalk pw = new PlotWalk(db); + pw.markStart(pw.lookupCommit(merge_fixed_logged_npe.getId())); + + PlotCommitList<PlotLane> pcl = new PlotCommitList<PlotLane>(); + pcl.source(pw); + pcl.fillTo(Integer.MAX_VALUE); + + CommitListAssert test = new CommitListAssert(pcl); + + test.commit(merge_fixed_logged_npe).parents(sort_roots, fix_logged_npe) + .lanePos(0); + test.commit(fix_logged_npe).parents(merge_changeset_implementation) + .lanePos(0); + test.commit(sort_roots).parents(merge_update_eclipse).lanePos(1); + test.commit(merge_update_eclipse).parents(add_a_clear, update_eclipse) + .lanePos(1); + test.commit(add_a_clear).parents(fix_broken).lanePos(1); + test.commit(fix_broken).parents(merge_disable_comment).lanePos(1); + test.commit(merge_disable_comment) + .parents(merge_resolve_handler, disable_comment).lanePos(1); + test.commit(disable_comment).parents(clone_operation).lanePos(1); + test.commit(merge_resolve_handler) + .parents(clone_operation, resolve_handler).lanePos(2); + test.commit(update_eclipse).parents(add_Maven).lanePos(3); + test.commit(clone_operation) + .parents(merge_disable_source, merge_changeset_implementation) + .lanePos(1); + test.commit(merge_changeset_implementation) + .parents(merge_disable_source, changeset_implementation) + .lanePos(0); + test.commit(merge_disable_source) + .parents(update_eclipse_iplog2, disable_source).lanePos(1); + test.commit(update_eclipse_iplog2).parents(merge_use_remote).lanePos(0); + test.commit(disable_source).parents(merge_use_remote).lanePos(1); + test.commit(merge_use_remote).parents(update_eclipse_iplog, use_remote) + .lanePos(0); + test.commit(changeset_implementation).parents(clear_repositorycache) + .lanePos(2); + test.commit(update_eclipse_iplog).parents(merge_add_Maven).lanePos(0); + test.commit(merge_add_Maven).parents(findToolBar_layout, add_Maven) + .lanePos(0); + test.commit(findToolBar_layout).parents(clear_repositorycache) + .lanePos(0); + test.commit(use_remote).parents(clear_repositorycache).lanePos(1); + test.commit(add_Maven).parents(clear_repositorycache).lanePos(3); + test.commit(clear_repositorycache).parents(merge_remove).lanePos(2); + test.commit(resolve_handler).parents(merge_fix).lanePos(4); + test.commit(merge_remove).parents(add_simple, remove_unused).lanePos(2); + test.commit(remove_unused).parents(merge_fix).lanePos(0); + test.commit(add_simple).parents(merge_fix).lanePos(1); + test.commit(merge_fix).parents().lanePos(3); + test.noMoreCommits(); + } +} diff --git a/org.eclipse.jgit.ui/META-INF/MANIFEST.MF b/org.eclipse.jgit.ui/META-INF/MANIFEST.MF index 1649731c0d..3881b4dc88 100644 --- a/org.eclipse.jgit.ui/META-INF/MANIFEST.MF +++ b/org.eclipse.jgit.ui/META-INF/MANIFEST.MF @@ -3,14 +3,14 @@ Manifest-Version: 1.0 Bundle-ManifestVersion: 2 Bundle-Name: %plugin_name Bundle-SymbolicName: org.eclipse.jgit.ui -Bundle-Version: 0.9.0.qualifier +Bundle-Version: 0.9.4.qualifier Bundle-Vendor: %provider_name Bundle-RequiredExecutionEnvironment: J2SE-1.5 -Export-Package: org.eclipse.jgit.awtui;version="0.9.0" -Import-Package: org.eclipse.jgit.lib;version="[0.9.0,0.10.0)", - org.eclipse.jgit.nls;version="[0.9.0,0.10.0)", - org.eclipse.jgit.revplot;version="[0.9.0,0.10.0)", - org.eclipse.jgit.revwalk;version="[0.9.0,0.10.0)", - org.eclipse.jgit.transport;version="[0.9.0,0.10.0)", - org.eclipse.jgit.util;version="[0.9.0,0.10.0)" +Export-Package: org.eclipse.jgit.awtui;version="0.9.4" +Import-Package: org.eclipse.jgit.lib;version="[0.9.4,0.10.0)", + org.eclipse.jgit.nls;version="[0.9.4,0.10.0)", + org.eclipse.jgit.revplot;version="[0.9.4,0.10.0)", + org.eclipse.jgit.revwalk;version="[0.9.4,0.10.0)", + org.eclipse.jgit.transport;version="[0.9.4,0.10.0)", + org.eclipse.jgit.util;version="[0.9.4,0.10.0)" Require-Bundle: com.jcraft.jsch;bundle-version="[0.1.37,0.2.0)" diff --git a/org.eclipse.jgit.ui/pom.xml b/org.eclipse.jgit.ui/pom.xml index 6ac04cd7c6..a10f69aad7 100644 --- a/org.eclipse.jgit.ui/pom.xml +++ b/org.eclipse.jgit.ui/pom.xml @@ -52,7 +52,7 @@ <parent> <groupId>org.eclipse.jgit</groupId> <artifactId>org.eclipse.jgit-parent</artifactId> - <version>0.9.0-SNAPSHOT</version> + <version>0.9.4-SNAPSHOT</version> </parent> <artifactId>org.eclipse.jgit.ui</artifactId> diff --git a/org.eclipse.jgit/META-INF/MANIFEST.MF b/org.eclipse.jgit/META-INF/MANIFEST.MF index 0c4d102e7f..d3c6055012 100644 --- a/org.eclipse.jgit/META-INF/MANIFEST.MF +++ b/org.eclipse.jgit/META-INF/MANIFEST.MF @@ -2,32 +2,32 @@ Manifest-Version: 1.0 Bundle-ManifestVersion: 2 Bundle-Name: %plugin_name Bundle-SymbolicName: org.eclipse.jgit -Bundle-Version: 0.9.0.qualifier +Bundle-Version: 0.9.4.qualifier Bundle-Localization: plugin Bundle-Vendor: %provider_name -Export-Package: org.eclipse.jgit;version="0.9.0", - org.eclipse.jgit.api;version="0.9.0", - org.eclipse.jgit.api.errors;version="0.9.0", - org.eclipse.jgit.diff;version="0.9.0", - org.eclipse.jgit.dircache;version="0.9.0", - org.eclipse.jgit.errors;version="0.9.0", - org.eclipse.jgit.events;version="0.9.0", - org.eclipse.jgit.fnmatch;version="0.9.0", - org.eclipse.jgit.ignore;version="0.9.0", - org.eclipse.jgit.lib;version="0.9.0", - org.eclipse.jgit.merge;version="0.9.0", - org.eclipse.jgit.nls;version="0.9.0", - org.eclipse.jgit.patch;version="0.9.0", - org.eclipse.jgit.revplot;version="0.9.0", - org.eclipse.jgit.revwalk;version="0.9.0", - org.eclipse.jgit.revwalk.filter;version="0.9.0", - org.eclipse.jgit.storage.file;version="0.9.0", - org.eclipse.jgit.storage.pack;version="0.9.0", - org.eclipse.jgit.transport;version="0.9.0", - org.eclipse.jgit.treewalk;version="0.9.0", - org.eclipse.jgit.treewalk.filter;version="0.9.0", - org.eclipse.jgit.util;version="0.9.0", - org.eclipse.jgit.util.io;version="0.9.0" +Export-Package: org.eclipse.jgit;version="0.9.4", + org.eclipse.jgit.api;version="0.9.4", + org.eclipse.jgit.api.errors;version="0.9.4", + org.eclipse.jgit.diff;version="0.9.4", + org.eclipse.jgit.dircache;version="0.9.4", + org.eclipse.jgit.errors;version="0.9.4", + org.eclipse.jgit.events;version="0.9.4", + org.eclipse.jgit.fnmatch;version="0.9.4", + org.eclipse.jgit.ignore;version="0.9.4", + org.eclipse.jgit.lib;version="0.9.4", + org.eclipse.jgit.merge;version="0.9.4", + org.eclipse.jgit.nls;version="0.9.4", + org.eclipse.jgit.patch;version="0.9.4", + org.eclipse.jgit.revplot;version="0.9.4", + org.eclipse.jgit.revwalk;version="0.9.4", + org.eclipse.jgit.revwalk.filter;version="0.9.4", + org.eclipse.jgit.storage.file;version="0.9.4", + org.eclipse.jgit.storage.pack;version="0.9.4", + org.eclipse.jgit.transport;version="0.9.4", + org.eclipse.jgit.treewalk;version="0.9.4", + org.eclipse.jgit.treewalk.filter;version="0.9.4", + org.eclipse.jgit.util;version="0.9.4", + org.eclipse.jgit.util.io;version="0.9.4" Bundle-ActivationPolicy: lazy Bundle-RequiredExecutionEnvironment: J2SE-1.5 Require-Bundle: com.jcraft.jsch;bundle-version="[0.1.37,0.2.0)" diff --git a/org.eclipse.jgit/pom.xml b/org.eclipse.jgit/pom.xml index fc8e72e8e4..0f6f12a23a 100644 --- a/org.eclipse.jgit/pom.xml +++ b/org.eclipse.jgit/pom.xml @@ -53,7 +53,7 @@ <parent> <groupId>org.eclipse.jgit</groupId> <artifactId>org.eclipse.jgit-parent</artifactId> - <version>0.9.0-SNAPSHOT</version> + <version>0.9.4-SNAPSHOT</version> </parent> <artifactId>org.eclipse.jgit</artifactId> diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/revplot/PlotCommitList.java b/org.eclipse.jgit/src/org/eclipse/jgit/revplot/PlotCommitList.java index 55d0206c02..6ffa0336aa 100644 --- a/org.eclipse.jgit/src/org/eclipse/jgit/revplot/PlotCommitList.java +++ b/org.eclipse.jgit/src/org/eclipse/jgit/revplot/PlotCommitList.java @@ -1,5 +1,6 @@ /* - * Copyright (C) 2008, Shawn O. Pearce <spearce@spearce.org> + * Copyright (C) 2008, Shawn O. Pearce <spearce@spearce.org>, + * Copyright (C) 2010, Christian Halstrick <christian.halstrick@sap.com> * and other copyright owners as documented in the project's IP log. * * This program and the accompanying materials are made available @@ -44,6 +45,7 @@ package org.eclipse.jgit.revplot; import java.text.MessageFormat; +import java.util.BitSet; import java.util.Collection; import java.util.HashSet; import java.util.TreeSet; @@ -68,17 +70,17 @@ public class PlotCommitList<L extends PlotLane> extends RevCommitList<PlotCommit<L>> { static final int MAX_LENGTH = 25; - private int lanesAllocated; + private int positionsAllocated; - private final TreeSet<Integer> freeLanes = new TreeSet<Integer>(); + private final TreeSet<Integer> freePositions = new TreeSet<Integer>(); private final HashSet<PlotLane> activeLanes = new HashSet<PlotLane>(32); @Override public void clear() { super.clear(); - lanesAllocated = 0; - freeLanes.clear(); + positionsAllocated = 0; + freePositions.clear(); activeLanes.clear(); } @@ -131,42 +133,104 @@ public class PlotCommitList<L extends PlotLane> extends c.lane = nextFreeLane(); activeLanes.add(c.lane); } - for (int r = index - 1; r >= 0; r--) { final PlotCommit rObj = get(r); if (rObj == c) break; rObj.addPassingLane(c.lane); } + currCommit.lane = c.lane; } else { // More than one child, or our child is a merge. // Use a different lane. // + // Process all our children. Especially important when there is more + // than one child (e.g. a commit is processed where other branches + // fork out). For each child the following is done + // 1. If no lane was assigned to the child a new lane is created and + // assigned + // 2. The lane of the child is closed. If this frees a position, + // this position will be added freePositions list. + // If we have multiple children which where previously not on a lane + // each such child will get his own new lane but all those new lanes + // will be on the same position. We have to take care that not + // multiple newly created (in step 1) lanes occupy that position on + // which the + // parent's lane will be on. Therefore we delay closing the lane + // with the parents position until all children are processed. + + // The lane on that position the current commit will be on + PlotLane reservedLane = null; + for (int i = 0; i < nChildren; i++) { final PlotCommit c = currCommit.children[i]; - if (activeLanes.remove(c.lane)) { - recycleLane((L) c.lane); - freeLanes.add(Integer.valueOf(c.lane.getPosition())); - } + // don't forget to position all of your children if they are + // not already positioned. + if (c.lane == null) { + c.lane = nextFreeLane(); + activeLanes.add(c.lane); + if (reservedLane != null) + closeLane(c.lane); + else + reservedLane = c.lane; + } else if (reservedLane == null && activeLanes.contains(c.lane)) + reservedLane = c.lane; + else + closeLane(c.lane); } + // finally all children are processed. We can close the lane on that + // position our current commit will be on. + if (reservedLane != null) + closeLane(reservedLane); + currCommit.lane = nextFreeLane(); activeLanes.add(currCommit.lane); + // take care: when connecting yourself to your child make sure that + // you will not be located on a lane on which a passed commit is + // located on. Otherwise we would have to draw a line through a + // commit. int remaining = nChildren; + BitSet blockedPositions = new BitSet(); for (int r = index - 1; r >= 0; r--) { final PlotCommit rObj = get(r); if (currCommit.isChild(rObj)) { if (--remaining == 0) break; } - rObj.addPassingLane(currCommit.lane); + if (rObj != null) { + PlotLane lane = rObj.getLane(); + if (lane != null) + blockedPositions.set(lane.getPosition()); + rObj.addPassingLane(currCommit.lane); + } + } + // Now let's check whether we have to reposition the lane + if (blockedPositions.get(currCommit.lane.getPosition())) { + int newPos = -1; + for (Integer pos : freePositions) + if (!blockedPositions.get(pos)) { + newPos = pos; + break; + } + if (newPos == -1) + newPos = positionsAllocated++; + freePositions.add(currCommit.lane.getPosition()); + currCommit.lane.position = newPos; } } } + private void closeLane(PlotLane lane) { + recycleLane((L) lane); + if (activeLanes.remove(lane)) { + freePositions.add(Integer.valueOf(lane.getPosition())); + } + } + private void setupChildren(final PlotCommit<L> currCommit) { final int nParents = currCommit.getParentCount(); for (int i = 0; i < nParents; i++) @@ -175,12 +239,12 @@ public class PlotCommitList<L extends PlotLane> extends private PlotLane nextFreeLane() { final PlotLane p = createLane(); - if (freeLanes.isEmpty()) { - p.position = lanesAllocated++; + if (freePositions.isEmpty()) { + p.position = positionsAllocated++; } else { - final Integer min = freeLanes.first(); + final Integer min = freePositions.first(); p.position = min.intValue(); - freeLanes.remove(min); + freePositions.remove(min); } return p; } diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/storage/file/CachedObjectDirectory.java b/org.eclipse.jgit/src/org/eclipse/jgit/storage/file/CachedObjectDirectory.java index f0159f626f..a5762b61ee 100644 --- a/org.eclipse.jgit/src/org/eclipse/jgit/storage/file/CachedObjectDirectory.java +++ b/org.eclipse.jgit/src/org/eclipse/jgit/storage/file/CachedObjectDirectory.java @@ -213,8 +213,22 @@ class CachedObjectDirectory extends FileObjectDatabase { } @Override - boolean insertUnpackedObject(File tmp, ObjectId objectId, boolean force) { - return wrapped.insertUnpackedObject(tmp, objectId, force); + InsertLooseObjectResult insertUnpackedObject(File tmp, ObjectId objectId, + boolean createDuplicate) { + InsertLooseObjectResult result = wrapped.insertUnpackedObject(tmp, + objectId, createDuplicate); + switch (result) { + case INSERTED: + case EXISTS_LOOSE: + if (!unpackedObjects.contains(objectId)) + unpackedObjects.add(objectId); + break; + + case EXISTS_PACKED: + case FAILURE: + break; + } + return result; } @Override diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/storage/file/FileObjectDatabase.java b/org.eclipse.jgit/src/org/eclipse/jgit/storage/file/FileObjectDatabase.java index 29c7a25312..8bd3751010 100644 --- a/org.eclipse.jgit/src/org/eclipse/jgit/storage/file/FileObjectDatabase.java +++ b/org.eclipse.jgit/src/org/eclipse/jgit/storage/file/FileObjectDatabase.java @@ -57,6 +57,10 @@ import org.eclipse.jgit.storage.pack.ObjectToPack; import org.eclipse.jgit.storage.pack.PackWriter; abstract class FileObjectDatabase extends ObjectDatabase { + static enum InsertLooseObjectResult { + INSERTED, EXISTS_PACKED, EXISTS_LOOSE, FAILURE; + } + @Override public ObjectReader newReader() { return new WindowCursor(this); @@ -249,7 +253,8 @@ abstract class FileObjectDatabase extends ObjectDatabase { abstract long getObjectSize2(WindowCursor curs, String objectName, AnyObjectId objectId) throws IOException; - abstract boolean insertUnpackedObject(File tmp, ObjectId id, boolean force); + abstract InsertLooseObjectResult insertUnpackedObject(File tmp, + ObjectId id, boolean createDuplicate); abstract FileObjectDatabase newCachedFileObjectDatabase(); diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/storage/file/ObjectDirectory.java b/org.eclipse.jgit/src/org/eclipse/jgit/storage/file/ObjectDirectory.java index 372a97813e..e7ccba0820 100644 --- a/org.eclipse.jgit/src/org/eclipse/jgit/storage/file/ObjectDirectory.java +++ b/org.eclipse.jgit/src/org/eclipse/jgit/storage/file/ObjectDirectory.java @@ -455,23 +455,33 @@ public class ObjectDirectory extends FileObjectDatabase { } @Override - boolean insertUnpackedObject(File tmp, ObjectId id, boolean force) { - if (!force && has(id)) { - // Object is already in the repository, remove temporary file. - // + InsertLooseObjectResult insertUnpackedObject(File tmp, ObjectId id, + boolean createDuplicate) { + // If the object is already in the repository, remove temporary file. + // + if (unpackedObjectCache.isUnpacked(id)) { tmp.delete(); - return true; + return InsertLooseObjectResult.EXISTS_LOOSE; } + if (!createDuplicate && has(id)) { + tmp.delete(); + return InsertLooseObjectResult.EXISTS_PACKED; + } + tmp.setReadOnly(); final File dst = fileFor(id); - if (force && dst.exists()) { + if (dst.exists()) { + // We want to be extra careful and avoid replacing an object + // that already exists. We can't be sure renameTo() would + // fail on all platforms if dst exists, so we check first. + // tmp.delete(); - return true; + return InsertLooseObjectResult.EXISTS_LOOSE; } if (tmp.renameTo(dst)) { unpackedObjectCache.add(id); - return true; + return InsertLooseObjectResult.INSERTED; } // Maybe the directory doesn't exist yet as the object @@ -481,12 +491,12 @@ public class ObjectDirectory extends FileObjectDatabase { dst.getParentFile().mkdir(); if (tmp.renameTo(dst)) { unpackedObjectCache.add(id); - return true; + return InsertLooseObjectResult.INSERTED; } - if (!force && has(id)) { + if (!createDuplicate && has(id)) { tmp.delete(); - return true; + return InsertLooseObjectResult.EXISTS_PACKED; } // The object failed to be renamed into its proper @@ -495,7 +505,7 @@ public class ObjectDirectory extends FileObjectDatabase { // fail. // tmp.delete(); - return false; + return InsertLooseObjectResult.FAILURE; } boolean tryAgain1() { diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/storage/file/ObjectDirectoryInserter.java b/org.eclipse.jgit/src/org/eclipse/jgit/storage/file/ObjectDirectoryInserter.java index d92285de8c..074ebb9617 100644 --- a/org.eclipse.jgit/src/org/eclipse/jgit/storage/file/ObjectDirectoryInserter.java +++ b/org.eclipse.jgit/src/org/eclipse/jgit/storage/file/ObjectDirectoryInserter.java @@ -83,9 +83,18 @@ class ObjectDirectoryInserter extends ObjectInserter { final MessageDigest md = digest(); final File tmp = toTemp(md, type, len, is); final ObjectId id = ObjectId.fromRaw(md.digest()); - if (db.insertUnpackedObject(tmp, id, false /* no duplicate */)) + + switch (db.insertUnpackedObject(tmp, id, false /* no duplicate */)) { + case INSERTED: + case EXISTS_PACKED: + case EXISTS_LOOSE: return id; + case FAILURE: + default: + break; + } + final File dst = db.fileFor(id); throw new ObjectWritingException("Unable to create new object: " + dst); } @@ -50,7 +50,7 @@ <groupId>org.eclipse.jgit</groupId> <artifactId>org.eclipse.jgit-parent</artifactId> <packaging>pom</packaging> - <version>0.9.0-SNAPSHOT</version> + <version>0.9.4-SNAPSHOT</version> <name>JGit - Parent</name> <url>${jgit-url}</url> |