Documentation
¶
Index ¶
- Constants
- Variables
- func Clone(ctx context.Context, path string, t Transport, opts CloneOpts) (*Repo, *CloneResult, error)
- func JulianToTime(j float64) time.Time
- func TimeToJulian(t time.Time) float64
- type AnnotateOpts
- type AnnotatedLine
- type BisectSession
- type BuggifyChecker
- type Checkout
- func (c *Checkout) Add(patterns []string) (int, error)
- func (c *Checkout) Checkin(opts CheckoutCommitOpts) (int64, string, error)
- func (c *Checkout) Close() error
- func (c *Checkout) Dir() string
- func (c *Checkout) Extract(rid int64, opts ExtractOpts) error
- func (c *Checkout) HasChanges() (bool, error)
- func (c *Checkout) Remove(patterns []string) error
- func (c *Checkout) Rename(oldName, newName string) error
- func (c *Checkout) Revert(opts RevertOpts) error
- func (c *Checkout) Status() ([]CheckoutChange, error)
- func (c *Checkout) Update(opts UpdateOpts) error
- func (c *Checkout) Version() (int64, string, error)
- func (c *Checkout) WouldFork() (bool, error)
- type CheckoutChange
- type CheckoutCommitOpts
- type CheckoutCreateOpts
- type CheckoutObserver
- type CheckoutOpenOpts
- type CheckoutOpts
- type CloneOpts
- type CloneResult
- type CommitEnd
- type CommitOpts
- type CommitStart
- type CreateOpts
- type DiffEntry
- type ExtractEnd
- type ExtractOpts
- type ExtractStart
- type FileEntry
- type FileToCommit
- type Fork
- type FslError
- type FslID
- type FslSize
- type HTTPOption
- type HandleEnd
- type HandleOpts
- type HandleStart
- type LogEntry
- type LogOpts
- type MergeConflict
- type MergeConflictError
- type MergeOpts
- type MergeResult
- type MockTransport
- type RC
- type Repo
- func (r *Repo) Annotate(opts AnnotateOpts) ([]AnnotatedLine, error)
- func (r *Repo) BranchTip(name string) (int64, error)
- func (r *Repo) Close() error
- func (r *Repo) Commit(opts CommitOpts) (int64, string, error)
- func (r *Repo) Config(key string) (string, error)
- func (r *Repo) CreateCheckout(dir string, opts CheckoutCreateOpts) (*Checkout, error)
- func (r *Repo) CreateUser(opts UserOpts) error
- func (r *Repo) DB() *db.DB
- func (r *Repo) DeleteUser(login string) error
- func (r *Repo) DetectForks() ([]Fork, error)
- func (r *Repo) Diff(ridA, ridB int64, filePath string) ([]DiffEntry, error)
- func (r *Repo) FindCommonAncestor(ridA, ridB int64) (int64, error)
- func (r *Repo) GetUser(login string) (User, error)
- func (r *Repo) HandleSync(ctx context.Context, payload []byte) ([]byte, error)
- func (r *Repo) HandleSyncWithOpts(ctx context.Context, payload []byte, opts HandleOpts) ([]byte, error)
- func (r *Repo) Inner() *repo.Repo
- func (r *Repo) ListConflictForks() ([]string, error)
- func (r *Repo) ListFiles(rid int64) ([]FileEntry, error)
- func (r *Repo) ListUsers() ([]User, error)
- func (r *Repo) Merge(srcBranch, dstBranch, message, user string) (int64, string, error)
- func (r *Repo) OpenCheckout(dir string, opts CheckoutOpenOpts) (*Checkout, error)
- func (r *Repo) Path() string
- func (r *Repo) Redo(dir string) error
- func (r *Repo) ResolveConflictFork(filename string) error
- func (r *Repo) ServeHTTP(ctx context.Context, addr string) error
- func (r *Repo) SetCaps(login, caps string) error
- func (r *Repo) SetConfig(key, value string) error
- func (r *Repo) SetPassword(login, password string) error
- func (r *Repo) StashApply(dir string, id int64) error
- func (r *Repo) StashClear() error
- func (r *Repo) StashDrop(id int64) error
- func (r *Repo) StashList() ([]StashEntry, error)
- func (r *Repo) StashPop(dir string) error
- func (r *Repo) StashSave(dir, comment string) error
- func (r *Repo) Sync(ctx context.Context, t Transport, opts SyncOpts) (*SyncResult, error)
- func (r *Repo) Tag(opts TagOpts) (int64, error)
- func (r *Repo) Timeline(opts LogOpts) ([]LogEntry, error)
- func (r *Repo) UVDelete(name string, mtime time.Time) error
- func (r *Repo) UVList() ([]UVEntry, error)
- func (r *Repo) UVRead(name string) ([]byte, int64, string, error)
- func (r *Repo) UVWrite(name string, content []byte, mtime time.Time) error
- func (r *Repo) Undo(dir string) error
- func (r *Repo) Verify() error
- func (r *Repo) WithTx(fn func(tx *db.Tx) error) error
- func (r *Repo) XferHandler() http.HandlerFunc
- type RevertOpts
- type RoundStats
- type ScanEnd
- type SessionEnd
- type SessionStart
- type StashEntry
- type StatusEntry
- type StatusOpts
- type SyncObserver
- type SyncOpts
- type SyncResult
- type TableSyncEnd
- type TableSyncStart
- type TagOpts
- type TagSpec
- type Transport
- type TransportFunc
- type UVEntry
- type UpdateChange
- type UpdateOpts
- type User
- type UserOpts
Constants ¶
const ( PhantomSize FslSize = fsltype.PhantomSize FossilApplicationID int32 = fsltype.FossilApplicationID )
Variables ¶
var ErrMergeConflict = errors.New("libfossil: merge has conflicts")
ErrMergeConflict is returned (wrapped in a MergeConflictError) when Merge detects any unresolved three-way conflicts. Callers can check with errors.Is(err, ErrMergeConflict) without caring about the file list.
Functions ¶
func Clone ¶
func Clone(ctx context.Context, path string, t Transport, opts CloneOpts) (*Repo, *CloneResult, error)
Clone performs a full repository clone from a remote Fossil server. It creates a new repository at the given path, runs the clone protocol until convergence, and returns the opened Repo handle and a result summary. On error, the partially-created repo file is removed.
func JulianToTime ¶
JulianToTime converts a Fossil Julian day number to time.Time.
func TimeToJulian ¶
TimeToJulian converts a time.Time to a Fossil Julian day number.
Types ¶
type AnnotateOpts ¶
AnnotateOpts configures an annotate operation.
type AnnotatedLine ¶
AnnotatedLine is a single line of blame/annotate output.
type BisectSession ¶
type BisectSession struct {
// contains filtered or unexported fields
}
BisectSession holds state for a binary-search bisect operation.
type BuggifyChecker ¶
BuggifyChecker controls fault injection for deterministic simulation testing.
type Checkout ¶
type Checkout struct {
// contains filtered or unexported fields
}
Checkout represents a working directory linked to a Fossil repository. A Checkout is not safe for concurrent use. Callers must serialize access to a single Checkout instance.
func (*Checkout) Add ¶
Add adds files to version tracking. Returns the number of files added. Files already tracked are silently skipped.
func (*Checkout) Checkin ¶
func (c *Checkout) Checkin(opts CheckoutCommitOpts) (int64, string, error)
Checkin creates a new checkin from the checkout working directory. Returns the RID and UUID of the new checkin manifest.
func (*Checkout) Extract ¶
func (c *Checkout) Extract(rid int64, opts ExtractOpts) error
Extract writes files from the specified checkin to the working directory.
func (*Checkout) HasChanges ¶
HasChanges returns true if the checkout has any modified, deleted, or renamed files. This is a DB-only check; call Extract or scan first to detect on-disk modifications.
func (*Checkout) Remove ¶
Remove removes files from version tracking. Newly added files are deleted from vfile; committed files are marked as deleted.
func (*Checkout) Revert ¶
func (c *Checkout) Revert(opts RevertOpts) error
Revert restores files to their checkout version state. If opts.Files is empty, reverts all changed files.
func (*Checkout) Status ¶
func (c *Checkout) Status() ([]CheckoutChange, error)
Status scans the working directory for changes and returns a list of changed files. Wraps ScanChanges + VisitChanges.
func (*Checkout) Update ¶
func (c *Checkout) Update(opts UpdateOpts) error
Update updates the checkout to a new version, performing 3-way merge where needed to preserve local modifications.
type CheckoutChange ¶
type CheckoutChange struct {
Name string
Change string // "added", "modified", "deleted", "renamed", "missing"
}
CheckoutChange describes a single file change in the checkout.
type CheckoutCommitOpts ¶
type CheckoutCommitOpts struct {
Message string
User string
Branch string // empty = current branch
Tags []string // additional tag names
Delta bool
}
CommitOpts configures creating a checkin from the checkout. (This type is distinct from the existing libfossil.CommitOpts which takes explicit file content for direct repo commits without a checkout.)
type CheckoutCreateOpts ¶
type CheckoutCreateOpts struct {
Env *simio.Env // nil = real env
Observer CheckoutObserver // nil = nop
}
CheckoutCreateOpts configures creating a new checkout.
type CheckoutObserver ¶
type CheckoutObserver interface {
ExtractStarted(info ExtractStart)
ExtractFileCompleted(name string, change UpdateChange)
ExtractCompleted(info ExtractEnd)
ScanStarted(dir string)
ScanCompleted(info ScanEnd)
CommitStarted(info CommitStart)
CommitCompleted(info CommitEnd)
Error(err error)
}
CheckoutObserver receives lifecycle callbacks during checkout/commit operations. Use NopCheckoutObserver() for a silent no-op, or StdoutCheckoutObserver() for stderr logging.
func NopCheckoutObserver ¶
func NopCheckoutObserver() CheckoutObserver
NopCheckoutObserver returns a CheckoutObserver that silently discards all events.
func StdoutCheckoutObserver ¶
func StdoutCheckoutObserver() CheckoutObserver
StdoutCheckoutObserver returns a CheckoutObserver that logs events to stderr.
type CheckoutOpenOpts ¶
type CheckoutOpenOpts struct {
SearchParents bool // search parent dirs for .fslckout
Env *simio.Env // nil = real env
Observer CheckoutObserver
}
CheckoutOpenOpts configures opening an existing checkout.
type CheckoutOpts ¶
CheckoutOpts configures a checkout extraction.
type CloneOpts ¶
type CloneOpts struct {
User string
Password string
ProjectCode string
ServerCode string
Observer SyncObserver
Buggify BuggifyChecker // fault injection for DST (nil = no faults)
}
CloneOpts configures a clone operation.
type CloneResult ¶
type CloneResult struct {
Rounds int
BlobsRecvd int
ArtifactsLinked int
ProjectCode string
ServerCode string
Messages []string
}
CloneResult reports what happened during a clone.
type CommitOpts ¶
type CommitOpts struct {
Files []FileToCommit
Comment string
User string
Tags []TagSpec
Time time.Time
ParentID int64
// MergeParents lists additional parents for a merge commit. The resulting
// manifest's P-card is [ParentID, MergeParents...]; ParentID is the primary
// parent (branch tip being committed onto), and each MergeParent contributes
// a secondary plink row (isprim=0).
MergeParents []int64
Delta bool
}
CommitOpts configures a commit operation.
type CommitStart ¶
CommitStart describes the beginning of a commit operation.
type CreateOpts ¶
type CreateOpts struct {
User string
// Rand provides random bytes for project-code and server-code generation.
// Nil defaults to crypto/rand (production). Set to simio.NewSeededRand
// for deterministic simulation testing.
Rand simio.Rand
}
CreateOpts configures repository creation.
type ExtractEnd ¶
type ExtractEnd struct {
FilesWritten int
}
ExtractEnd describes the completion of a checkout extraction.
type ExtractOpts ¶
type ExtractOpts struct {
Force bool // overwrite uncommitted changes
}
ExtractOpts configures file extraction from a checkin.
type ExtractStart ¶
ExtractStart describes the beginning of a checkout extraction.
type FileToCommit ¶
FileToCommit describes a file to include in a commit.
type HTTPOption ¶
type HTTPOption func(*httpTransport)
HTTPOption configures an HTTP transport.
func WithHTTPClient ¶
func WithHTTPClient(c *http.Client) HTTPOption
WithHTTPClient sets a custom http.Client for the transport.
type HandleEnd ¶
type HandleEnd struct {
FilesSent, FilesRecvd int
}
HandleEnd describes the completion of a server-side sync handle.
type HandleOpts ¶
type HandleOpts struct {
Observer SyncObserver
Buggify BuggifyChecker
}
HandleOpts configures server-side sync handling.
type HandleStart ¶
type HandleStart struct {
RemoteAddr string
}
HandleStart describes the beginning of a server-side sync handle.
type LogEntry ¶
type LogEntry struct {
RID int64
UUID string
Comment string
User string
Time time.Time
Parents []string
}
LogEntry represents a single checkin in the timeline.
type MergeConflict ¶
MergeConflict describes a conflict region in a file.
type MergeConflictError ¶ added in v0.2.0
type MergeConflictError struct {
Files []string
}
MergeConflictError reports which files had unresolved merge conflicts. Files is sorted alphabetically for deterministic output.
func (*MergeConflictError) Error ¶ added in v0.2.0
func (e *MergeConflictError) Error() string
func (*MergeConflictError) Is ¶ added in v0.2.0
func (e *MergeConflictError) Is(target error) bool
type MergeResult ¶
type MergeResult struct {
Clean bool
Conflicts []MergeConflict
}
MergeResult describes the outcome of a merge.
type MockTransport ¶
MockTransport is a test double that delegates to a handler function.
type RC ¶
type RC int
const ( RCOK RC = 0 RCError RC = 100 RCNYI RC = 101 RCOOM RC = 102 RCMisuse RC = 103 RCRange RC = 104 RCAccess RC = 105 RCIO RC = 106 RCNotFound RC = 107 RCAlreadyExists RC = 108 RCConsistency RC = 109 RCRepoNeedsRebuild RC = 110 RCNotARepo RC = 111 RCRepoVersion RC = 112 RCDB RC = 113 RCBreak RC = 114 RCStepRow RC = 115 RCStepDone RC = 116 RCStepError RC = 117 RCType RC = 118 RCNotACkout RC = 119 RCRepoMismatch RC = 120 RCChecksumMismatch RC = 121 RCLocked RC = 122 RCConflict RC = 123 RCSizeMismatch RC = 124 RCPhantom RC = 125 RCUnsupported RC = 126 )
type Repo ¶
type Repo struct {
// contains filtered or unexported fields
}
Repo is an opaque handle to a Fossil repository.
func Create ¶
func Create(path string, opts CreateOpts) (*Repo, error)
Create creates a new Fossil repository at the given path.
func (*Repo) Annotate ¶
func (r *Repo) Annotate(opts AnnotateOpts) ([]AnnotatedLine, error)
Annotate attributes each line of a file to the commit that last changed it.
func (*Repo) BranchTip ¶ added in v0.2.0
BranchTip returns the RID of the most recent checkin on the named branch. Resolves via the 'branch' propagating tag: the tip is the checkin with the latest event.mtime whose tagxref still has that branch value active. Returns an error if no such branch exists in the repository.
func (*Repo) Commit ¶
func (r *Repo) Commit(opts CommitOpts) (int64, string, error)
Commit creates a new checkin manifest with the given files and returns the RID (row ID) and UUID of the newly created artifact.
func (*Repo) CreateCheckout ¶
func (r *Repo) CreateCheckout(dir string, opts CheckoutCreateOpts) (*Checkout, error)
CreateCheckout creates a new checkout directory linked to this repository. The directory is created if it does not exist. The checkout is initialized to the tip checkin.
func (*Repo) CreateUser ¶
CreateUser creates a new user in the repository.
func (*Repo) DB ¶
DB returns the underlying database handle for raw SQL queries. Use this when the high-level Repo methods don't cover your use case.
func (*Repo) DeleteUser ¶
DeleteUser removes a user from the repository.
func (*Repo) DetectForks ¶
DetectForks finds divergent branches in the repository.
func (*Repo) Diff ¶
Diff returns a unified diff for filePath between two checkins. When the file is absent from a side, that side is treated as empty bytes, so additions and deletions render as pure insert/delete hunks. Returns an empty slice when both sides are byte-identical.
func (*Repo) FindCommonAncestor ¶
FindCommonAncestor finds the nearest common ancestor of two checkins.
func (*Repo) HandleSync ¶
HandleSync processes an incoming xfer request (server-side). The payload is a raw xfer-encoded byte slice; the response is also raw bytes.
func (*Repo) HandleSyncWithOpts ¶
func (r *Repo) HandleSyncWithOpts(ctx context.Context, payload []byte, opts HandleOpts) ([]byte, error)
HandleSyncWithOpts processes an incoming xfer request with optional configuration.
func (*Repo) Inner ¶
Inner returns the underlying internal repo handle. This is exported for use by in-module packages (e.g., cli/) that need direct access to the repo DB for raw SQL or internal package calls.
func (*Repo) ListConflictForks ¶
ListConflictForks returns filenames with unresolved conflict-fork entries.
func (*Repo) Merge ¶ added in v0.2.0
Merge performs a three-way merge of srcBranch into dstBranch and creates a merge commit whose primary parent is dstBranch's tip and whose secondary parent is srcBranch's tip. Returns (rid, uuid) of the new commit on success.
Conflict policy: any unresolved conflict in any file aborts the whole operation with a *MergeConflictError — no commit is written. Callers should check errors.Is(err, ErrMergeConflict) to detect this case.
File handling:
- Present on both sides: three-way merge against the common ancestor.
- Present on only one side (new file): kept as-is.
- In ancestor, missing on one side, unchanged on the other: agreed deletion.
- In ancestor, missing on one side, modified on the other: modify/delete conflict.
func (*Repo) OpenCheckout ¶
func (r *Repo) OpenCheckout(dir string, opts CheckoutOpenOpts) (*Checkout, error)
OpenCheckout opens an existing checkout directory linked to this repository.
func (*Repo) Redo ¶
Redo re-applies the last undone operation. Requires a checkout database; not yet wired.
func (*Repo) ResolveConflictFork ¶
ResolveConflictFork marks a conflict-fork entry as resolved.
func (*Repo) ServeHTTP ¶
ServeHTTP starts an HTTP server that accepts Fossil xfer requests. Blocks until ctx is cancelled.
func (*Repo) SetPassword ¶
SetPassword updates a user's password.
func (*Repo) StashApply ¶
StashApply restores a stash entry by ID without removing it.
func (*Repo) StashList ¶
func (r *Repo) StashList() ([]StashEntry, error)
StashList returns all stash entries.
func (*Repo) StashSave ¶
StashSave saves working-tree changes to the stash. Requires a checkout database; not yet wired (Repo only wraps the repo DB).
func (*Repo) Tag ¶
Tag creates a control artifact that adds a tag to a target checkin. Returns the UUID of the tag control artifact.
func (*Repo) UVRead ¶
UVRead reads an unversioned file from the repository. Returns the content, mtime (unix seconds), and content hash.
func (*Repo) Undo ¶
Undo reverts the last commit or merge. Requires a checkout database; not yet wired.
func (*Repo) XferHandler ¶
func (r *Repo) XferHandler() http.HandlerFunc
XferHandler returns an http.HandlerFunc that decodes Fossil xfer requests, dispatches to HandleSync, and encodes the response. Use this to compose a custom mux alongside operational endpoints (e.g., /healthz).
type RevertOpts ¶
type RevertOpts struct {
Files []string // empty = revert all
}
RevertOpts configures reverting file changes.
type RoundStats ¶
type RoundStats struct {
FilesSent, FilesRecvd, BytesSent, BytesRecvd, Gimmes, IGots int
}
RoundStats describes the outcome of a single sync round.
type ScanEnd ¶
type ScanEnd struct {
FilesScanned int
}
ScanEnd describes the completion of a working-tree scan.
type SessionEnd ¶
type SessionEnd struct {
Rounds, FilesSent, FilesRecvd int
}
SessionEnd describes the completion of a sync session.
type SessionStart ¶
SessionStart describes the beginning of a sync session.
type StashEntry ¶
StashEntry describes a saved stash.
type StatusEntry ¶
StatusEntry describes a changed file in the working tree.
type StatusOpts ¶
type StatusOpts struct {
Dir string
}
StatusOpts configures a working-tree status query.
type SyncObserver ¶
type SyncObserver interface {
Started(info SessionStart)
RoundStarted(round int)
RoundCompleted(round int, stats RoundStats)
Completed(info SessionEnd)
Error(err error)
HandleStarted(info HandleStart)
HandleCompleted(info HandleEnd)
TableSyncStarted(info TableSyncStart)
TableSyncCompleted(info TableSyncEnd)
}
SyncObserver receives lifecycle callbacks during sync operations. Use NopSyncObserver() for a silent no-op, or StdoutSyncObserver() for stderr logging.
func NopSyncObserver ¶
func NopSyncObserver() SyncObserver
NopSyncObserver returns a SyncObserver that silently discards all events.
func StdoutSyncObserver ¶
func StdoutSyncObserver() SyncObserver
StdoutSyncObserver returns a SyncObserver that logs events to stderr.
type SyncOpts ¶
type SyncOpts struct {
Push bool
Pull bool
UV bool
ProjectCode string
ServerCode string
User string
Password string
PeerID string // identifies this leaf agent instance
MaxSend int
XTableSync bool // enable extension table sync (peer_registry, etc.)
Private bool // enable private artifact sync
Observer SyncObserver
Buggify BuggifyChecker
}
SyncOpts configures a sync operation.
type SyncResult ¶
type SyncResult struct {
Rounds int
FilesSent int
FilesRecvd int
UVFilesSent int
UVFilesRecvd int
UVGimmesSent int
BytesSent int64
BytesRecvd int64
Errors []string
}
SyncResult describes the outcome of a sync session.
type TableSyncEnd ¶
TableSyncEnd describes the completion of a config table sync.
type TableSyncStart ¶
type TableSyncStart struct {
Table string
}
TableSyncStart describes the beginning of a config table sync.
type Transport ¶
Transport delivers sync payloads between peers. Implementations handle the network layer (HTTP, NATS, etc.). Payloads are opaque zlib-compressed xfer card streams.
func NewHTTPTransport ¶
func NewHTTPTransport(url string, opts ...HTTPOption) Transport
NewHTTPTransport creates a Transport that speaks Fossil's HTTP /xfer protocol.
type TransportFunc ¶
TransportFunc adapts a plain function to the Transport interface. This is the Transport equivalent of http.HandlerFunc.
type UpdateChange ¶
type UpdateChange string
UpdateChange classifies how a file changed.
const ( ChangeAdded UpdateChange = "added" ChangeModified UpdateChange = "modified" ChangeDeleted UpdateChange = "deleted" )
type UpdateOpts ¶
UpdateOpts configures updating to a new version with merge.
Source Files
¶
Directories
¶
| Path | Synopsis |
|---|---|
|
cmd
|
|
|
libfossil
command
|
|
|
Package db provides a SQLite database layer with pluggable drivers.
|
Package db provides a SQLite database layer with pluggable drivers. |
|
driver/modernc
module
|
|
|
driver/ncruces
module
|
|
|
examples
|
|
|
embed-repo-api
command
Example: embed libfossil as a library in a Go application.
|
Example: embed libfossil as a library in a Go application. |
|
wasm
command
Example: build libfossil for a generic WASI Preview 1 wasm target.
|
Example: build libfossil for a generic WASI Preview 1 wasm target. |
|
internal
|
|
|
bisect
Package bisect implements binary search through Fossil commit history.
|
Package bisect implements binary search through Fossil commit history. |
|
blob
Package blob handles content-addressed blob storage in Fossil repository databases.
|
Package blob handles content-addressed blob storage in Fossil repository databases. |
|
checkout
Package checkout provides working directory management for Fossil repositories.
|
Package checkout provides working directory management for Fossil repositories. |
|
content
Package content reconstructs full artifact content from Fossil's delta-chain storage.
|
Package content reconstructs full artifact content from Fossil's delta-chain storage. |
|
diff
Package diff produces unified diff output from two byte slices using the Myers diff algorithm.
|
Package diff produces unified diff output from two byte slices using the Myers diff algorithm. |
|
fsltype
Package fsltype defines shared types used across internal packages.
|
Package fsltype defines shared types used across internal packages. |
|
merge
Package merge provides three-way merge with pluggable strategies.
|
Package merge provides three-way merge with pluggable strategies. |
|
repo
Package repo manages Fossil repository database files.
|
Package repo manages Fossil repository database files. |
|
stash
Package stash saves and restores working directory changes, storing deltas against baseline blobs in the checkout database (.fslckout).
|
Package stash saves and restores working directory changes, storing deltas against baseline blobs in the checkout database (.fslckout). |
|
sync
Package sync implements Fossil's multi-round sync and clone protocol.
|
Package sync implements Fossil's multi-round sync and clone protocol. |
|
undo
Package undo saves, restores, and redoes checkout state in a Fossil .fslckout database.
|
Package undo saves, restores, and redoes checkout state in a Fossil .fslckout database. |
|
verify
Package verify provides comprehensive repository verification and rebuild.
|
Package verify provides comprehensive repository verification and rebuild. |
|
xfer
Package xfer implements Fossil's sync protocol card codec.
|
Package xfer implements Fossil's sync protocol card codec. |
|
observer
|
|
|
otel
module
|
|