summaryrefslogtreecommitdiff
path: root/src/parser.rs
diff options
context:
space:
mode:
authorJustin Wernick <justin@worthe-it.co.za>2023-07-14 13:13:11 +0200
committerJustin Wernick <justin@worthe-it.co.za>2023-07-14 13:13:11 +0200
commit755e28d044aaff9a8aa0fa4700105564726ec33d (patch)
tree45eb98e20c340fc203737843cf43f766026d0c72 /src/parser.rs
parent58664db6007920939d94977cc7382a5709b16558 (diff)
Add a housekeeping task, which does git gc
Diffstat (limited to 'src/parser.rs')
-rw-r--r--src/parser.rs9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/parser.rs b/src/parser.rs
index b429572..5806cec 100644
--- a/src/parser.rs
+++ b/src/parser.rs
@@ -18,6 +18,8 @@ pub enum ShackleCommand {
SetBranch(SetBranchArgs),
/// Deletes a repository
Delete(DeleteArgs),
+ /// Does any housekeeping, like deleting unreachable objects and repacking more efficiently
+ Housekeeping(HousekeepingArgs),
/// Quit the shell
Exit,
/// Server side command required to git fetch from the server
@@ -74,6 +76,13 @@ pub struct DeleteArgs {
}
#[derive(Parser, Clone, Debug, PartialEq, Eq)]
+pub struct HousekeepingArgs {
+ /// The full relative path of the repository, for example
+ /// git/shuckie/repo.git. If omitted, all repos will be checked.
+ pub directory: Option<PathBuf>,
+}
+
+#[derive(Parser, Clone, Debug, PartialEq, Eq)]
pub struct GitUploadPackArgs {
/// Do not try <directory>/.git/ if <directory> is no Git directory
#[arg(long, default_value_t = true)]