Artifact 4e9e732de00e03f418d37b79991dd4fc6518a01564a008879f9cdfe9388c4199:
- File
docs/site/content/docs/reference/sdk/cli/api.md
— part of check-in
[6273a0750d]
at
2026-07-22 23:03:24
on branch trunk
— fix: correct go.mod module path to go-libfossil (#76) (#117)
* fix: correct go.mod module path to go-libfossil (#76)
The module directive still declared github.com/danmestas/libfossil after the repository was renamed to go-libfossil. pkg.go.dev/godoc scraping matches the declared module path against its hosting path, so the stale path broke SDK doc generation.
Rename the module path across all four in-repo modules (root, the two db/driver submodules, observer/otel, and docs/site) and every internal import, plus the release workflow, the doc-generation script, and the docs.
No tag has been published under the go-libfossil path yet, so the cross-module requires cannot resolve from the proxy. Add replace directives pointing the in-repo requires at their local directories so GOWORK=off builds and the CI matrix resolve without a published version. These replaces are ignored by downstream consumers and can be dropped once new-path tags are cut.
* Guard releases against replace directives; regenerate SDK docs
The go-libfossil rename bridges the in-repo modules with `replace` directives. Go refuses a main module that carries them, so a tag cut while they are present breaks `go install .../cmd/libfossil@<tag>` and every `@version` fetch of the driver submodules. Add a Release workflow step that fails the job before anything is published if any tracked go.mod still contains a replace directive, so the bridge is a CI-enforced TODO rather than a silent landmine. The step comment records what unblocks a release: re-tag the submodules with the corrected module paths, bump the root requires, then drop the replace blocks.
Regenerate the SDK reference docs. The previous pass only substituted URLs over the pre-existing generated files, leaving stale signatures (Repo.Timeline was still documented as taking LogOpts rather than TimelineOpts). Note that gomarkdoc must be run outside a git worktree — inside one it silently strips every source link.
Also reword the README rename note, which read as though the import path had not changed, and re-sort the ncruces require block. (user: [email protected], size: 59888) [annotate] [blame] [check-ins using]
--- title: cli --- <!-- Code generated by gomarkdoc. DO NOT EDIT --> # cli ```go import "github.com/danmestas/go-libfossil/cli" ``` ## Index - [func Version\(\) string](<#Version>) - [type Globals](<#Globals>) - [func \(g \*Globals\) OpenRepo\(\) \(\*libfossil.Repo, error\)](<#Globals.OpenRepo>) - [type RepoAddCmd](<#RepoAddCmd>) - [func \(c \*RepoAddCmd\) Run\(g \*Globals\) error](<#RepoAddCmd.Run>) - [type RepoAnnotateCmd](<#RepoAnnotateCmd>) - [func \(c \*RepoAnnotateCmd\) Run\(g \*Globals\) error](<#RepoAnnotateCmd.Run>) - [type RepoBisectBadCmd](<#RepoBisectBadCmd>) - [func \(c \*RepoBisectBadCmd\) Run\(g \*Globals\) error](<#RepoBisectBadCmd.Run>) - [type RepoBisectCmd](<#RepoBisectCmd>) - [type RepoBisectGoodCmd](<#RepoBisectGoodCmd>) - [func \(c \*RepoBisectGoodCmd\) Run\(g \*Globals\) error](<#RepoBisectGoodCmd.Run>) - [type RepoBisectLsCmd](<#RepoBisectLsCmd>) - [func \(c \*RepoBisectLsCmd\) Run\(g \*Globals\) error](<#RepoBisectLsCmd.Run>) - [type RepoBisectNextCmd](<#RepoBisectNextCmd>) - [func \(c \*RepoBisectNextCmd\) Run\(g \*Globals\) error](<#RepoBisectNextCmd.Run>) - [type RepoBisectResetCmd](<#RepoBisectResetCmd>) - [func \(c \*RepoBisectResetCmd\) Run\(g \*Globals\) error](<#RepoBisectResetCmd.Run>) - [type RepoBisectSkipCmd](<#RepoBisectSkipCmd>) - [func \(c \*RepoBisectSkipCmd\) Run\(g \*Globals\) error](<#RepoBisectSkipCmd.Run>) - [type RepoBisectStatusCmd](<#RepoBisectStatusCmd>) - [func \(c \*RepoBisectStatusCmd\) Run\(g \*Globals\) error](<#RepoBisectStatusCmd.Run>) - [type RepoBlameCmd](<#RepoBlameCmd>) - [type RepoBranchCloseCmd](<#RepoBranchCloseCmd>) - [func \(c \*RepoBranchCloseCmd\) Run\(g \*Globals\) error](<#RepoBranchCloseCmd.Run>) - [type RepoBranchCmd](<#RepoBranchCmd>) - [type RepoBranchLsCmd](<#RepoBranchLsCmd>) - [func \(c \*RepoBranchLsCmd\) Run\(g \*Globals\) error](<#RepoBranchLsCmd.Run>) - [type RepoBranchNewCmd](<#RepoBranchNewCmd>) - [func \(c \*RepoBranchNewCmd\) Run\(g \*Globals\) error](<#RepoBranchNewCmd.Run>) - [type RepoCatCmd](<#RepoCatCmd>) - [func \(c \*RepoCatCmd\) Run\(g \*Globals\) error](<#RepoCatCmd.Run>) - [type RepoCiCmd](<#RepoCiCmd>) - [func \(c \*RepoCiCmd\) Run\(g \*Globals\) error](<#RepoCiCmd.Run>) - [type RepoCloneCmd](<#RepoCloneCmd>) - [func \(c \*RepoCloneCmd\) Run\(g \*Globals\) error](<#RepoCloneCmd.Run>) - [type RepoCmd](<#RepoCmd>) - [type RepoCoCmd](<#RepoCoCmd>) - [func \(c \*RepoCoCmd\) Run\(g \*Globals\) error](<#RepoCoCmd.Run>) - [type RepoConfigCmd](<#RepoConfigCmd>) - [type RepoConfigGetCmd](<#RepoConfigGetCmd>) - [func \(c \*RepoConfigGetCmd\) Run\(g \*Globals\) error](<#RepoConfigGetCmd.Run>) - [type RepoConfigLsCmd](<#RepoConfigLsCmd>) - [func \(c \*RepoConfigLsCmd\) Run\(g \*Globals\) error](<#RepoConfigLsCmd.Run>) - [type RepoConfigSetCmd](<#RepoConfigSetCmd>) - [func \(c \*RepoConfigSetCmd\) Run\(g \*Globals\) error](<#RepoConfigSetCmd.Run>) - [type RepoConflictsCmd](<#RepoConflictsCmd>) - [type RepoConflictsExtractCmd](<#RepoConflictsExtractCmd>) - [func \(c \*RepoConflictsExtractCmd\) Run\(g \*Globals\) error](<#RepoConflictsExtractCmd.Run>) - [type RepoConflictsLsCmd](<#RepoConflictsLsCmd>) - [func \(c \*RepoConflictsLsCmd\) Run\(g \*Globals\) error](<#RepoConflictsLsCmd.Run>) - [type RepoConflictsMergeCmd](<#RepoConflictsMergeCmd>) - [func \(c \*RepoConflictsMergeCmd\) Run\(g \*Globals\) error](<#RepoConflictsMergeCmd.Run>) - [type RepoConflictsPickCmd](<#RepoConflictsPickCmd>) - [func \(c \*RepoConflictsPickCmd\) Run\(g \*Globals\) error](<#RepoConflictsPickCmd.Run>) - [type RepoConflictsShowCmd](<#RepoConflictsShowCmd>) - [func \(c \*RepoConflictsShowCmd\) Run\(g \*Globals\) error](<#RepoConflictsShowCmd.Run>) - [type RepoDeltaApplyCmd](<#RepoDeltaApplyCmd>) - [func \(c \*RepoDeltaApplyCmd\) Run\(g \*Globals\) error](<#RepoDeltaApplyCmd.Run>) - [type RepoDeltaCmd](<#RepoDeltaCmd>) - [type RepoDeltaCreateCmd](<#RepoDeltaCreateCmd>) - [func \(c \*RepoDeltaCreateCmd\) Run\(g \*Globals\) error](<#RepoDeltaCreateCmd.Run>) - [type RepoDiffCmd](<#RepoDiffCmd>) - [func \(c \*RepoDiffCmd\) Run\(g \*Globals\) error](<#RepoDiffCmd.Run>) - [type RepoExtractCmd](<#RepoExtractCmd>) - [func \(c \*RepoExtractCmd\) Run\(g \*Globals\) error](<#RepoExtractCmd.Run>) - [type RepoHashCmd](<#RepoHashCmd>) - [func \(c \*RepoHashCmd\) Run\(g \*Globals\) error](<#RepoHashCmd.Run>) - [type RepoInfoCmd](<#RepoInfoCmd>) - [func \(c \*RepoInfoCmd\) Run\(g \*Globals\) error](<#RepoInfoCmd.Run>) - [type RepoInviteCmd](<#RepoInviteCmd>) - [func \(c \*RepoInviteCmd\) Run\(g \*Globals\) error](<#RepoInviteCmd.Run>) - [type RepoLsCmd](<#RepoLsCmd>) - [func \(c \*RepoLsCmd\) Run\(g \*Globals\) error](<#RepoLsCmd.Run>) - [type RepoMergeCmd](<#RepoMergeCmd>) - [func \(c \*RepoMergeCmd\) Run\(g \*Globals\) error](<#RepoMergeCmd.Run>) - [type RepoMergeResolveCmd](<#RepoMergeResolveCmd>) - [func \(c \*RepoMergeResolveCmd\) Run\(g \*Globals\) error](<#RepoMergeResolveCmd.Run>) - [type RepoNewCmd](<#RepoNewCmd>) - [func \(c \*RepoNewCmd\) Run\(g \*Globals\) error](<#RepoNewCmd.Run>) - [type RepoOpenCmd](<#RepoOpenCmd>) - [func \(c \*RepoOpenCmd\) Run\(g \*Globals\) error](<#RepoOpenCmd.Run>) - [type RepoQueryCmd](<#RepoQueryCmd>) - [func \(c \*RepoQueryCmd\) Run\(g \*Globals\) error](<#RepoQueryCmd.Run>) - [type RepoRedoCmd](<#RepoRedoCmd>) - [func \(c \*RepoRedoCmd\) Run\(g \*Globals\) error](<#RepoRedoCmd.Run>) - [type RepoRenameCmd](<#RepoRenameCmd>) - [func \(c \*RepoRenameCmd\) Run\(g \*Globals\) error](<#RepoRenameCmd.Run>) - [type RepoResolveCmd](<#RepoResolveCmd>) - [func \(c \*RepoResolveCmd\) Run\(g \*Globals\) error](<#RepoResolveCmd.Run>) - [type RepoRevertCmd](<#RepoRevertCmd>) - [func \(c \*RepoRevertCmd\) Run\(g \*Globals\) error](<#RepoRevertCmd.Run>) - [type RepoRmCmd](<#RepoRmCmd>) - [func \(c \*RepoRmCmd\) Run\(g \*Globals\) error](<#RepoRmCmd.Run>) - [type RepoSchemaAddCmd](<#RepoSchemaAddCmd>) - [func \(c \*RepoSchemaAddCmd\) Run\(g \*Globals\) error](<#RepoSchemaAddCmd.Run>) - [type RepoSchemaCmd](<#RepoSchemaCmd>) - [type RepoSchemaListCmd](<#RepoSchemaListCmd>) - [func \(c \*RepoSchemaListCmd\) Run\(g \*Globals\) error](<#RepoSchemaListCmd.Run>) - [type RepoSchemaRemoveCmd](<#RepoSchemaRemoveCmd>) - [func \(c \*RepoSchemaRemoveCmd\) Run\(g \*Globals\) error](<#RepoSchemaRemoveCmd.Run>) - [type RepoSchemaShowCmd](<#RepoSchemaShowCmd>) - [func \(c \*RepoSchemaShowCmd\) Run\(g \*Globals\) error](<#RepoSchemaShowCmd.Run>) - [type RepoServeCmd](<#RepoServeCmd>) - [func \(c \*RepoServeCmd\) Run\(g \*Globals\) error](<#RepoServeCmd.Run>) - [type RepoStashApplyCmd](<#RepoStashApplyCmd>) - [func \(c \*RepoStashApplyCmd\) Run\(g \*Globals\) error](<#RepoStashApplyCmd.Run>) - [type RepoStashClearCmd](<#RepoStashClearCmd>) - [func \(c \*RepoStashClearCmd\) Run\(g \*Globals\) error](<#RepoStashClearCmd.Run>) - [type RepoStashCmd](<#RepoStashCmd>) - [type RepoStashDropCmd](<#RepoStashDropCmd>) - [func \(c \*RepoStashDropCmd\) Run\(g \*Globals\) error](<#RepoStashDropCmd.Run>) - [type RepoStashLsCmd](<#RepoStashLsCmd>) - [func \(c \*RepoStashLsCmd\) Run\(g \*Globals\) error](<#RepoStashLsCmd.Run>) - [type RepoStashPopCmd](<#RepoStashPopCmd>) - [func \(c \*RepoStashPopCmd\) Run\(g \*Globals\) error](<#RepoStashPopCmd.Run>) - [type RepoStashSaveCmd](<#RepoStashSaveCmd>) - [func \(c \*RepoStashSaveCmd\) Run\(g \*Globals\) error](<#RepoStashSaveCmd.Run>) - [type RepoStatusCmd](<#RepoStatusCmd>) - [func \(c \*RepoStatusCmd\) Run\(g \*Globals\) error](<#RepoStatusCmd.Run>) - [type RepoTagAddCmd](<#RepoTagAddCmd>) - [func \(c \*RepoTagAddCmd\) Run\(g \*Globals\) error](<#RepoTagAddCmd.Run>) - [type RepoTagCmd](<#RepoTagCmd>) - [type RepoTagLsCmd](<#RepoTagLsCmd>) - [func \(c \*RepoTagLsCmd\) Run\(g \*Globals\) error](<#RepoTagLsCmd.Run>) - [type RepoTimelineCmd](<#RepoTimelineCmd>) - [func \(c \*RepoTimelineCmd\) Run\(g \*Globals\) error](<#RepoTimelineCmd.Run>) - [type RepoUVCmd](<#RepoUVCmd>) - [type RepoUVDeleteCmd](<#RepoUVDeleteCmd>) - [func \(c \*RepoUVDeleteCmd\) Run\(g \*Globals\) error](<#RepoUVDeleteCmd.Run>) - [type RepoUVGetCmd](<#RepoUVGetCmd>) - [func \(c \*RepoUVGetCmd\) Run\(g \*Globals\) error](<#RepoUVGetCmd.Run>) - [type RepoUVLsCmd](<#RepoUVLsCmd>) - [func \(c \*RepoUVLsCmd\) Run\(g \*Globals\) error](<#RepoUVLsCmd.Run>) - [type RepoUVPutCmd](<#RepoUVPutCmd>) - [func \(c \*RepoUVPutCmd\) Run\(g \*Globals\) error](<#RepoUVPutCmd.Run>) - [type RepoUndoCmd](<#RepoUndoCmd>) - [func \(c \*RepoUndoCmd\) Run\(g \*Globals\) error](<#RepoUndoCmd.Run>) - [type RepoUserCmd](<#RepoUserCmd>) - [type RepoVerifyCmd](<#RepoVerifyCmd>) - [func \(c \*RepoVerifyCmd\) Run\(g \*Globals\) error](<#RepoVerifyCmd.Run>) - [type RepoWikiCmd](<#RepoWikiCmd>) - [type RepoWikiExportCmd](<#RepoWikiExportCmd>) - [func \(c \*RepoWikiExportCmd\) Run\(g \*Globals\) error](<#RepoWikiExportCmd.Run>) - [type RepoWikiLsCmd](<#RepoWikiLsCmd>) - [func \(c \*RepoWikiLsCmd\) Run\(g \*Globals\) error](<#RepoWikiLsCmd.Run>) - [type UserAddCmd](<#UserAddCmd>) - [func \(c \*UserAddCmd\) Run\(g \*Globals\) error](<#UserAddCmd.Run>) - [type UserListCmd](<#UserListCmd>) - [func \(c \*UserListCmd\) Run\(g \*Globals\) error](<#UserListCmd.Run>) - [type UserPasswdCmd](<#UserPasswdCmd>) - [func \(c \*UserPasswdCmd\) Run\(g \*Globals\) error](<#UserPasswdCmd.Run>) - [type UserRmCmd](<#UserRmCmd>) - [func \(c \*UserRmCmd\) Run\(g \*Globals\) error](<#UserRmCmd.Run>) - [type UserUpdateCmd](<#UserUpdateCmd>) - [func \(c \*UserUpdateCmd\) Run\(g \*Globals\) error](<#UserUpdateCmd.Run>) - [type VersionCmd](<#VersionCmd>) - [func \(c \*VersionCmd\) Run\(\) error](<#VersionCmd.Run>) <a name="Version"></a> ## func [Version](<https://github.com/danmestas/go-libfossil/blob/main/cli/version.go#L68>) ```go func Version() string ``` Version returns a single\-line build identifier for this binary: the module version \(or a build\-time override\), the Go toolchain version, and the platform. The shape is fixed at four whitespace\-separated fields \-\- "libfossil \<version\> \<go version\> \<os\>/\<arch\>" \-\- regardless of which fields carried real data, so a caller can rely on strings.Fields\(Version\(\)\) unconditionally. This is the same string both \`libfossil version\` and \`libfossil \-\-version\` print. <a name="Globals"></a> ## type [Globals](<https://github.com/danmestas/go-libfossil/blob/main/cli/shared.go#L16-L19>) Globals holds flags shared by all CLI commands. ```go type Globals struct { Repo string `short:"R" help:"Path to repository file" type:"path"` Verbose bool `short:"v" help:"Verbose output"` } ``` <a name="Globals.OpenRepo"></a> ### func \(\*Globals\) [OpenRepo](<https://github.com/danmestas/go-libfossil/blob/main/cli/shared.go#L23>) ```go func (g *Globals) OpenRepo() (*libfossil.Repo, error) ``` OpenRepo opens a Fossil repository using the handle API. If Repo is empty, it searches for a .fossil file or .fslckout checkout. <a name="RepoAddCmd"></a> ## type [RepoAddCmd](<https://github.com/danmestas/go-libfossil/blob/main/cli/repo_add.go#L12-L15>) RepoAddCmd stages files for addition in the checkout database. ```go type RepoAddCmd struct { Files []string `arg:"" required:"" help:"Files to stage for addition"` Dir string `short:"d" help:"Checkout directory" default:"."` } ``` <a name="RepoAddCmd.Run"></a> ### func \(\*RepoAddCmd\) [Run](<https://github.com/danmestas/go-libfossil/blob/main/cli/repo_add.go#L17>) ```go func (c *RepoAddCmd) Run(g *Globals) error ``` <a name="RepoAnnotateCmd"></a> ## type [RepoAnnotateCmd](<https://github.com/danmestas/go-libfossil/blob/main/cli/repo_annotate.go#L10-L13>) RepoAnnotateCmd annotates file lines with version history. ```go type RepoAnnotateCmd struct { File string `arg:"" required:"" help:"File to annotate"` Version string `help:"Starting version (default: tip)"` } ``` <a name="RepoAnnotateCmd.Run"></a> ### func \(\*RepoAnnotateCmd\) [Run](<https://github.com/danmestas/go-libfossil/blob/main/cli/repo_annotate.go#L15>) ```go func (c *RepoAnnotateCmd) Run(g *Globals) error ``` <a name="RepoBisectBadCmd"></a> ## type [RepoBisectBadCmd](<https://github.com/danmestas/go-libfossil/blob/main/cli/repo_bisect.go#L27-L30>) RepoBisectBadCmd marks a version as bad. ```go type RepoBisectBadCmd struct { Version string `arg:"" optional:"" help:"Version to mark (default: current checkout)"` Dir string `short:"d" help:"Checkout directory" default:"."` } ``` <a name="RepoBisectBadCmd.Run"></a> ### func \(\*RepoBisectBadCmd\) [Run](<https://github.com/danmestas/go-libfossil/blob/main/cli/repo_bisect.go#L32>) ```go func (c *RepoBisectBadCmd) Run(g *Globals) error ``` <a name="RepoBisectCmd"></a> ## type [RepoBisectCmd](<https://github.com/danmestas/go-libfossil/blob/main/cli/repo_bisect.go#L6-L14>) RepoBisectCmd groups binary search operations. ```go type RepoBisectCmd struct { Good RepoBisectGoodCmd `cmd:"" help:"Mark version as good"` Bad RepoBisectBadCmd `cmd:"" help:"Mark version as bad"` Next RepoBisectNextCmd `cmd:"" help:"Check out midpoint version"` Skip RepoBisectSkipCmd `cmd:"" help:"Skip current version"` Reset RepoBisectResetCmd `cmd:"" help:"Clear bisect state"` Ls RepoBisectLsCmd `cmd:"" help:"Show bisect path"` Status RepoBisectStatusCmd `cmd:"" help:"Show bisect state"` } ``` <a name="RepoBisectGoodCmd"></a> ## type [RepoBisectGoodCmd](<https://github.com/danmestas/go-libfossil/blob/main/cli/repo_bisect.go#L17-L20>) RepoBisectGoodCmd marks a version as good. ```go type RepoBisectGoodCmd struct { Version string `arg:"" optional:"" help:"Version to mark (default: current checkout)"` Dir string `short:"d" help:"Checkout directory" default:"."` } ``` <a name="RepoBisectGoodCmd.Run"></a> ### func \(\*RepoBisectGoodCmd\) [Run](<https://github.com/danmestas/go-libfossil/blob/main/cli/repo_bisect.go#L22>) ```go func (c *RepoBisectGoodCmd) Run(g *Globals) error ``` <a name="RepoBisectLsCmd"></a> ## type [RepoBisectLsCmd](<https://github.com/danmestas/go-libfossil/blob/main/cli/repo_bisect.go#L65-L67>) RepoBisectLsCmd shows the bisect path. ```go type RepoBisectLsCmd struct { Dir string `short:"d" help:"Checkout directory" default:"."` } ``` <a name="RepoBisectLsCmd.Run"></a> ### func \(\*RepoBisectLsCmd\) [Run](<https://github.com/danmestas/go-libfossil/blob/main/cli/repo_bisect.go#L69>) ```go func (c *RepoBisectLsCmd) Run(g *Globals) error ``` <a name="RepoBisectNextCmd"></a> ## type [RepoBisectNextCmd](<https://github.com/danmestas/go-libfossil/blob/main/cli/repo_bisect.go#L47-L49>) RepoBisectNextCmd checks out the bisect midpoint version. ```go type RepoBisectNextCmd struct { Dir string `short:"d" help:"Checkout directory" default:"."` } ``` <a name="RepoBisectNextCmd.Run"></a> ### func \(\*RepoBisectNextCmd\) [Run](<https://github.com/danmestas/go-libfossil/blob/main/cli/repo_bisect.go#L51>) ```go func (c *RepoBisectNextCmd) Run(g *Globals) error ``` <a name="RepoBisectResetCmd"></a> ## type [RepoBisectResetCmd](<https://github.com/danmestas/go-libfossil/blob/main/cli/repo_bisect.go#L56-L58>) RepoBisectResetCmd clears bisect state. ```go type RepoBisectResetCmd struct { Dir string `short:"d" help:"Checkout directory" default:"."` } ``` <a name="RepoBisectResetCmd.Run"></a> ### func \(\*RepoBisectResetCmd\) [Run](<https://github.com/danmestas/go-libfossil/blob/main/cli/repo_bisect.go#L60>) ```go func (c *RepoBisectResetCmd) Run(g *Globals) error ``` <a name="RepoBisectSkipCmd"></a> ## type [RepoBisectSkipCmd](<https://github.com/danmestas/go-libfossil/blob/main/cli/repo_bisect.go#L37-L40>) RepoBisectSkipCmd skips the current version. ```go type RepoBisectSkipCmd struct { Version string `arg:"" optional:"" help:"Version to skip (default: current checkout)"` Dir string `short:"d" help:"Checkout directory" default:"."` } ``` <a name="RepoBisectSkipCmd.Run"></a> ### func \(\*RepoBisectSkipCmd\) [Run](<https://github.com/danmestas/go-libfossil/blob/main/cli/repo_bisect.go#L42>) ```go func (c *RepoBisectSkipCmd) Run(g *Globals) error ``` <a name="RepoBisectStatusCmd"></a> ## type [RepoBisectStatusCmd](<https://github.com/danmestas/go-libfossil/blob/main/cli/repo_bisect.go#L74-L76>) RepoBisectStatusCmd shows bisect state. ```go type RepoBisectStatusCmd struct { Dir string `short:"d" help:"Checkout directory" default:"."` } ``` <a name="RepoBisectStatusCmd.Run"></a> ### func \(\*RepoBisectStatusCmd\) [Run](<https://github.com/danmestas/go-libfossil/blob/main/cli/repo_bisect.go#L78>) ```go func (c *RepoBisectStatusCmd) Run(g *Globals) error ``` <a name="RepoBlameCmd"></a> ## type [RepoBlameCmd](<https://github.com/danmestas/go-libfossil/blob/main/cli/repo_annotate.go#L47-L49>) RepoBlameCmd is an alias for annotate. ```go type RepoBlameCmd struct { RepoAnnotateCmd } ``` <a name="RepoBranchCloseCmd"></a> ## type [RepoBranchCloseCmd](<https://github.com/danmestas/go-libfossil/blob/main/cli/repo_branch.go#L169-L172>) RepoBranchCloseCmd closes a branch. ```go type RepoBranchCloseCmd struct { Name string `arg:"" help:"Branch name to close"` User string `help:"User for control artifacts (default: OS username)"` } ``` <a name="RepoBranchCloseCmd.Run"></a> ### func \(\*RepoBranchCloseCmd\) [Run](<https://github.com/danmestas/go-libfossil/blob/main/cli/repo_branch.go#L174>) ```go func (c *RepoBranchCloseCmd) Run(g *Globals) error ``` <a name="RepoBranchCmd"></a> ## type [RepoBranchCmd](<https://github.com/danmestas/go-libfossil/blob/main/cli/repo_branch.go#L14-L18>) RepoBranchCmd groups branch operations. ```go type RepoBranchCmd struct { Ls RepoBranchLsCmd `cmd:"" help:"List branches"` New RepoBranchNewCmd `cmd:"" help:"Create new branch"` Close RepoBranchCloseCmd `cmd:"" help:"Close a branch"` } ``` <a name="RepoBranchLsCmd"></a> ## type [RepoBranchLsCmd](<https://github.com/danmestas/go-libfossil/blob/main/cli/repo_branch.go#L21-L24>) RepoBranchLsCmd lists branches. ```go type RepoBranchLsCmd struct { Closed bool `help:"Show only closed branches"` All bool `help:"Show all branches (open and closed)"` } ``` <a name="RepoBranchLsCmd.Run"></a> ### func \(\*RepoBranchLsCmd\) [Run](<https://github.com/danmestas/go-libfossil/blob/main/cli/repo_branch.go#L26>) ```go func (c *RepoBranchLsCmd) Run(g *Globals) error ``` <a name="RepoBranchNewCmd"></a> ## type [RepoBranchNewCmd](<https://github.com/danmestas/go-libfossil/blob/main/cli/repo_branch.go#L93-L98>) RepoBranchNewCmd creates a new branch. ```go type RepoBranchNewCmd struct { Name string `arg:"" help:"Branch name"` From string `help:"Parent version (default: tip)"` Message string `short:"m" help:"Checkin comment"` User string `help:"Checkin user (default: OS username)"` } ``` <a name="RepoBranchNewCmd.Run"></a> ### func \(\*RepoBranchNewCmd\) [Run](<https://github.com/danmestas/go-libfossil/blob/main/cli/repo_branch.go#L100>) ```go func (c *RepoBranchNewCmd) Run(g *Globals) error ``` <a name="RepoCatCmd"></a> ## type [RepoCatCmd](<https://github.com/danmestas/go-libfossil/blob/main/cli/repo_cat.go#L13-L16>) RepoCatCmd outputs the content of an artifact. ```go type RepoCatCmd struct { Artifact string `arg:"" help:"Artifact UUID or prefix"` Raw bool `help:"Output raw blob (no delta expansion)"` } ``` <a name="RepoCatCmd.Run"></a> ### func \(\*RepoCatCmd\) [Run](<https://github.com/danmestas/go-libfossil/blob/main/cli/repo_cat.go#L18>) ```go func (c *RepoCatCmd) Run(g *Globals) error ``` <a name="RepoCiCmd"></a> ## type [RepoCiCmd](<https://github.com/danmestas/go-libfossil/blob/main/cli/repo_ci.go#L14-L20>) RepoCiCmd creates a new checkin \(commit\). ```go type RepoCiCmd struct { Message string `short:"m" required:"" help:"Checkin comment"` Files []string `arg:"" required:"" help:"Files to checkin"` User string `help:"Checkin user (default: OS username)"` Parent string `help:"Parent version UUID (default: tip)"` Branch string `help:"Branch name for this checkin"` } ``` <a name="RepoCiCmd.Run"></a> ### func \(\*RepoCiCmd\) [Run](<https://github.com/danmestas/go-libfossil/blob/main/cli/repo_ci.go#L22>) ```go func (c *RepoCiCmd) Run(g *Globals) error ``` <a name="RepoCloneCmd"></a> ## type [RepoCloneCmd](<https://github.com/danmestas/go-libfossil/blob/main/cli/repo_clone.go#L13-L19>) RepoCloneCmd clones a remote Fossil repository. ```go type RepoCloneCmd struct { URL string `arg:"" optional:"" help:"Remote Fossil server URL"` Path string `arg:"" optional:"" help:"Local path for new repository file"` User string `short:"u" help:"Username for clone auth"` Pass string `short:"p" help:"Password for clone auth"` Invite string `help:"Invite token (from fossil invite)"` } ``` <a name="RepoCloneCmd.Run"></a> ### func \(\*RepoCloneCmd\) [Run](<https://github.com/danmestas/go-libfossil/blob/main/cli/repo_clone.go#L21>) ```go func (c *RepoCloneCmd) Run(g *Globals) error ``` <a name="RepoCmd"></a> ## type [RepoCmd](<https://github.com/danmestas/go-libfossil/blob/main/cli/repo.go#L5-L45>) RepoCmd is the top\-level command group for repository operations. Embed this in your CLI struct alongside Globals for a complete fossil CLI. ```go type RepoCmd struct { New RepoNewCmd `cmd:"" help:"Create a new repository"` Clone RepoCloneCmd `cmd:"" help:"Clone a remote repository"` Ci RepoCiCmd `cmd:"" help:"Checkin file changes"` Co RepoCoCmd `cmd:"" help:"Checkout a version"` Ls RepoLsCmd `cmd:"" help:"List files in a version"` Timeline RepoTimelineCmd `cmd:"" help:"Show repository history"` Cat RepoCatCmd `cmd:"" help:"Output artifact content"` Info RepoInfoCmd `cmd:"" help:"Repository statistics"` Hash RepoHashCmd `cmd:"" help:"Hash files (SHA1 or SHA3)"` Delta RepoDeltaCmd `cmd:"" help:"Delta create/apply operations"` Config RepoConfigCmd `cmd:"" help:"Repository configuration"` Query RepoQueryCmd `cmd:"" help:"Execute SQL against repository"` Verify RepoVerifyCmd `cmd:"" help:"Verify repository integrity"` Resolve RepoResolveCmd `cmd:"" help:"Resolve symbolic name to UUID"` Extract RepoExtractCmd `cmd:"" help:"Extract files from a version"` Wiki RepoWikiCmd `cmd:"" help:"Wiki page operations"` Tag RepoTagCmd `cmd:"" help:"Tag operations"` Open RepoOpenCmd `cmd:"" help:"Open a checkout in a directory"` Status RepoStatusCmd `cmd:"" help:"Show working directory changes"` Add RepoAddCmd `cmd:"" help:"Stage files for addition"` Rm RepoRmCmd `cmd:"" help:"Stage files for removal"` Rename RepoRenameCmd `cmd:"" help:"Rename a tracked file"` Revert RepoRevertCmd `cmd:"" help:"Undo staging changes"` Diff RepoDiffCmd `cmd:"" help:"Show changes vs a version"` Merge RepoMergeCmd `cmd:"" help:"Merge a divergent version"` Conflicts RepoConflictsCmd `cmd:"" help:"List/manage unresolved conflicts"` MarkResolved RepoMergeResolveCmd `cmd:"" name:"mark-resolved" help:"Mark a conflict as resolved"` Undo RepoUndoCmd `cmd:"" help:"Undo last operation"` Redo RepoRedoCmd `cmd:"" help:"Redo undone operation"` Stash RepoStashCmd `cmd:"" help:"Stash working changes"` Bisect RepoBisectCmd `cmd:"" help:"Binary search for bugs"` Annotate RepoAnnotateCmd `cmd:"" help:"Annotate file lines with version history"` Blame RepoBlameCmd `cmd:"" help:"Alias for annotate"` Branch RepoBranchCmd `cmd:"" help:"Branch operations"` UV RepoUVCmd `cmd:"" name:"uv" help:"Unversioned file operations"` Schema RepoSchemaCmd `cmd:"" help:"Synced table schema operations"` User RepoUserCmd `cmd:"" help:"User management"` Invite RepoInviteCmd `cmd:"" help:"Generate invite token for a user"` Serve RepoServeCmd `cmd:"" help:"Serve repository over HTTP for sync/clone"` } ``` <a name="RepoCoCmd"></a> ## type [RepoCoCmd](<https://github.com/danmestas/go-libfossil/blob/main/cli/repo_co.go#L12-L16>) RepoCoCmd checks out a version to the working directory. ```go type RepoCoCmd struct { Version string `arg:"" optional:"" help:"Version to checkout (default: tip)"` Dir string `short:"d" help:"Output directory (default: current dir)" default:"."` Force bool `help:"Overwrite existing files"` } ``` <a name="RepoCoCmd.Run"></a> ### func \(\*RepoCoCmd\) [Run](<https://github.com/danmestas/go-libfossil/blob/main/cli/repo_co.go#L18>) ```go func (c *RepoCoCmd) Run(g *Globals) error ``` <a name="RepoConfigCmd"></a> ## type [RepoConfigCmd](<https://github.com/danmestas/go-libfossil/blob/main/cli/repo_config.go#L6-L10>) RepoConfigCmd groups configuration operations. ```go type RepoConfigCmd struct { Ls RepoConfigLsCmd `cmd:"" help:"List all config entries"` Get RepoConfigGetCmd `cmd:"" help:"Get a config value"` Set RepoConfigSetCmd `cmd:"" help:"Set a config value"` } ``` <a name="RepoConfigGetCmd"></a> ## type [RepoConfigGetCmd](<https://github.com/danmestas/go-libfossil/blob/main/cli/repo_config.go#L38-L40>) RepoConfigGetCmd gets a single config value. ```go type RepoConfigGetCmd struct { Key string `arg:"" help:"Config key to get"` } ``` <a name="RepoConfigGetCmd.Run"></a> ### func \(\*RepoConfigGetCmd\) [Run](<https://github.com/danmestas/go-libfossil/blob/main/cli/repo_config.go#L42>) ```go func (c *RepoConfigGetCmd) Run(g *Globals) error ``` <a name="RepoConfigLsCmd"></a> ## type [RepoConfigLsCmd](<https://github.com/danmestas/go-libfossil/blob/main/cli/repo_config.go#L13>) RepoConfigLsCmd lists all config entries. ```go type RepoConfigLsCmd struct{} ``` <a name="RepoConfigLsCmd.Run"></a> ### func \(\*RepoConfigLsCmd\) [Run](<https://github.com/danmestas/go-libfossil/blob/main/cli/repo_config.go#L15>) ```go func (c *RepoConfigLsCmd) Run(g *Globals) error ``` <a name="RepoConfigSetCmd"></a> ## type [RepoConfigSetCmd](<https://github.com/danmestas/go-libfossil/blob/main/cli/repo_config.go#L58-L61>) RepoConfigSetCmd sets a config value. ```go type RepoConfigSetCmd struct { Key string `arg:"" help:"Config key"` Value string `arg:"" help:"Config value"` } ``` <a name="RepoConfigSetCmd.Run"></a> ### func \(\*RepoConfigSetCmd\) [Run](<https://github.com/danmestas/go-libfossil/blob/main/cli/repo_config.go#L63>) ```go func (c *RepoConfigSetCmd) Run(g *Globals) error ``` <a name="RepoConflictsCmd"></a> ## type [RepoConflictsCmd](<https://github.com/danmestas/go-libfossil/blob/main/cli/repo_conflicts.go#L15-L22>) RepoConflictsCmd groups conflict management operations. ```go type RepoConflictsCmd struct { Ls RepoConflictsLsCmd `cmd:"" default:"1" help:"List all conflicts"` Show RepoConflictsShowCmd `cmd:"" help:"Show all versions of a conflicted file"` Pick RepoConflictsPickCmd `cmd:"" help:"Resolve by picking one version"` Merge RepoConflictsMergeCmd `cmd:"" help:"Resolve by re-merging with a different strategy"` Extract RepoConflictsExtractCmd `cmd:"" help:"Extract all versions to disk for manual editing"` Dir string `short:"d" help:"Checkout directory" default:"."` } ``` <a name="RepoConflictsExtractCmd"></a> ## type [RepoConflictsExtractCmd](<https://github.com/danmestas/go-libfossil/blob/main/cli/repo_conflicts.go#L286-L289>) RepoConflictsExtractCmd extracts all versions to disk for manual editing. ```go type RepoConflictsExtractCmd struct { File string `arg:"" help:"Conflicted file to extract"` Dir string `short:"d" help:"Output directory" default:"."` } ``` <a name="RepoConflictsExtractCmd.Run"></a> ### func \(\*RepoConflictsExtractCmd\) [Run](<https://github.com/danmestas/go-libfossil/blob/main/cli/repo_conflicts.go#L291>) ```go func (c *RepoConflictsExtractCmd) Run(g *Globals) error ``` <a name="RepoConflictsLsCmd"></a> ## type [RepoConflictsLsCmd](<https://github.com/danmestas/go-libfossil/blob/main/cli/repo_conflicts.go#L25>) RepoConflictsLsCmd lists all conflicts. ```go type RepoConflictsLsCmd struct{} ``` <a name="RepoConflictsLsCmd.Run"></a> ### func \(\*RepoConflictsLsCmd\) [Run](<https://github.com/danmestas/go-libfossil/blob/main/cli/repo_conflicts.go#L27>) ```go func (c *RepoConflictsLsCmd) Run(g *Globals) error ``` <a name="RepoConflictsMergeCmd"></a> ## type [RepoConflictsMergeCmd](<https://github.com/danmestas/go-libfossil/blob/main/cli/repo_conflicts.go#L233-L237>) RepoConflictsMergeCmd resolves a conflict by re\-merging with a specified strategy. ```go type RepoConflictsMergeCmd struct { File string `arg:"" help:"Conflicted file to re-merge"` Strategy string `help:"Strategy to use" default:"three-way"` Dir string `short:"d" help:"Checkout directory" default:"."` } ``` <a name="RepoConflictsMergeCmd.Run"></a> ### func \(\*RepoConflictsMergeCmd\) [Run](<https://github.com/danmestas/go-libfossil/blob/main/cli/repo_conflicts.go#L239>) ```go func (c *RepoConflictsMergeCmd) Run(g *Globals) error ``` <a name="RepoConflictsPickCmd"></a> ## type [RepoConflictsPickCmd](<https://github.com/danmestas/go-libfossil/blob/main/cli/repo_conflicts.go#L186-L192>) RepoConflictsPickCmd resolves a conflict by picking one version. ```go type RepoConflictsPickCmd struct { File string `arg:"" help:"Conflicted file to resolve"` Local bool `help:"Keep local version" xor:"version"` Remote bool `help:"Keep remote version" xor:"version"` Base bool `help:"Revert to base version" xor:"version"` Dir string `short:"d" help:"Checkout directory" default:"."` } ``` <a name="RepoConflictsPickCmd.Run"></a> ### func \(\*RepoConflictsPickCmd\) [Run](<https://github.com/danmestas/go-libfossil/blob/main/cli/repo_conflicts.go#L194>) ```go func (c *RepoConflictsPickCmd) Run(g *Globals) error ``` <a name="RepoConflictsShowCmd"></a> ## type [RepoConflictsShowCmd](<https://github.com/danmestas/go-libfossil/blob/main/cli/repo_conflicts.go#L154-L156>) RepoConflictsShowCmd shows all versions of a conflicted file. ```go type RepoConflictsShowCmd struct { File string `arg:"" help:"Conflicted file to show"` } ``` <a name="RepoConflictsShowCmd.Run"></a> ### func \(\*RepoConflictsShowCmd\) [Run](<https://github.com/danmestas/go-libfossil/blob/main/cli/repo_conflicts.go#L158>) ```go func (c *RepoConflictsShowCmd) Run(g *Globals) error ``` <a name="RepoDeltaApplyCmd"></a> ## type [RepoDeltaApplyCmd](<https://github.com/danmestas/go-libfossil/blob/main/cli/repo_delta.go#L43-L47>) RepoDeltaApplyCmd applies a delta to a source file. ```go type RepoDeltaApplyCmd struct { Source string `arg:"" help:"Source (original) file"` Delta string `arg:"" help:"Delta file"` Output string `short:"o" help:"Output file (default: stdout)"` } ``` <a name="RepoDeltaApplyCmd.Run"></a> ### func \(\*RepoDeltaApplyCmd\) [Run](<https://github.com/danmestas/go-libfossil/blob/main/cli/repo_delta.go#L49>) ```go func (c *RepoDeltaApplyCmd) Run(g *Globals) error ``` <a name="RepoDeltaCmd"></a> ## type [RepoDeltaCmd](<https://github.com/danmestas/go-libfossil/blob/main/cli/repo_delta.go#L11-L14>) RepoDeltaCmd groups delta create/apply operations. ```go type RepoDeltaCmd struct { Create RepoDeltaCreateCmd `cmd:"" help:"Create a delta between two files"` Apply RepoDeltaApplyCmd `cmd:"" help:"Apply a delta to a source file"` } ``` <a name="RepoDeltaCreateCmd"></a> ## type [RepoDeltaCreateCmd](<https://github.com/danmestas/go-libfossil/blob/main/cli/repo_delta.go#L17-L21>) RepoDeltaCreateCmd creates a delta between two files. ```go type RepoDeltaCreateCmd struct { Source string `arg:"" help:"Source (original) file"` Target string `arg:"" help:"Target (new) file"` Output string `short:"o" help:"Output file (default: stdout)"` } ``` <a name="RepoDeltaCreateCmd.Run"></a> ### func \(\*RepoDeltaCreateCmd\) [Run](<https://github.com/danmestas/go-libfossil/blob/main/cli/repo_delta.go#L23>) ```go func (c *RepoDeltaCreateCmd) Run(g *Globals) error ``` <a name="RepoDiffCmd"></a> ## type [RepoDiffCmd](<https://github.com/danmestas/go-libfossil/blob/main/cli/repo_diff.go#L15-L19>) RepoDiffCmd shows changes in the working directory vs a repository version. ```go type RepoDiffCmd struct { Version string `arg:"" optional:"" help:"Version to diff against (default: tip)"` Dir string `short:"d" help:"Working directory to compare" default:"."` Unified int `short:"U" help:"Lines of context" default:"3"` } ``` <a name="RepoDiffCmd.Run"></a> ### func \(\*RepoDiffCmd\) [Run](<https://github.com/danmestas/go-libfossil/blob/main/cli/repo_diff.go#L21>) ```go func (c *RepoDiffCmd) Run(g *Globals) error ``` <a name="RepoExtractCmd"></a> ## type [RepoExtractCmd](<https://github.com/danmestas/go-libfossil/blob/main/cli/repo_extract.go#L12-L16>) RepoExtractCmd extracts files from a version. ```go type RepoExtractCmd struct { Version string `help:"Version to extract from (default: tip)"` Files []string `arg:"" optional:"" help:"Files to extract (default: all)"` Dir string `short:"d" help:"Output directory" default:"."` } ``` <a name="RepoExtractCmd.Run"></a> ### func \(\*RepoExtractCmd\) [Run](<https://github.com/danmestas/go-libfossil/blob/main/cli/repo_extract.go#L18>) ```go func (c *RepoExtractCmd) Run(g *Globals) error ``` <a name="RepoHashCmd"></a> ## type [RepoHashCmd](<https://github.com/danmestas/go-libfossil/blob/main/cli/repo_hash.go#L11-L14>) RepoHashCmd hashes files using SHA1 or SHA3\-256. ```go type RepoHashCmd struct { Files []string `arg:"" required:"" help:"Files to hash"` SHA3 bool `name:"sha3" help:"Use SHA3-256 instead of SHA1"` } ``` <a name="RepoHashCmd.Run"></a> ### func \(\*RepoHashCmd\) [Run](<https://github.com/danmestas/go-libfossil/blob/main/cli/repo_hash.go#L16>) ```go func (c *RepoHashCmd) Run(g *Globals) error ``` <a name="RepoInfoCmd"></a> ## type [RepoInfoCmd](<https://github.com/danmestas/go-libfossil/blob/main/cli/repo_info.go#L6>) RepoInfoCmd shows repository statistics. ```go type RepoInfoCmd struct{} ``` <a name="RepoInfoCmd.Run"></a> ### func \(\*RepoInfoCmd\) [Run](<https://github.com/danmestas/go-libfossil/blob/main/cli/repo_info.go#L8>) ```go func (c *RepoInfoCmd) Run(g *Globals) error ``` <a name="RepoInviteCmd"></a> ## type [RepoInviteCmd](<https://github.com/danmestas/go-libfossil/blob/main/cli/repo_invite.go#L12-L17>) RepoInviteCmd generates an invite token for a new user. ```go type RepoInviteCmd struct { Login string `arg:"" help:"Username for the invitee"` Cap string `help:"Capability string (e.g. oi)" required:""` URL string `help:"Sync URL to embed in token" default:""` TTL time.Duration `help:"Token time-to-live (e.g. 24h)" default:"0"` } ``` <a name="RepoInviteCmd.Run"></a> ### func \(\*RepoInviteCmd\) [Run](<https://github.com/danmestas/go-libfossil/blob/main/cli/repo_invite.go#L19>) ```go func (c *RepoInviteCmd) Run(g *Globals) error ``` <a name="RepoLsCmd"></a> ## type [RepoLsCmd](<https://github.com/danmestas/go-libfossil/blob/main/cli/repo_ls.go#L6-L9>) RepoLsCmd lists files in a version. ```go type RepoLsCmd struct { Version string `arg:"" optional:"" help:"Version to list (default: tip)"` Long bool `short:"l" help:"Show sizes and hashes"` } ``` <a name="RepoLsCmd.Run"></a> ### func \(\*RepoLsCmd\) [Run](<https://github.com/danmestas/go-libfossil/blob/main/cli/repo_ls.go#L11>) ```go func (c *RepoLsCmd) Run(g *Globals) error ``` <a name="RepoMergeCmd"></a> ## type [RepoMergeCmd](<https://github.com/danmestas/go-libfossil/blob/main/cli/repo_merge.go#L16-L21>) RepoMergeCmd merges a divergent version into the current checkout. ```go type RepoMergeCmd struct { Version string `arg:"" help:"Version to merge into current checkout"` Strategy string `help:"Override merge strategy for all files"` DryRun bool `help:"Show what would be merged without writing"` Dir string `short:"d" help:"Checkout directory" default:"."` } ``` <a name="RepoMergeCmd.Run"></a> ### func \(\*RepoMergeCmd\) [Run](<https://github.com/danmestas/go-libfossil/blob/main/cli/repo_merge.go#L23>) ```go func (c *RepoMergeCmd) Run(g *Globals) error ``` <a name="RepoMergeResolveCmd"></a> ## type [RepoMergeResolveCmd](<https://github.com/danmestas/go-libfossil/blob/main/cli/repo_merge_resolve.go#L10-L13>) RepoMergeResolveCmd marks a file conflict as resolved. ```go type RepoMergeResolveCmd struct { File string `arg:"" help:"File to mark as resolved"` Dir string `short:"d" help:"Checkout directory" default:"."` } ``` <a name="RepoMergeResolveCmd.Run"></a> ### func \(\*RepoMergeResolveCmd\) [Run](<https://github.com/danmestas/go-libfossil/blob/main/cli/repo_merge_resolve.go#L15>) ```go func (c *RepoMergeResolveCmd) Run(g *Globals) error ``` <a name="RepoNewCmd"></a> ## type [RepoNewCmd](<https://github.com/danmestas/go-libfossil/blob/main/cli/repo_new.go#L10-L13>) RepoNewCmd creates a new Fossil repository. ```go type RepoNewCmd struct { Path string `arg:"" help:"Path for new repository file"` User string `help:"Default user name" default:""` } ``` <a name="RepoNewCmd.Run"></a> ### func \(\*RepoNewCmd\) [Run](<https://github.com/danmestas/go-libfossil/blob/main/cli/repo_new.go#L15>) ```go func (c *RepoNewCmd) Run(g *Globals) error ``` <a name="RepoOpenCmd"></a> ## type [RepoOpenCmd](<https://github.com/danmestas/go-libfossil/blob/main/cli/repo_open.go#L12-L14>) RepoOpenCmd opens a checkout in a directory, creating the .fslckout database. ```go type RepoOpenCmd struct { Dir string `arg:"" optional:"" help:"Checkout directory (default: current dir)" default:"."` } ``` <a name="RepoOpenCmd.Run"></a> ### func \(\*RepoOpenCmd\) [Run](<https://github.com/danmestas/go-libfossil/blob/main/cli/repo_open.go#L16>) ```go func (c *RepoOpenCmd) Run(g *Globals) error ``` <a name="RepoQueryCmd"></a> ## type [RepoQueryCmd](<https://github.com/danmestas/go-libfossil/blob/main/cli/repo_query.go#L9-L11>) RepoQueryCmd executes raw SQL against the repository database. ```go type RepoQueryCmd struct { SQL string `arg:"" help:"SQL query to execute"` } ``` <a name="RepoQueryCmd.Run"></a> ### func \(\*RepoQueryCmd\) [Run](<https://github.com/danmestas/go-libfossil/blob/main/cli/repo_query.go#L13>) ```go func (c *RepoQueryCmd) Run(g *Globals) error ``` <a name="RepoRedoCmd"></a> ## type [RepoRedoCmd](<https://github.com/danmestas/go-libfossil/blob/main/cli/repo_undo.go#L18-L20>) RepoRedoCmd re\-applies the last undone operation. ```go type RepoRedoCmd struct { Dir string `short:"d" help:"Checkout directory" default:"."` } ``` <a name="RepoRedoCmd.Run"></a> ### func \(\*RepoRedoCmd\) [Run](<https://github.com/danmestas/go-libfossil/blob/main/cli/repo_undo.go#L22>) ```go func (c *RepoRedoCmd) Run(g *Globals) error ``` <a name="RepoRenameCmd"></a> ## type [RepoRenameCmd](<https://github.com/danmestas/go-libfossil/blob/main/cli/repo_rename.go#L6-L10>) RepoRenameCmd renames a tracked file in the checkout. ```go type RepoRenameCmd struct { From string `arg:"" help:"Current file name"` To string `arg:"" help:"New file name"` Dir string `short:"d" help:"Checkout directory" default:"."` } ``` <a name="RepoRenameCmd.Run"></a> ### func \(\*RepoRenameCmd\) [Run](<https://github.com/danmestas/go-libfossil/blob/main/cli/repo_rename.go#L12>) ```go func (c *RepoRenameCmd) Run(g *Globals) error ``` <a name="RepoResolveCmd"></a> ## type [RepoResolveCmd](<https://github.com/danmestas/go-libfossil/blob/main/cli/repo_resolve.go#L6-L8>) RepoResolveCmd resolves a symbolic name to UUID and RID. ```go type RepoResolveCmd struct { Name string `arg:"" help:"Symbolic name, UUID, or prefix to resolve (e.g. trunk, tip, UUID prefix)"` } ``` <a name="RepoResolveCmd.Run"></a> ### func \(\*RepoResolveCmd\) [Run](<https://github.com/danmestas/go-libfossil/blob/main/cli/repo_resolve.go#L10>) ```go func (c *RepoResolveCmd) Run(g *Globals) error ``` <a name="RepoRevertCmd"></a> ## type [RepoRevertCmd](<https://github.com/danmestas/go-libfossil/blob/main/cli/repo_revert.go#L6-L9>) RepoRevertCmd undoes staging changes in the checkout. ```go type RepoRevertCmd struct { Files []string `arg:"" optional:"" help:"Files to revert (default: all)"` Dir string `short:"d" help:"Checkout directory" default:"."` } ``` <a name="RepoRevertCmd.Run"></a> ### func \(\*RepoRevertCmd\) [Run](<https://github.com/danmestas/go-libfossil/blob/main/cli/repo_revert.go#L11>) ```go func (c *RepoRevertCmd) Run(g *Globals) error ``` <a name="RepoRmCmd"></a> ## type [RepoRmCmd](<https://github.com/danmestas/go-libfossil/blob/main/cli/repo_rm.go#L6-L9>) RepoRmCmd stages files for removal from the checkout. ```go type RepoRmCmd struct { Files []string `arg:"" required:"" help:"Files to stage for removal"` Dir string `short:"d" help:"Checkout directory" default:"."` } ``` <a name="RepoRmCmd.Run"></a> ### func \(\*RepoRmCmd\) [Run](<https://github.com/danmestas/go-libfossil/blob/main/cli/repo_rm.go#L11>) ```go func (c *RepoRmCmd) Run(g *Globals) error ``` <a name="RepoSchemaAddCmd"></a> ## type [RepoSchemaAddCmd](<https://github.com/danmestas/go-libfossil/blob/main/cli/repo_schema.go#L22-L26>) RepoSchemaAddCmd registers a new synced table. ```go type RepoSchemaAddCmd struct { Name string `arg:"" help:"Table name (without x_ prefix)"` Columns string `required:"" help:"Column defs: name:type[:pk],... (e.g. peer_id:text:pk,addr:text)"` Conflict string `default:"mtime-wins" enum:"self-write,mtime-wins,owner-write" help:"Conflict strategy"` } ``` <a name="RepoSchemaAddCmd.Run"></a> ### func \(\*RepoSchemaAddCmd\) [Run](<https://github.com/danmestas/go-libfossil/blob/main/cli/repo_schema.go#L28>) ```go func (c *RepoSchemaAddCmd) Run(g *Globals) error ``` <a name="RepoSchemaCmd"></a> ## type [RepoSchemaCmd](<https://github.com/danmestas/go-libfossil/blob/main/cli/repo_schema.go#L14-L19>) RepoSchemaCmd groups synced table schema operations. ```go type RepoSchemaCmd struct { Add RepoSchemaAddCmd `cmd:"" help:"Register a new synced table"` List RepoSchemaListCmd `cmd:"" help:"List registered synced tables"` Show RepoSchemaShowCmd `cmd:"" help:"Show table schema details"` Remove RepoSchemaRemoveCmd `cmd:"" help:"Remove a synced table registration"` } ``` <a name="RepoSchemaListCmd"></a> ## type [RepoSchemaListCmd](<https://github.com/danmestas/go-libfossil/blob/main/cli/repo_schema.go#L60>) RepoSchemaListCmd lists registered synced tables. ```go type RepoSchemaListCmd struct{} ``` <a name="RepoSchemaListCmd.Run"></a> ### func \(\*RepoSchemaListCmd\) [Run](<https://github.com/danmestas/go-libfossil/blob/main/cli/repo_schema.go#L62>) ```go func (c *RepoSchemaListCmd) Run(g *Globals) error ``` <a name="RepoSchemaRemoveCmd"></a> ## type [RepoSchemaRemoveCmd](<https://github.com/danmestas/go-libfossil/blob/main/cli/repo_schema.go#L133-L135>) RepoSchemaRemoveCmd removes a synced table registration. ```go type RepoSchemaRemoveCmd struct { Name string `arg:"" help:"Table name (without x_ prefix)"` } ``` <a name="RepoSchemaRemoveCmd.Run"></a> ### func \(\*RepoSchemaRemoveCmd\) [Run](<https://github.com/danmestas/go-libfossil/blob/main/cli/repo_schema.go#L137>) ```go func (c *RepoSchemaRemoveCmd) Run(g *Globals) error ``` <a name="RepoSchemaShowCmd"></a> ## type [RepoSchemaShowCmd](<https://github.com/danmestas/go-libfossil/blob/main/cli/repo_schema.go#L93-L95>) RepoSchemaShowCmd shows table schema details. ```go type RepoSchemaShowCmd struct { Name string `arg:"" help:"Table name (without x_ prefix)"` } ``` <a name="RepoSchemaShowCmd.Run"></a> ### func \(\*RepoSchemaShowCmd\) [Run](<https://github.com/danmestas/go-libfossil/blob/main/cli/repo_schema.go#L97>) ```go func (c *RepoSchemaShowCmd) Run(g *Globals) error ``` <a name="RepoServeCmd"></a> ## type [RepoServeCmd](<https://github.com/danmestas/go-libfossil/blob/main/cli/repo_serve.go#L17-L19>) RepoServeCmd starts an HTTP xfer server for the repository so a remote fossil client \-\- the canonical binary or another instance of this tool \-\- can clone or sync against it. This is a thin wrapper: all serving logic lives in Repo.ServeHTTP; the command's job is to open the repo, resolve the bind address, and translate process interrupt into the context cancellation that ServeHTTP already honors. ```go type RepoServeCmd struct { Addr string `short:"P" default:"127.0.0.1:8080" help:"Bind address as host:port"` } ``` <a name="RepoServeCmd.Run"></a> ### func \(\*RepoServeCmd\) [Run](<https://github.com/danmestas/go-libfossil/blob/main/cli/repo_serve.go#L21>) ```go func (c *RepoServeCmd) Run(g *Globals) error ``` <a name="RepoStashApplyCmd"></a> ## type [RepoStashApplyCmd](<https://github.com/danmestas/go-libfossil/blob/main/cli/repo_stash.go#L45-L48>) RepoStashApplyCmd applies a stash entry without removing it. ```go type RepoStashApplyCmd struct { ID int64 `arg:"" optional:"" help:"Stash ID to apply (default: latest)"` Dir string `short:"d" help:"Checkout directory" default:"."` } ``` <a name="RepoStashApplyCmd.Run"></a> ### func \(\*RepoStashApplyCmd\) [Run](<https://github.com/danmestas/go-libfossil/blob/main/cli/repo_stash.go#L50>) ```go func (c *RepoStashApplyCmd) Run(g *Globals) error ``` <a name="RepoStashClearCmd"></a> ## type [RepoStashClearCmd](<https://github.com/danmestas/go-libfossil/blob/main/cli/repo_stash.go#L98>) RepoStashClearCmd removes all stash entries. ```go type RepoStashClearCmd struct{} ``` <a name="RepoStashClearCmd.Run"></a> ### func \(\*RepoStashClearCmd\) [Run](<https://github.com/danmestas/go-libfossil/blob/main/cli/repo_stash.go#L100>) ```go func (c *RepoStashClearCmd) Run(g *Globals) error ``` <a name="RepoStashCmd"></a> ## type [RepoStashCmd](<https://github.com/danmestas/go-libfossil/blob/main/cli/repo_stash.go#L6-L13>) RepoStashCmd groups stash operations. ```go type RepoStashCmd struct { Save RepoStashSaveCmd `cmd:"" help:"Stash working changes"` Pop RepoStashPopCmd `cmd:"" help:"Apply top stash and drop it"` Apply RepoStashApplyCmd `cmd:"" help:"Apply stash without dropping"` Ls RepoStashLsCmd `cmd:"" help:"List stash entries"` Drop RepoStashDropCmd `cmd:"" help:"Remove stash entry"` Clear RepoStashClearCmd `cmd:"" help:"Remove all stash entries"` } ``` <a name="RepoStashDropCmd"></a> ## type [RepoStashDropCmd](<https://github.com/danmestas/go-libfossil/blob/main/cli/repo_stash.go#L84-L86>) RepoStashDropCmd removes a stash entry by ID. ```go type RepoStashDropCmd struct { ID int64 `arg:"" required:"" help:"Stash ID to drop"` } ``` <a name="RepoStashDropCmd.Run"></a> ### func \(\*RepoStashDropCmd\) [Run](<https://github.com/danmestas/go-libfossil/blob/main/cli/repo_stash.go#L88>) ```go func (c *RepoStashDropCmd) Run(g *Globals) error ``` <a name="RepoStashLsCmd"></a> ## type [RepoStashLsCmd](<https://github.com/danmestas/go-libfossil/blob/main/cli/repo_stash.go#L60>) RepoStashLsCmd lists stash entries. ```go type RepoStashLsCmd struct{} ``` <a name="RepoStashLsCmd.Run"></a> ### func \(\*RepoStashLsCmd\) [Run](<https://github.com/danmestas/go-libfossil/blob/main/cli/repo_stash.go#L62>) ```go func (c *RepoStashLsCmd) Run(g *Globals) error ``` <a name="RepoStashPopCmd"></a> ## type [RepoStashPopCmd](<https://github.com/danmestas/go-libfossil/blob/main/cli/repo_stash.go#L31-L33>) RepoStashPopCmd pops the top stash entry. ```go type RepoStashPopCmd struct { Dir string `short:"d" help:"Checkout directory" default:"."` } ``` <a name="RepoStashPopCmd.Run"></a> ### func \(\*RepoStashPopCmd\) [Run](<https://github.com/danmestas/go-libfossil/blob/main/cli/repo_stash.go#L35>) ```go func (c *RepoStashPopCmd) Run(g *Globals) error ``` <a name="RepoStashSaveCmd"></a> ## type [RepoStashSaveCmd](<https://github.com/danmestas/go-libfossil/blob/main/cli/repo_stash.go#L16-L19>) RepoStashSaveCmd saves working changes to the stash. ```go type RepoStashSaveCmd struct { Message string `short:"m" help:"Stash message" default:""` Dir string `short:"d" help:"Checkout directory" default:"."` } ``` <a name="RepoStashSaveCmd.Run"></a> ### func \(\*RepoStashSaveCmd\) [Run](<https://github.com/danmestas/go-libfossil/blob/main/cli/repo_stash.go#L21>) ```go func (c *RepoStashSaveCmd) Run(g *Globals) error ``` <a name="RepoStatusCmd"></a> ## type [RepoStatusCmd](<https://github.com/danmestas/go-libfossil/blob/main/cli/repo_status.go#L16-L18>) RepoStatusCmd shows working directory changes vs the tip version. ```go type RepoStatusCmd struct { Dir string `short:"d" help:"Checkout directory to scan" default:"."` } ``` <a name="RepoStatusCmd.Run"></a> ### func \(\*RepoStatusCmd\) [Run](<https://github.com/danmestas/go-libfossil/blob/main/cli/repo_status.go#L20>) ```go func (c *RepoStatusCmd) Run(g *Globals) error ``` <a name="RepoTagAddCmd"></a> ## type [RepoTagAddCmd](<https://github.com/danmestas/go-libfossil/blob/main/cli/repo_tag.go#L54-L58>) RepoTagAddCmd adds a tag to an artifact. ```go type RepoTagAddCmd struct { Tag string `arg:"" help:"Tag name"` Value string `arg:"" optional:"" help:"Tag value (optional)"` Version string `help:"Version to tag (default: tip)"` } ``` <a name="RepoTagAddCmd.Run"></a> ### func \(\*RepoTagAddCmd\) [Run](<https://github.com/danmestas/go-libfossil/blob/main/cli/repo_tag.go#L60>) ```go func (c *RepoTagAddCmd) Run(g *Globals) error ``` <a name="RepoTagCmd"></a> ## type [RepoTagCmd](<https://github.com/danmestas/go-libfossil/blob/main/cli/repo_tag.go#L6-L9>) RepoTagCmd groups tag operations. ```go type RepoTagCmd struct { Ls RepoTagLsCmd `cmd:"" help:"List tags on an artifact"` Add RepoTagAddCmd `cmd:"" help:"Add a tag to an artifact"` } ``` <a name="RepoTagLsCmd"></a> ## type [RepoTagLsCmd](<https://github.com/danmestas/go-libfossil/blob/main/cli/repo_tag.go#L12-L14>) RepoTagLsCmd lists tags on an artifact. ```go type RepoTagLsCmd struct { Version string `arg:"" optional:"" help:"Version to list tags for (default: tip)"` } ``` <a name="RepoTagLsCmd.Run"></a> ### func \(\*RepoTagLsCmd\) [Run](<https://github.com/danmestas/go-libfossil/blob/main/cli/repo_tag.go#L16>) ```go func (c *RepoTagLsCmd) Run(g *Globals) error ``` <a name="RepoTimelineCmd"></a> ## type [RepoTimelineCmd](<https://github.com/danmestas/go-libfossil/blob/main/cli/repo_timeline.go#L10-L12>) RepoTimelineCmd shows repository timeline/history. ```go type RepoTimelineCmd struct { Limit int `short:"n" default:"20" help:"Number of entries"` } ``` <a name="RepoTimelineCmd.Run"></a> ### func \(\*RepoTimelineCmd\) [Run](<https://github.com/danmestas/go-libfossil/blob/main/cli/repo_timeline.go#L14>) ```go func (c *RepoTimelineCmd) Run(g *Globals) error ``` <a name="RepoUVCmd"></a> ## type [RepoUVCmd](<https://github.com/danmestas/go-libfossil/blob/main/cli/repo_uv.go#L10-L15>) RepoUVCmd groups unversioned file operations. ```go type RepoUVCmd struct { Ls RepoUVLsCmd `cmd:"" help:"List unversioned files"` Put RepoUVPutCmd `cmd:"" help:"Add or update an unversioned file"` Get RepoUVGetCmd `cmd:"" help:"Retrieve an unversioned file"` Delete RepoUVDeleteCmd `cmd:"" help:"Delete an unversioned file (creates tombstone)"` } ``` <a name="RepoUVDeleteCmd"></a> ## type [RepoUVDeleteCmd](<https://github.com/danmestas/go-libfossil/blob/main/cli/repo_uv.go#L110-L112>) RepoUVDeleteCmd deletes an unversioned file \(creates a tombstone\). ```go type RepoUVDeleteCmd struct { Name string `arg:"" help:"Name of the unversioned file to delete"` } ``` <a name="RepoUVDeleteCmd.Run"></a> ### func \(\*RepoUVDeleteCmd\) [Run](<https://github.com/danmestas/go-libfossil/blob/main/cli/repo_uv.go#L114>) ```go func (c *RepoUVDeleteCmd) Run(g *Globals) error ``` <a name="RepoUVGetCmd"></a> ## type [RepoUVGetCmd](<https://github.com/danmestas/go-libfossil/blob/main/cli/repo_uv.go#L79-L82>) RepoUVGetCmd retrieves an unversioned file. ```go type RepoUVGetCmd struct { Name string `arg:"" help:"Name of the unversioned file"` Output string `short:"o" help:"Output file (default: stdout)"` } ``` <a name="RepoUVGetCmd.Run"></a> ### func \(\*RepoUVGetCmd\) [Run](<https://github.com/danmestas/go-libfossil/blob/main/cli/repo_uv.go#L84>) ```go func (c *RepoUVGetCmd) Run(g *Globals) error ``` <a name="RepoUVLsCmd"></a> ## type [RepoUVLsCmd](<https://github.com/danmestas/go-libfossil/blob/main/cli/repo_uv.go#L18>) RepoUVLsCmd lists unversioned files. ```go type RepoUVLsCmd struct{} ``` <a name="RepoUVLsCmd.Run"></a> ### func \(\*RepoUVLsCmd\) [Run](<https://github.com/danmestas/go-libfossil/blob/main/cli/repo_uv.go#L20>) ```go func (c *RepoUVLsCmd) Run(g *Globals) error ``` <a name="RepoUVPutCmd"></a> ## type [RepoUVPutCmd](<https://github.com/danmestas/go-libfossil/blob/main/cli/repo_uv.go#L53-L56>) RepoUVPutCmd adds or updates an unversioned file. ```go type RepoUVPutCmd struct { Name string `arg:"" help:"Name of the unversioned file"` File string `arg:"" help:"Local file to upload"` } ``` <a name="RepoUVPutCmd.Run"></a> ### func \(\*RepoUVPutCmd\) [Run](<https://github.com/danmestas/go-libfossil/blob/main/cli/repo_uv.go#L58>) ```go func (c *RepoUVPutCmd) Run(g *Globals) error ``` <a name="RepoUndoCmd"></a> ## type [RepoUndoCmd](<https://github.com/danmestas/go-libfossil/blob/main/cli/repo_undo.go#L4-L6>) RepoUndoCmd undoes the last checkout operation. ```go type RepoUndoCmd struct { Dir string `short:"d" help:"Checkout directory" default:"."` } ``` <a name="RepoUndoCmd.Run"></a> ### func \(\*RepoUndoCmd\) [Run](<https://github.com/danmestas/go-libfossil/blob/main/cli/repo_undo.go#L8>) ```go func (c *RepoUndoCmd) Run(g *Globals) error ``` <a name="RepoUserCmd"></a> ## type [RepoUserCmd](<https://github.com/danmestas/go-libfossil/blob/main/cli/repo_user.go#L12-L18>) RepoUserCmd groups user management operations. ```go type RepoUserCmd struct { Add UserAddCmd `cmd:"" help:"Create a new user"` List UserListCmd `cmd:"" help:"List all users"` Update UserUpdateCmd `cmd:"" help:"Update user capabilities"` Rm UserRmCmd `cmd:"" help:"Delete a user"` Passwd UserPasswdCmd `cmd:"" help:"Reset user password"` } ``` <a name="RepoVerifyCmd"></a> ## type [RepoVerifyCmd](<https://github.com/danmestas/go-libfossil/blob/main/cli/repo_verify.go#L6>) RepoVerifyCmd verifies repository integrity. ```go type RepoVerifyCmd struct{} ``` <a name="RepoVerifyCmd.Run"></a> ### func \(\*RepoVerifyCmd\) [Run](<https://github.com/danmestas/go-libfossil/blob/main/cli/repo_verify.go#L8>) ```go func (c *RepoVerifyCmd) Run(g *Globals) error ``` <a name="RepoWikiCmd"></a> ## type [RepoWikiCmd](<https://github.com/danmestas/go-libfossil/blob/main/cli/repo_wiki.go#L13-L16>) RepoWikiCmd groups wiki operations. ```go type RepoWikiCmd struct { Ls RepoWikiLsCmd `cmd:"" help:"List wiki pages"` Export RepoWikiExportCmd `cmd:"" help:"Export a wiki page"` } ``` <a name="RepoWikiExportCmd"></a> ## type [RepoWikiExportCmd](<https://github.com/danmestas/go-libfossil/blob/main/cli/repo_wiki.go#L60-L63>) RepoWikiExportCmd exports a wiki page. ```go type RepoWikiExportCmd struct { Page string `arg:"" help:"Wiki page name or artifact UUID"` Output string `short:"o" help:"Output file (default: stdout)"` } ``` <a name="RepoWikiExportCmd.Run"></a> ### func \(\*RepoWikiExportCmd\) [Run](<https://github.com/danmestas/go-libfossil/blob/main/cli/repo_wiki.go#L65>) ```go func (c *RepoWikiExportCmd) Run(g *Globals) error ``` <a name="RepoWikiLsCmd"></a> ## type [RepoWikiLsCmd](<https://github.com/danmestas/go-libfossil/blob/main/cli/repo_wiki.go#L19>) RepoWikiLsCmd lists wiki pages. ```go type RepoWikiLsCmd struct{} ``` <a name="RepoWikiLsCmd.Run"></a> ### func \(\*RepoWikiLsCmd\) [Run](<https://github.com/danmestas/go-libfossil/blob/main/cli/repo_wiki.go#L21>) ```go func (c *RepoWikiLsCmd) Run(g *Globals) error ``` <a name="UserAddCmd"></a> ## type [UserAddCmd](<https://github.com/danmestas/go-libfossil/blob/main/cli/repo_user.go#L21-L24>) UserAddCmd creates a new user. ```go type UserAddCmd struct { Login string `arg:"" help:"Username"` Cap string `help:"Capability string (e.g. oi)" required:""` } ``` <a name="UserAddCmd.Run"></a> ### func \(\*UserAddCmd\) [Run](<https://github.com/danmestas/go-libfossil/blob/main/cli/repo_user.go#L26>) ```go func (c *UserAddCmd) Run(g *Globals) error ``` <a name="UserListCmd"></a> ## type [UserListCmd](<https://github.com/danmestas/go-libfossil/blob/main/cli/repo_user.go#L51>) UserListCmd lists all users. ```go type UserListCmd struct{} ``` <a name="UserListCmd.Run"></a> ### func \(\*UserListCmd\) [Run](<https://github.com/danmestas/go-libfossil/blob/main/cli/repo_user.go#L53>) ```go func (c *UserListCmd) Run(g *Globals) error ``` <a name="UserPasswdCmd"></a> ## type [UserPasswdCmd](<https://github.com/danmestas/go-libfossil/blob/main/cli/repo_user.go#L111-L113>) UserPasswdCmd resets a user's password. ```go type UserPasswdCmd struct { Login string `arg:"" help:"Username"` } ``` <a name="UserPasswdCmd.Run"></a> ### func \(\*UserPasswdCmd\) [Run](<https://github.com/danmestas/go-libfossil/blob/main/cli/repo_user.go#L115>) ```go func (c *UserPasswdCmd) Run(g *Globals) error ``` <a name="UserRmCmd"></a> ## type [UserRmCmd](<https://github.com/danmestas/go-libfossil/blob/main/cli/repo_user.go#L92-L94>) UserRmCmd deletes a user. ```go type UserRmCmd struct { Login string `arg:"" help:"Username"` } ``` <a name="UserRmCmd.Run"></a> ### func \(\*UserRmCmd\) [Run](<https://github.com/danmestas/go-libfossil/blob/main/cli/repo_user.go#L96>) ```go func (c *UserRmCmd) Run(g *Globals) error ``` <a name="UserUpdateCmd"></a> ## type [UserUpdateCmd](<https://github.com/danmestas/go-libfossil/blob/main/cli/repo_user.go#L72-L75>) UserUpdateCmd updates user capabilities. ```go type UserUpdateCmd struct { Login string `arg:"" help:"Username"` Cap string `help:"New capability string" required:""` } ``` <a name="UserUpdateCmd.Run"></a> ### func \(\*UserUpdateCmd\) [Run](<https://github.com/danmestas/go-libfossil/blob/main/cli/repo_user.go#L77>) ```go func (c *UserUpdateCmd) Run(g *Globals) error ``` <a name="VersionCmd"></a> ## type [VersionCmd](<https://github.com/danmestas/go-libfossil/blob/main/cli/version.go#L52>) VersionCmd prints a single\-line, stable, machine\-parseable build identifier and exits 0. ```go type VersionCmd struct{} ``` <a name="VersionCmd.Run"></a> ### func \(\*VersionCmd\) [Run](<https://github.com/danmestas/go-libfossil/blob/main/cli/version.go#L56>) ```go func (c *VersionCmd) Run() error ``` Run prints Version\(\) and always succeeds: there is nothing about the local environment that can make reporting the build identifier fail. Generated by [gomarkdoc](<https://github.com/princjef/gomarkdoc>)