slipway 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (124) hide show
  1. checksums.yaml +7 -0
  2. data/.yardopts +7 -0
  3. data/CHANGELOG.md +45 -0
  4. data/LICENSE.txt +21 -0
  5. data/README.md +1013 -0
  6. data/exe/slipway +10 -0
  7. data/lib/slipway/cli/builtins.rb +241 -0
  8. data/lib/slipway/cli/completer.rb +158 -0
  9. data/lib/slipway/cli/completion_scripts.rb +163 -0
  10. data/lib/slipway/cli/context.rb +67 -0
  11. data/lib/slipway/cli/errors.rb +19 -0
  12. data/lib/slipway/cli/globals.rb +27 -0
  13. data/lib/slipway/cli/help_renderer.rb +135 -0
  14. data/lib/slipway/cli/manpage.rb +226 -0
  15. data/lib/slipway/cli/parser.rb +45 -0
  16. data/lib/slipway/cli/registry.rb +191 -0
  17. data/lib/slipway/cli/runner.rb +186 -0
  18. data/lib/slipway/cli/style.rb +82 -0
  19. data/lib/slipway/cli/theme.rb +85 -0
  20. data/lib/slipway/cli/validator.rb +61 -0
  21. data/lib/slipway/cli.rb +22 -0
  22. data/lib/slipway/command_line.rb +22 -0
  23. data/lib/slipway/commands/api_resources.rb +82 -0
  24. data/lib/slipway/commands/apply.rb +172 -0
  25. data/lib/slipway/commands/base.rb +50 -0
  26. data/lib/slipway/commands/config.rb +73 -0
  27. data/lib/slipway/commands/create.rb +218 -0
  28. data/lib/slipway/commands/delete.rb +82 -0
  29. data/lib/slipway/commands/describe.rb +74 -0
  30. data/lib/slipway/commands/diff.rb +122 -0
  31. data/lib/slipway/commands/edit.rb +130 -0
  32. data/lib/slipway/commands/explain.rb +97 -0
  33. data/lib/slipway/commands/fetch.rb +112 -0
  34. data/lib/slipway/commands/from_dir.rb +141 -0
  35. data/lib/slipway/commands/get.rb +167 -0
  36. data/lib/slipway/commands/label.rb +114 -0
  37. data/lib/slipway/commands/manual.rb +67 -0
  38. data/lib/slipway/commands/options.rb +73 -0
  39. data/lib/slipway/commands/results.rb +57 -0
  40. data/lib/slipway/commands/rollout.rb +114 -0
  41. data/lib/slipway/commands/rollout_spec.rb +99 -0
  42. data/lib/slipway/commands/rollout_undo.rb +126 -0
  43. data/lib/slipway/commands/scope.rb +156 -0
  44. data/lib/slipway/commands/sync.rb +140 -0
  45. data/lib/slipway/commands.rb +54 -0
  46. data/lib/slipway/drift.rb +87 -0
  47. data/lib/slipway/editor.rb +71 -0
  48. data/lib/slipway/error.rb +27 -0
  49. data/lib/slipway/fetcher.rb +99 -0
  50. data/lib/slipway/field_selector.rb +86 -0
  51. data/lib/slipway/git/branch_name.rb +32 -0
  52. data/lib/slipway/git/commit.rb +13 -0
  53. data/lib/slipway/git/distance.rb +13 -0
  54. data/lib/slipway/git/errors.rb +125 -0
  55. data/lib/slipway/git/fake.rb +147 -0
  56. data/lib/slipway/git/fast_forward.rb +12 -0
  57. data/lib/slipway/git/fast_forwarding.rb +148 -0
  58. data/lib/slipway/git/fetch_result.rb +22 -0
  59. data/lib/slipway/git/move_back.rb +12 -0
  60. data/lib/slipway/git/reflog.rb +25 -0
  61. data/lib/slipway/git/repository.rb +288 -0
  62. data/lib/slipway/git/rolling_back.rb +98 -0
  63. data/lib/slipway/git/runner.rb +175 -0
  64. data/lib/slipway/git/status.rb +110 -0
  65. data/lib/slipway/git/url.rb +95 -0
  66. data/lib/slipway/git.rb +20 -0
  67. data/lib/slipway/inspector.rb +103 -0
  68. data/lib/slipway/labels.rb +126 -0
  69. data/lib/slipway/manifest.rb +265 -0
  70. data/lib/slipway/names.rb +22 -0
  71. data/lib/slipway/outcome.rb +45 -0
  72. data/lib/slipway/output/age.rb +70 -0
  73. data/lib/slipway/output/describe.rb +71 -0
  74. data/lib/slipway/output/explain.rb +75 -0
  75. data/lib/slipway/output/serializer.rb +35 -0
  76. data/lib/slipway/output/table.rb +67 -0
  77. data/lib/slipway/output.rb +28 -0
  78. data/lib/slipway/paths.rb +65 -0
  79. data/lib/slipway/plan.rb +227 -0
  80. data/lib/slipway/pool.rb +94 -0
  81. data/lib/slipway/resources.rb +91 -0
  82. data/lib/slipway/rollback.rb +236 -0
  83. data/lib/slipway/rollout_history.rb +69 -0
  84. data/lib/slipway/runtime.rb +65 -0
  85. data/lib/slipway/scanner.rb +54 -0
  86. data/lib/slipway/schema.rb +128 -0
  87. data/lib/slipway/selector.rb +146 -0
  88. data/lib/slipway/settings.rb +174 -0
  89. data/lib/slipway/state.rb +82 -0
  90. data/lib/slipway/store.rb +170 -0
  91. data/lib/slipway/syncer.rb +139 -0
  92. data/lib/slipway/version.rb +5 -0
  93. data/lib/slipway/views/group.rb +35 -0
  94. data/lib/slipway/views/project.rb +148 -0
  95. data/lib/slipway/views.rb +10 -0
  96. data/lib/slipway/yaml.rb +14 -0
  97. data/lib/slipway.rb +32 -0
  98. data/man/man1/slipway-api-resources.1 +53 -0
  99. data/man/man1/slipway-apply.1 +45 -0
  100. data/man/man1/slipway-completion.1 +29 -0
  101. data/man/man1/slipway-config-path.1 +20 -0
  102. data/man/man1/slipway-config-view.1 +25 -0
  103. data/man/man1/slipway-config.1 +22 -0
  104. data/man/man1/slipway-create.1 +89 -0
  105. data/man/man1/slipway-delete.1 +46 -0
  106. data/man/man1/slipway-describe.1 +95 -0
  107. data/man/man1/slipway-diff.1 +120 -0
  108. data/man/man1/slipway-edit.1 +34 -0
  109. data/man/man1/slipway-explain.1 +36 -0
  110. data/man/man1/slipway-fetch.1 +77 -0
  111. data/man/man1/slipway-get.1 +155 -0
  112. data/man/man1/slipway-help.1 +19 -0
  113. data/man/man1/slipway-label.1 +53 -0
  114. data/man/man1/slipway-man.1 +36 -0
  115. data/man/man1/slipway-rollout-history.1 +28 -0
  116. data/man/man1/slipway-rollout-pause.1 +21 -0
  117. data/man/man1/slipway-rollout-resume.1 +21 -0
  118. data/man/man1/slipway-rollout-undo.1 +73 -0
  119. data/man/man1/slipway-rollout-unpin.1 +21 -0
  120. data/man/man1/slipway-rollout.1 +36 -0
  121. data/man/man1/slipway-sync.1 +90 -0
  122. data/man/man1/slipway-version.1 +17 -0
  123. data/man/man1/slipway.1 +243 -0
  124. metadata +173 -0
@@ -0,0 +1,28 @@
1
+ .\" Generated by slipway 0.1.0. Do not edit.
2
+ .TH "SLIPWAY-ROLLOUT-HISTORY" "1" "2026-09-30" "slipway 0.1.0" "Slipway Manual"
3
+ .SH NAME
4
+ slipway\-rollout\-history \- View rollout history
5
+ .SH SYNOPSIS
6
+ .SY "slipway rollout history"
7
+ .I "(NAME | project/NAME)"\&
8
+ .RI [ flags ]
9
+ .YS
10
+ .SH DESCRIPTION
11
+ View the rollout history of a project.
12
+ .PP
13
+ Lists the revisions of the checked\-out branch, oldest first: each commit slipway moved the branch to, read from the entries of the branch's reflog whose subject starts with "slipway ", and the commit the branch stood at before such a move. REVISION numbers them from the oldest entry git still keeps, COMMIT is the commit, DATE the time the branch moved there, CHANGE\-CAUSE the move slipway made, and PINNED marks the revision spec.revision holds the project at. Nothing is fetched or written.
14
+ .PP
15
+ The history lasts as long as git keeps the reflog (gc.reflogExpire, 90 days by default; slipway never runs gc), and git keeps none under core.logAllRefUpdates=false. A project without history prints a notice on stderr and exits with status 0.
16
+ .SH EXAMPLES
17
+ .EX
18
+ # View the rollout history of project hldr
19
+ slipway rollout history hldr
20
+ .EE
21
+ .PP
22
+ .EX
23
+ # View the rollout history of project api in the work group
24
+ slipway rollout history project/api \-n work
25
+ .EE
26
+ .SH "SEE ALSO"
27
+ .BR slipway (1),
28
+ .BR slipway\-rollout (1)
@@ -0,0 +1,21 @@
1
+ .\" Generated by slipway 0.1.0. Do not edit.
2
+ .TH "SLIPWAY-ROLLOUT-PAUSE" "1" "2026-09-30" "slipway 0.1.0" "Slipway Manual"
3
+ .SH NAME
4
+ slipway\-rollout\-pause \- Mark the provided project as paused
5
+ .SH SYNOPSIS
6
+ .SY "slipway rollout pause"
7
+ .I "(NAME... | project/NAME...)"\&
8
+ .RI [ flags ]
9
+ .YS
10
+ .SH DESCRIPTION
11
+ Mark the provided projects as paused.
12
+ .PP
13
+ Sets spec.paused in the manifest of each named project. Paused projects are left alone by slipway fetch and slipway sync, which run no git command in them; slipway rollout undo still acts on them. Use slipway rollout resume to resume a paused project.
14
+ .SH EXAMPLES
15
+ .EX
16
+ # Keep fetch and sync away from project dots
17
+ slipway rollout pause dots
18
+ .EE
19
+ .SH "SEE ALSO"
20
+ .BR slipway (1),
21
+ .BR slipway\-rollout (1)
@@ -0,0 +1,21 @@
1
+ .\" Generated by slipway 0.1.0. Do not edit.
2
+ .TH "SLIPWAY-ROLLOUT-RESUME" "1" "2026-09-30" "slipway 0.1.0" "Slipway Manual"
3
+ .SH NAME
4
+ slipway\-rollout\-resume \- Resume a paused project
5
+ .SH SYNOPSIS
6
+ .SY "slipway rollout resume"
7
+ .I "(NAME... | project/NAME...)"\&
8
+ .RI [ flags ]
9
+ .YS
10
+ .SH DESCRIPTION
11
+ Resume paused projects.
12
+ .PP
13
+ Removes spec.paused from the manifest of each named project, so slipway fetch and slipway sync act on it again. A project that is not paused prints not paused.
14
+ .SH EXAMPLES
15
+ .EX
16
+ # Resume the paused project dots
17
+ slipway rollout resume dots
18
+ .EE
19
+ .SH "SEE ALSO"
20
+ .BR slipway (1),
21
+ .BR slipway\-rollout (1)
@@ -0,0 +1,73 @@
1
+ .\" Generated by slipway 0.1.0. Do not edit.
2
+ .TH "SLIPWAY-ROLLOUT-UNDO" "1" "2026-09-30" "slipway 0.1.0" "Slipway Manual"
3
+ .SH NAME
4
+ slipway\-rollout\-undo \- Undo a previous rollout
5
+ .SH SYNOPSIS
6
+ .SY "slipway rollout undo"
7
+ .I "(NAME | project/NAME)"\&
8
+ .RI [ flags ]
9
+ .YS
10
+ .SH DESCRIPTION
11
+ Roll back a project to a previous revision.
12
+ .PP
13
+ Moves the checked\-out branch to the revision before the current one, or to the one \-\-to\-revision names from slipway rollout history, and then writes that commit to spec.revision, so sync holds the project there until slipway rollout unpin. The branch moves back with git reset \-\-keep, only when its upstream holds every commit the move drops, and forward, to undo an undo, with git merge \-\-ff\-only. Untracked files and unstaged changes to files the move leaves alone are kept; git refuses a move that would overwrite a local change or an untracked file, and slipway refuses one that would overwrite an ignored file. A move back skips a project with staged changes, and a move forward one with staged or unstaged changes.
14
+ .PP
15
+ A project whose HEAD is detached, whose branch has no commits or no upstream that exists, that is in the middle of a merge, rebase or other operation, or whose branch has commits its upstream lacks, is skipped with the reason and nothing is moved or written. A paused project can be rolled back: pausing only keeps fetch and sync away.
16
+ .PP
17
+ The project prints one line, one of the results listed below, with a reason in parentheses and the details under it.
18
+ .PP
19
+ With \-\-dry\-run nothing is moved or written, and the line ends in (dry run).
20
+ .SH OPTIONS
21
+ .TP
22
+ \fB\-\-to\-revision\fR \fIN\fR
23
+ The revision to roll back to, as slipway rollout history numbers it. 0, the default, is the revision before the current one.
24
+ .TP
25
+ \fB\-\-dry\-run\fR
26
+ Print what would change and write nothing.
27
+ .SH RESULTS
28
+ .TP
29
+ \fBrolled back\fR
30
+ The branch moved, or it already stood at the revision and only spec.revision changed. The detail names the commits it crossed and the command that lets sync follow the upstream again.
31
+ .TP
32
+ \fBunchanged\fR
33
+ The branch already stood at the revision and spec.revision already held it.
34
+ .TP
35
+ \fBskipped (Reason)\fR
36
+ Nothing moved and nothing was written. git could not read the repository (Missing, NotARepo, Unsafe, Unknown); the branch cannot move (Conflicted, Detached, Unborn, NoUpstream, Gone, InProgress); the history has no such revision (NoHistory, NoPrevious, UnknownRevision) or the repository no such commit (RevisionNotFound); a move back would drop commits the upstream lacks (LocalCommits) or staged changes (Dirty), or the revision is off the branch's history (Diverged); a move forward needs a tree without staged or unstaged changes (Dirty) and a revision on the upstream (OffUpstream); or git refused the move (WouldLoseChanges, WouldOverwrite for untracked or ignored files in the way, Busy, NotFastForward for a branch that moved since the check).
37
+ .TP
38
+ \fBdenied (Reason)\fR
39
+ A partial clone had to fetch the files the move writes and the remote asked for a password, a passphrase or a host key (AuthRequired), as in slipway fetch.
40
+ .TP
41
+ \fBfailed (Reason)\fR
42
+ The move ran past networkTimeout (Timeout) or git failed for another reason (Unknown), and spec.revision was not written, though a move stopped at the deadline keeps the files git had already written, as in slipway sync; or the branch moved but spec.revision could not be written (NotPinned), and the detail names the \-\-to\-revision command that writes it without moving the branch again.
43
+ .SH "EXIT STATUS"
44
+ .TP
45
+ \fB0\fR
46
+ The project was rolled back, or already stood at the revision and was held there.
47
+ .TP
48
+ \fB1\fR
49
+ Runtime error, such as a missing resource or an unreadable manifest, or a project that was skipped or whose move was denied or failed.
50
+ .TP
51
+ \fB2\fR
52
+ Usage error: unknown command, unknown flag or invalid argument.
53
+ .TP
54
+ \fB130\fR
55
+ Interrupted by SIGINT.
56
+ .SH EXAMPLES
57
+ .EX
58
+ # Roll back project hldr to the previous revision
59
+ slipway rollout undo hldr
60
+ .EE
61
+ .PP
62
+ .EX
63
+ # Roll back project hldr to revision 3
64
+ slipway rollout undo hldr \-\-to\-revision=3
65
+ .EE
66
+ .PP
67
+ .EX
68
+ # Show where undo would move project hldr, without moving or writing anything
69
+ slipway rollout undo hldr \-\-dry\-run
70
+ .EE
71
+ .SH "SEE ALSO"
72
+ .BR slipway (1),
73
+ .BR slipway\-rollout (1)
@@ -0,0 +1,21 @@
1
+ .\" Generated by slipway 0.1.0. Do not edit.
2
+ .TH "SLIPWAY-ROLLOUT-UNPIN" "1" "2026-09-30" "slipway 0.1.0" "Slipway Manual"
3
+ .SH NAME
4
+ slipway\-rollout\-unpin \- Stop holding a project at a revision
5
+ .SH SYNOPSIS
6
+ .SY "slipway rollout unpin"
7
+ .I "(NAME... | project/NAME...)"\&
8
+ .RI [ flags ]
9
+ .YS
10
+ .SH DESCRIPTION
11
+ Stop holding projects at a revision.
12
+ .PP
13
+ Removes spec.revision from the manifest of each named project, so the next slipway sync fast\-forwards its branch onto its upstream again. The repository is left as it is. A project without spec.revision prints not pinned.
14
+ .SH EXAMPLES
15
+ .EX
16
+ # Let project hldr follow its upstream again
17
+ slipway rollout unpin hldr
18
+ .EE
19
+ .SH "SEE ALSO"
20
+ .BR slipway (1),
21
+ .BR slipway\-rollout (1)
@@ -0,0 +1,36 @@
1
+ .\" Generated by slipway 0.1.0. Do not edit.
2
+ .TH "SLIPWAY-ROLLOUT" "1" "2026-09-30" "slipway 0.1.0" "Slipway Manual"
3
+ .SH NAME
4
+ slipway\-rollout \- Manage the rollout of a project
5
+ .SH SYNOPSIS
6
+ .SY "slipway rollout"
7
+ .I COMMAND
8
+ .RI [ flags ]
9
+ .YS
10
+ .SH DESCRIPTION
11
+ Manage the rollout of a project.
12
+ .PP
13
+ Slipway records a revision each time it moves the checked\-out branch of a project: every fast\-forward of slipway sync and every slipway rollout undo leaves an entry in the branch's reflog, and the commit the branch stood at before such a move is a revision too. rollout history lists the revisions, rollout undo returns the branch to one of them and holds the project there with spec.revision, and rollout unpin lets sync follow the upstream again. rollout pause keeps fetch and sync away from a project until rollout resume.
14
+ .SH COMMANDS
15
+ .TP 9
16
+ \fBhistory\fR
17
+ View rollout history
18
+ .TP 9
19
+ \fBundo\fR
20
+ Undo a previous rollout
21
+ .TP 9
22
+ \fBunpin\fR
23
+ Stop holding a project at a revision
24
+ .TP 9
25
+ \fBpause\fR
26
+ Mark the provided project as paused
27
+ .TP 9
28
+ \fBresume\fR
29
+ Resume a paused project
30
+ .SH "SEE ALSO"
31
+ .BR slipway (1),
32
+ .BR slipway\-rollout\-history (1),
33
+ .BR slipway\-rollout\-undo (1),
34
+ .BR slipway\-rollout\-unpin (1),
35
+ .BR slipway\-rollout\-pause (1),
36
+ .BR slipway\-rollout\-resume (1)
@@ -0,0 +1,90 @@
1
+ .\" Generated by slipway 0.1.0. Do not edit.
2
+ .TH "SLIPWAY-SYNC" "1" "2026-09-30" "slipway 0.1.0" "Slipway Manual"
3
+ .SH NAME
4
+ slipway\-sync \- Fetch projects and fast\-forward their branches
5
+ .SH SYNOPSIS
6
+ .SY "slipway sync"
7
+ .I "[NAME... | project/NAME...]"\&
8
+ .RI [ flags ]
9
+ .YS
10
+ .SH DESCRIPTION
11
+ Fetch each selected project and fast\-forward its branch.
12
+ .PP
13
+ Runs in every project of the current group, in the projects named, in the ones a label selector matches, or with \-\-all\-groups in every project. Each project is fetched as slipway fetch fetches it and compared with its manifest as slipway diff compares it, and its checked\-out branch is fast\-forwarded onto its upstream when the branch tracks an upstream that still exists, is behind it without commits of its own, has no staged, unstaged or conflicted changes and no merge, rebase or other operation in progress. Untracked files do not stop it, and git refuses a fast\-forward that would overwrite one. Sync never merges, rebases, stashes, resets, switches a branch or changes a remote.
14
+ .PP
15
+ A project whose spec.syncPolicy is FetchOnly is only fetched, and one whose spec.paused is true is left alone: no git command runs in it. A project pinned by spec.revision is fast\-forwarded up to that commit instead of its upstream, only when its upstream holds the commit, never past it, and never moved back to it.
16
+ .PP
17
+ Each project prints one line, one of the results listed below, with a reason in parentheses and the details under it. The parallel setting caps how many projects fetch at once, fast\-forwards run one at a time, and the results print in the order the projects are listed.
18
+ .PP
19
+ With \-\-dry\-run nothing is fetched or written: the plan is made from the last fetch.
20
+ .SH OPTIONS
21
+ .TP
22
+ \fB\-l\fR, \fB\-\-selector\fR \fIEXPR\fR
23
+ Selector (label query) to filter on, supports '=', '==', '!=', 'in', 'notin' (e.g. \-l key1=value1,key2=value2,key3 in (value3)). Matching objects must satisfy all of the specified label constraints.
24
+ .TP
25
+ \fB\-A\fR, \fB\-\-all\-groups\fR
26
+ If present, sync every project across all groups. The group in the current configuration is ignored even if specified with \-\-group.
27
+ .TP
28
+ \fB\-\-prune\fR
29
+ Before fetching, remove any remote\-tracking references that no longer exist on the remote.
30
+ .TP
31
+ \fB\-\-dry\-run\fR
32
+ Print what would change and write nothing.
33
+ .SH RESULTS
34
+ When more than one project ran, a count of the results closes the run on stderr. With \-\-dry\-run every line and the count end in (dry run). Ctrl\-C stops the git processes slipway started and exits with status 130; a fast\-forward it stops ends as one stopped at the deadline.
35
+ .TP
36
+ \fBfast\-forwarded\fR
37
+ The branch moved. For a move onto the upstream, the detail names the commits it gained, as main a1b2c3d..e4f5a6b (3 commits), and the command that undoes the move; a move up to a spec.revision pin ends in (to the pinned revision).
38
+ .TP
39
+ \fBfetched\fR
40
+ The fetch of a FetchOnly project moved refs; the refs follow as in slipway fetch.
41
+ .TP
42
+ \fBunchanged\fR
43
+ The branch stayed where it was and nothing blocked it; the fetch may still have moved remote\-tracking refs.
44
+ .TP
45
+ \fBskipped (Reason)\fR
46
+ The branch stayed where it was: a blocker stopped it, under the name slipway diff gives it; git refused the fast\-forward (WouldOverwrite for untracked files in the way, WouldLoseChanges for local changes git status does not show, Busy for a lock another git process holds on the index, HEAD or the branch, NotFastForward for a branch that gained a commit since the check); or the project was skipped before its fetch, as in slipway fetch (Missing, NotARepo, Unsafe, Unknown, NoRemote, LocalUpstream).
47
+ .TP
48
+ \fBpaused\fR
49
+ spec.paused is true, so no git command ran in the project.
50
+ .TP
51
+ \fBdenied (Reason)\fR
52
+ The fetch or the fast\-forward needed a password, a passphrase or a host key (AuthRequired), as in slipway fetch.
53
+ .TP
54
+ \fBfailed (Reason)\fR
55
+ The fetch or the fast\-forward ran past networkTimeout (Timeout), used a transport protocols leaves out (ProtocolNotAllowed), or git failed for another reason (Unknown). A fast\-forward stopped at the deadline leaves the branch where it was, but the files git had already written stay in the working tree, and the detail names the command that lists them.
56
+ .SH "EXIT STATUS"
57
+ .TP
58
+ \fB0\fR
59
+ Every selected project was fast\-forwarded, fetched, left unchanged, skipped or paused.
60
+ .TP
61
+ \fB1\fR
62
+ Runtime error, such as a missing resource or an unreadable manifest, or a project whose fetch or fast\-forward was denied or failed.
63
+ .TP
64
+ \fB2\fR
65
+ Usage error: unknown command, unknown flag or invalid argument.
66
+ .TP
67
+ \fB130\fR
68
+ Interrupted by SIGINT.
69
+ .SH EXAMPLES
70
+ .EX
71
+ # Sync every project in the current group
72
+ slipway sync
73
+ .EE
74
+ .PP
75
+ .EX
76
+ # Sync every project in every group
77
+ slipway sync \-A
78
+ .EE
79
+ .PP
80
+ .EX
81
+ # Sync two projects of the work group
82
+ slipway sync api web \-n work
83
+ .EE
84
+ .PP
85
+ .EX
86
+ # Show what sync would do from the last fetch, without contacting any remote
87
+ slipway sync \-A \-\-dry\-run
88
+ .EE
89
+ .SH "SEE ALSO"
90
+ .BR slipway (1)
@@ -0,0 +1,17 @@
1
+ .\" Generated by slipway 0.1.0. Do not edit.
2
+ .TH "SLIPWAY-VERSION" "1" "2026-09-30" "slipway 0.1.0" "Slipway Manual"
3
+ .SH NAME
4
+ slipway\-version \- Print the version of slipway
5
+ .SH SYNOPSIS
6
+ .SY "slipway version"
7
+ .RI [ flags ]
8
+ .YS
9
+ .SH DESCRIPTION
10
+ Print the version of slipway, the Ruby it runs on and the platform.
11
+ .SH EXAMPLES
12
+ .EX
13
+ # Print the version
14
+ slipway version
15
+ .EE
16
+ .SH "SEE ALSO"
17
+ .BR slipway (1)
@@ -0,0 +1,243 @@
1
+ .\" Generated by slipway 0.1.0. Do not edit.
2
+ .TH "SLIPWAY" "1" "2026-09-30" "slipway 0.1.0" "Slipway Manual"
3
+ .SH NAME
4
+ slipway \- A kubectl\-style registry of the git repositories on your machine
5
+ .SH SYNOPSIS
6
+ .SY slipway
7
+ .RI [ flags ]
8
+ .I COMMAND
9
+ .RI [ ARGS... ]\&
10
+ .YS
11
+ .SH DESCRIPTION
12
+ A kubectl\-style registry of the git repositories on your machine.
13
+ .PP
14
+ A project is a registered git repository. get and describe show where each one
15
+ stands, and fetch fetches them all without prompting. Its manifest can also
16
+ declare where the repository should be: the remote, the branch and a commit to
17
+ hold it at. diff shows where a repository differs from that, sync fast\-forwards
18
+ the branches that can move without losing work, and rollout undo takes such a
19
+ move back.
20
+ .PP
21
+ Projects live in groups the way pods live in namespaces. The group is
22
+ "default", or the one SLIPWAY_GROUP or the group key sets, unless \-n
23
+ is given, and \-A covers every group.
24
+ .PP
25
+ Resource types: projects (project, proj) and groups (group). Type words are case\-insensitive.
26
+ .SH COMMANDS
27
+ .SS "Basic Commands"
28
+ .TP 15
29
+ \fBget\fR
30
+ Display one or many resources
31
+ .TP 15
32
+ \fBdescribe\fR
33
+ Show details of one or many resources
34
+ .TP 15
35
+ \fBcreate\fR
36
+ Create a resource by name
37
+ .TP 15
38
+ \fBapply\fR
39
+ Apply a configuration to a resource by file name or stdin
40
+ .TP 15
41
+ \fBdelete\fR
42
+ Delete resources by type and name
43
+ .TP 15
44
+ \fBedit\fR
45
+ Edit a resource from the default editor
46
+ .TP 15
47
+ \fBlabel\fR
48
+ Update the labels on a resource
49
+ .TP 15
50
+ \fBexplain\fR
51
+ Get documentation for a resource
52
+ .SS "Repository Commands"
53
+ .TP 15
54
+ \fBfetch\fR
55
+ Fetch from the remote of each project
56
+ .TP 15
57
+ \fBdiff\fR
58
+ Show where projects differ from their manifests
59
+ .TP 15
60
+ \fBsync\fR
61
+ Fetch projects and fast\-forward their branches
62
+ .TP 15
63
+ \fBrollout\fR
64
+ Manage the rollout of a project
65
+ .SS "Settings Commands"
66
+ .TP 15
67
+ \fBconfig\fR
68
+ Inspect the configuration in effect
69
+ .TP 15
70
+ \fBcompletion\fR
71
+ Output shell completion code for the specified shell (bash, zsh, fish)
72
+ .TP 15
73
+ \fBman\fR
74
+ Show the manual page of a command
75
+ .SS "Other Commands"
76
+ .TP 15
77
+ \fBapi\-resources\fR
78
+ Print the supported resource types
79
+ .TP 15
80
+ \fBhelp\fR
81
+ Help about any command
82
+ .TP 15
83
+ \fBversion\fR
84
+ Print the version of slipway
85
+ .SH OPTIONS
86
+ .TP
87
+ \fB\-\-color\fR[=\fIWHEN\fR]
88
+ When to use color in the output; a bare \-\-color means always. One of: auto, always, never.
89
+ .TP
90
+ \fB\-n\fR, \fB\-\-group\fR \fINAME\fR
91
+ The group scope for this request.
92
+ .TP
93
+ \fB\-\-config\fR \fIPATH\fR
94
+ Path to the configuration file.
95
+ .TP
96
+ \fB\-h\fR, \fB\-\-help\fR
97
+ Print help and exit.
98
+ .TP
99
+ \fB\-V\fR, \fB\-\-version\fR
100
+ Print the version and exit.
101
+ .SH ENVIRONMENT
102
+ .TP
103
+ \fBSLIPWAY_CONFIG\fR
104
+ Path of the configuration file; overridden by \-\-config.
105
+ .TP
106
+ \fBSLIPWAY_DATA_HOME\fR
107
+ Directory holding the registry: group and project manifests.
108
+ .TP
109
+ \fBSLIPWAY_COLOR\fR
110
+ Outranks the color key (see CONFIGURATION); \-\-color outranks both.
111
+ .TP
112
+ \fBSLIPWAY_THEME\fR
113
+ Outranks the theme key (see CONFIGURATION).
114
+ .TP
115
+ \fBSLIPWAY_EDITOR\fR
116
+ Outranks the editor key (see CONFIGURATION), VISUAL and EDITOR.
117
+ .TP
118
+ \fBSLIPWAY_GROUP\fR
119
+ Outranks the group key (see CONFIGURATION); \-\-group outranks both.
120
+ .TP
121
+ \fBSLIPWAY_NETWORK_TIMEOUT\fR
122
+ Outranks the networkTimeout key (see CONFIGURATION).
123
+ .TP
124
+ \fBSLIPWAY_PARALLEL\fR
125
+ Outranks the parallel key (see CONFIGURATION).
126
+ .TP
127
+ \fBSLIPWAY_PROTOCOLS\fR
128
+ Outranks the protocols key (see CONFIGURATION); the names are separated by colons, as in ssh:https.
129
+ .TP
130
+ \fBSLIPWAY_DEBUG\fR
131
+ When non\-empty, unexpected errors also print their class and backtrace.
132
+ .TP
133
+ \fBNO_COLOR\fR
134
+ When non\-empty, disables color in auto mode.
135
+ .TP
136
+ \fBFORCE_COLOR\fR
137
+ When non\-empty, enables color in auto mode even without a terminal.
138
+ .TP
139
+ \fBCLICOLOR_FORCE\fR
140
+ Same as FORCE_COLOR.
141
+ .TP
142
+ \fBVISUAL\fR
143
+ Editor used by edit when SLIPWAY_EDITOR and the editor configuration key are unset.
144
+ .TP
145
+ \fBEDITOR\fR
146
+ Editor used by edit when VISUAL is unset as well.
147
+ .TP
148
+ \fBXDG_CONFIG_HOME\fR
149
+ Base of the configuration directory (default ~/.config).
150
+ .TP
151
+ \fBXDG_DATA_HOME\fR
152
+ Base of the data directory (default ~/.local/share).
153
+ .TP
154
+ \fBTERM\fR
155
+ When dumb, disables color in auto mode.
156
+ .TP
157
+ \fBMANPAGER\fR
158
+ When non\-empty, slipway man leaves the pager palette alone.
159
+ .TP
160
+ \fBMANROFFOPT\fR
161
+ Same as MANPAGER.
162
+ .TP
163
+ \fBLESS_TERMCAP_md\fR
164
+ Same as MANPAGER.
165
+ .TP
166
+ \fBGROFF_NO_SGR\fR
167
+ Same as MANPAGER.
168
+ .TP
169
+ \fBGIT_DIR, GIT_WORK_TREE, GIT_INDEX_FILE, GIT_NAMESPACE, GIT_OBJECT_DIRECTORY, GIT_ALTERNATE_OBJECT_DIRECTORIES\fR
170
+ Ignored: every git command slipway runs starts without them, so an inherited value cannot point git at another repository.
171
+ .SH FILES
172
+ .TP
173
+ \fI$XDG_CONFIG_HOME/slipway/config.yaml\fR
174
+ Configuration file; see CONFIGURATION. Also set by \-\-config or SLIPWAY_CONFIG.
175
+ .TP
176
+ \fI$XDG_DATA_HOME/slipway/\fR
177
+ Registry data: groups/NAME.yaml and projects/GROUP/NAME.yaml. Also set by SLIPWAY_DATA_HOME.
178
+ .SH CONFIGURATION
179
+ .TP
180
+ \fBcolor\fR
181
+ When to color output: auto, always or never. Default: auto.
182
+ .TP
183
+ \fBeditor\fR
184
+ Command line of the editor that slipway edit opens.
185
+ .TP
186
+ \fBgroup\fR
187
+ Group used when \-n is not given. Default: default.
188
+ .TP
189
+ \fBnetworkTimeout\fR
190
+ Seconds, from 1 to 86400, a git network command may run before it is killed with the processes it started. Default: 60.
191
+ .TP
192
+ \fBparallel\fR
193
+ How many git network commands run at once, from 1 to 16. Default: 4.
194
+ .TP
195
+ \fBprotocols\fR
196
+ Transports git may use in network commands, as a list; any other transport is refused, and so are ext and fd. Add file for local mirrors. Default: ssh, https.
197
+ .TP
198
+ \fBtheme\fR
199
+ Color theme: dark or light. Default: dark.
200
+ .SH "EXIT STATUS"
201
+ .TP
202
+ \fB0\fR
203
+ Success.
204
+ .TP
205
+ \fB1\fR
206
+ Runtime error, such as a missing resource or an unreadable manifest.
207
+ .TP
208
+ \fB2\fR
209
+ Usage error: unknown command, unknown flag or invalid argument.
210
+ .TP
211
+ \fB130\fR
212
+ Interrupted by SIGINT.
213
+ .PP
214
+ The pages of these commands list their own statuses:
215
+ .BR slipway\-diff (1),
216
+ .BR slipway\-sync (1),
217
+ .BR slipway\-rollout\-undo (1)
218
+ .SH "SEE ALSO"
219
+ .BR slipway\-get (1),
220
+ .BR slipway\-describe (1),
221
+ .BR slipway\-create (1),
222
+ .BR slipway\-apply (1),
223
+ .BR slipway\-delete (1),
224
+ .BR slipway\-edit (1),
225
+ .BR slipway\-label (1),
226
+ .BR slipway\-explain (1),
227
+ .BR slipway\-fetch (1),
228
+ .BR slipway\-diff (1),
229
+ .BR slipway\-sync (1),
230
+ .BR slipway\-rollout (1),
231
+ .BR slipway\-rollout\-history (1),
232
+ .BR slipway\-rollout\-undo (1),
233
+ .BR slipway\-rollout\-unpin (1),
234
+ .BR slipway\-rollout\-pause (1),
235
+ .BR slipway\-rollout\-resume (1),
236
+ .BR slipway\-config (1),
237
+ .BR slipway\-config\-view (1),
238
+ .BR slipway\-config\-path (1),
239
+ .BR slipway\-api\-resources (1),
240
+ .BR slipway\-help (1),
241
+ .BR slipway\-version (1),
242
+ .BR slipway\-completion (1),
243
+ .BR slipway\-man (1)