Browse Source

Allow to get repo statistics from GarbageCollectionCommand before gc

When running the garbage collection for a repository it is often
interesting to compare the repository statistics from before and after
the garbage collection to understand the effect of the garbage
collection. This is why it makes sense that the
GarbageCollectionCommand provides a method to retrieve the repository
statistics before running the garbage collection.

So far without running the garbage collection the repository statistics
can only be retrieved by using JGit internal classes. This is what EGit
and Gerrit do at the moment, but it would be better to have an API for
this.

Change-Id: Id7e579157e9fbef5cfd1fc9f97ada45f0ca8c379
Signed-off-by: Edwin Kempin <edwin.kempin@sap.com>
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
stable-3.0
Edwin Kempin 12 years ago committed by Matthias Sohn
parent
commit
b37b1c9165
  1. 1
      org.eclipse.jgit/resources/org/eclipse/jgit/internal/JGitText.properties
  2. 18
      org.eclipse.jgit/src/org/eclipse/jgit/api/GarbageCollectCommand.java
  3. 1
      org.eclipse.jgit/src/org/eclipse/jgit/internal/JGitText.java

1
org.eclipse.jgit/resources/org/eclipse/jgit/internal/JGitText.properties

@ -124,6 +124,7 @@ couldNotCheckOutBecauseOfConflicts=Could not check out because of conflicts
couldNotDeleteLockFileShouldNotHappen=Could not delete lock file. Should not happen
couldNotDeleteTemporaryIndexFileShouldNotHappen=Could not delete temporary index file. Should not happen
couldNotGetAdvertisedRef=Could not get advertised Ref for branch {0}
couldNotGetRepoStatistics=Could not get repository statistics
couldNotLockHEAD=Could not lock HEAD
couldNotReadIndexInOneGo=Could not read index in one go, only {0} out of {1} read
couldNotReadObjectWhileParsingCommit=Could not read an object while parsing commit {0}

18
org.eclipse.jgit/src/org/eclipse/jgit/api/GarbageCollectCommand.java

@ -129,6 +129,24 @@ public class GarbageCollectCommand extends GitCommand<Properties> {
}
}
/**
* Computes and returns the repository statistics.
*
* @return the repository statistics
* @throws GitAPIException
* thrown if the repository statistics cannot be computed
* @since 3.0
*/
public Properties getStatistics() throws GitAPIException {
try {
GC gc = new GC((FileRepository) repo);
return toProperties(gc.getStatistics());
} catch (IOException e) {
throw new JGitInternalException(
JGitText.get().couldNotGetRepoStatistics, e);
}
}
@SuppressWarnings("boxing")
private static Properties toProperties(RepoStatistics stats) {
Properties p = new Properties();

1
org.eclipse.jgit/src/org/eclipse/jgit/internal/JGitText.java

@ -186,6 +186,7 @@ public class JGitText extends TranslationBundle {
/***/ public String couldNotDeleteLockFileShouldNotHappen;
/***/ public String couldNotDeleteTemporaryIndexFileShouldNotHappen;
/***/ public String couldNotGetAdvertisedRef;
/***/ public String couldNotGetRepoStatistics;
/***/ public String couldNotLockHEAD;
/***/ public String couldNotReadIndexInOneGo;
/***/ public String couldNotReadObjectWhileParsingCommit;

Loading…
Cancel
Save