diff options
| author | Harsh Shandilya <me@msfjarvis.dev> | 2022-01-25 13:12:23 +0530 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-01-25 13:12:23 +0530 |
| commit | 6c7a066ea6974e9e81f5889036e42c58d0785392 (patch) | |
| tree | b11255e13cadbd2695e105a0891db1d5f7c31cd8 /app/src/main/java/dev/msfjarvis/aps/util | |
| parent | e7fbcd4f855da053fca4c5592bc84b682ef92963 (diff) | |
| download | HardenedPass-6c7a066ea6974e9e81f5889036e42c58d0785392.tar.gz HardenedPass-6c7a066ea6974e9e81f5889036e42c58d0785392.zip | |
Add the ability to run garbage collection on the internal Git repository (#1683)
Diffstat (limited to 'app/src/main/java/dev/msfjarvis/aps/util')
| -rw-r--r-- | app/src/main/java/dev/msfjarvis/aps/util/git/operation/GcOperation.kt | 22 | ||||
| -rw-r--r-- | app/src/main/java/dev/msfjarvis/aps/util/git/operation/GitOperation.kt | 4 |
2 files changed, 26 insertions, 0 deletions
diff --git a/app/src/main/java/dev/msfjarvis/aps/util/git/operation/GcOperation.kt b/app/src/main/java/dev/msfjarvis/aps/util/git/operation/GcOperation.kt new file mode 100644 index 00000000..c070027e --- /dev/null +++ b/app/src/main/java/dev/msfjarvis/aps/util/git/operation/GcOperation.kt @@ -0,0 +1,22 @@ +/* + * Copyright © 2014-2022 The Android Password Store Authors. All Rights Reserved. + * SPDX-License-Identifier: GPL-3.0-only + */ + +package dev.msfjarvis.aps.util.git.operation + +import dev.msfjarvis.aps.util.git.sshj.ContinuationContainerActivity +import org.eclipse.jgit.api.GitCommand + +/** + * Run an aggressive garbage collection job on the repository, expiring every loose object to + * achieve the best compression. + */ +class GcOperation( + callingActivity: ContinuationContainerActivity, +) : GitOperation(callingActivity) { + + override val requiresAuth: Boolean = false + override val commands: Array<GitCommand<out Any>> = + arrayOf(git.gc().setAggressive(true).setExpire(null)) +} diff --git a/app/src/main/java/dev/msfjarvis/aps/util/git/operation/GitOperation.kt b/app/src/main/java/dev/msfjarvis/aps/util/git/operation/GitOperation.kt index 141de348..fe464069 100644 --- a/app/src/main/java/dev/msfjarvis/aps/util/git/operation/GitOperation.kt +++ b/app/src/main/java/dev/msfjarvis/aps/util/git/operation/GitOperation.kt @@ -57,7 +57,11 @@ import org.eclipse.jgit.transport.URIish */ abstract class GitOperation(protected val callingActivity: FragmentActivity) { + /** List of [GitCommand]s that are executed by an operation. */ abstract val commands: Array<GitCommand<out Any>> + + /** Whether the operation requires authentication or not. */ + open val requiresAuth: Boolean = true private val hostKeyFile = callingActivity.filesDir.resolve(".host_key") private var sshSessionFactory: SshjSessionFactory? = null private val hiltEntryPoint = |
