aboutsummaryrefslogtreecommitdiffstats
path: root/skills
diff options
context:
space:
mode:
Diffstat (limited to 'skills')
-rw-r--r--skills/gitctl/SKILL.md10
1 files changed, 8 insertions, 2 deletions
diff --git a/skills/gitctl/SKILL.md b/skills/gitctl/SKILL.md
index 8660669..a37c1f7 100644
--- a/skills/gitctl/SKILL.md
+++ b/skills/gitctl/SKILL.md
@@ -17,6 +17,7 @@ setup" and "Client install") rather than guessing.
## When to use
- User wants a NEW repo on the server -> `gitctl repo create`
+- DELETE a repo from the server -> `gitctl repo delete` (destructive, always confirms)
- List every repo (public AND private) -> `gitctl repo list`
- List/add cgit sections (categories) -> `gitctl sections list|add`
- Set a repo's cgit description -> `gitctl repo desc`
@@ -60,8 +61,13 @@ git push -u origin master
`gitctl repo create` command. It is idempotent: it detects the existing
stanza, skips phase 1, and finishes phase 2. Do not start over.
- **Section names with spaces must be quoted**: `--section "My Sites"`.
-- **No delete verb.** Removing a repo/section is deliberately manual (server
- side). Do not script deletion through gitctl.
+- **`repo delete <name>` is destructive and ALWAYS confirms** (the global `-y`
+ does not bypass it, by design). It removes the gitolite stanza (commit + push,
+ so it needs the SSH key like create), removes the cgit block, and MOVES the
+ bare repo to the server trash dir (`/var/lib/gitolite3/trash`, timestamped) -
+ it does not `rm`, so it is recoverable there. Idempotent: a piece already gone
+ is skipped. There is still no delete verb for SECTIONS; removing a section is
+ manual.
- **`--desc` is the only way to set a cgit description.** It writes the bare
repo's `description` file and runs the sync script (the single writer of
`repo.desc=`). Never write `repo.desc=` directly.