aboutsummaryrefslogtreecommitdiffstats
path: root/org.eclipse.jgit/src/org/eclipse/jgit/api/Git.java
diff options
context:
space:
mode:
Diffstat (limited to 'org.eclipse.jgit/src/org/eclipse/jgit/api/Git.java')
-rw-r--r--org.eclipse.jgit/src/org/eclipse/jgit/api/Git.java20
1 files changed, 20 insertions, 0 deletions
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/api/Git.java b/org.eclipse.jgit/src/org/eclipse/jgit/api/Git.java
index 08ab88005d..983b6b552e 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/api/Git.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/api/Git.java
@@ -125,6 +125,26 @@ public class Git {
}
/**
+ * Frees resources held by the underlying {@link Repository} instance. It is
+ * recommended to call this method as soon as you don't need a reference to
+ * this {@link Git} instance and the underlying {@link Repository} instance
+ * anymore. This method closes the underlying object and ref databases. This
+ * will free memory and file handles. E.g. on Windows the repository will
+ * keep file handles on pack files unless you call this method. Such open
+ * file handles may for example prevent that the repository folder in the
+ * filesystem can be deleted.
+ * <p>
+ * After calling close() you should not use this {@link Git} instance and
+ * the underlying {@link Repository} instance anymore.
+ *
+ * @since 3.2
+ */
+ public void close() {
+ if (repo != null)
+ repo.close();
+ }
+
+ /**
* Returns a command object to execute a {@code clone} command
*
* @see <a