Awesome-omni-skill Fossil SCM Usage
This skill should be used when the user asks to "fossil commit", "fossil branch", "fossil merge", "fossil clone", "fossil sync", "fossil ticket", "fossil stash", "fossil timeline", mentions working with a Fossil repository, asks about Fossil vs Git differences, or needs help with Fossil SCM commands and workflows.
git clone https://github.com/diegosouzapw/awesome-omni-skill
T=$(mktemp -d) && git clone --depth=1 https://github.com/diegosouzapw/awesome-omni-skill "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/development/fossil-scm-usage" ~/.claude/skills/diegosouzapw-awesome-omni-skill-fossil-scm-usage && rm -rf "$T"
skills/development/fossil-scm-usage/SKILL.mdFossil SCM Command Line Reference
Comprehensive guidance for managing projects with Fossil SCM from the command line, covering repository management, commits, branching, multi-user workflows, and the ticketing system.
Overview
Fossil is a distributed version control system combining source code management with an integrated wiki, ticketing system, and web interface—all in a single executable. Unlike Git, Fossil emphasizes simplicity, autosync by default, and feature-centric branching.
Key Concepts:
| Concept | Description |
|---|---|
| Repository | SQLite database file () containing all project history |
| Working checkout | Directory where files are edited, linked via |
| Artifact | Any versioned item (file, commit, ticket) identified by SHA hash |
| Autosync | Default behavior that automatically pushes/pulls on commit/update |
Core Differences from Git
Understanding these differences prevents common mistakes:
- Autosync is ON by default - Commits automatically push, updates automatically pull
- Branches created during commit - Use
notfossil commit --branch namegit checkout -b - Single repository file - All history in one
SQLite file.fossil - Built-in features - Wiki, tickets, forum included (not separate tools)
- No staging area - All changed files commit together (use
for partial)fossil commit file1 file2
Essential Workflows
Starting a New Project
fossil init myproject.fossil mkdir myproject && cd myproject fossil open ../myproject.fossil fossil add . fossil commit -m "Initial commit"
Cloning and Working
fossil clone https://example.com/repo project.fossil mkdir work && cd work fossil open ../project.fossil
Feature Branch Workflow
# Start feature (creates branch during commit) fossil commit --branch feature-login -m "Start login feature" # Work on feature fossil commit -m "Add login form" fossil commit -m "Add validation" # Merge back to trunk fossil update trunk fossil merge --integrate feature-login fossil commit -m "Merged feature-login"
Collaborative Workflow (Autosync)
With autosync enabled (default), collaboration is automatic:
# Alice commits - automatically pushes fossil commit -m "Alice's changes" # Bob updates - automatically pulls Alice's changes fossil update
Handling Mistakes
# Move bad commit to "mistake" branch fossil amend HEAD --branch mistake fossil amend HEAD --close fossil update trunk # Undo last update/merge/revert fossil undo # Revert uncommitted changes fossil revert
Quick Reference
| Task | Command |
|---|---|
| Create repo | |
| Clone repo | |
| Open repo | |
| Check status | or |
| Add files | or |
| Commit | |
| Update | |
| New branch | |
| Switch branch | |
| List branches | |
| Merge | |
| Cherry-pick | |
| View diff | |
| View history | |
| File history | |
| Annotate/blame | |
| Stash changes | |
| Apply stash | |
| Sync manually | |
| Push only | |
| Pull only | |
| Add ticket | |
| Update ticket | |
| Ticket history | |
| List tickets | |
| Web UI | |
Sync and Remote Operations
Autosync Settings
# Check current setting fossil settings autosync # Enable (default) fossil settings autosync on # Disable for manual control fossil settings autosync off # Pull only (no auto-push) fossil settings autosync pullonly
Manual Sync
fossil sync # Full sync (push + pull) fossil push # Push only fossil pull # Pull only fossil sync --private # Include private branches
Remote Management
fossil remote # Show current remote fossil remote add URL # Set default remote fossil remote list # List all remotes
Stash Operations
fossil stash save -m "WIP" # Save and revert working dir fossil stash snapshot -m "msg" # Save but keep working dir fossil stash list # List stashes fossil stash show # Show most recent as diff fossil stash pop # Apply and remove fossil stash apply # Apply but keep fossil stash drop 1 # Delete specific stash
Tags
# Add during commit fossil commit --tag v1.0.0 -m "Release" # Add to existing commit fossil tag add v1.0.0 HASH # List tags fossil tag list # Remove tag fossil tag cancel v1.0.0 HASH
Important Settings
| Setting | Description |
|---|---|
| Auto push/pull on commit/update |
| Text editor for commit messages |
| Patterns for files to ignore |
| Patterns for binary files |
| Case sensitivity for filenames |
fossil settings # List all fossil settings autosync off # Set local fossil settings autosync off --global # Set global fossil unset autosync # Revert to global
Detecting Fossil Repositories
A Fossil working checkout contains either:
file (Unix/Linux)_FOSSIL_
file (Windows or when using.fslckout
)--dotfiles
Check with:
ls -la _FOSSIL_ .fslckout 2>/dev/null
Web Interface
fossil ui # Open local web UI in browser fossil ui --port 9000 # Specific port fossil server --port 8080 # External access
Additional Resources
Reference Files
For comprehensive command documentation with all options and examples:
- Complete Fossil command reference including:references/commands.md- Repository setup (init, clone, open, close)
- File operations (add, rm, mv, status)
- Commit options and amending
- Branching operations
- Merging and conflict resolution
- Ticketing system commands
- Diff and history commands
- Undo and revert operations
Consult
references/commands.md for detailed syntax and options not covered in this quick reference.
Version Information
Based on Fossil SCM version 2.27. Use
fossil help COMMAND for authoritative documentation on the installed version.