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.
Installs into .claude/skills of the current project.
Are you the author of Fossil Scm Usage?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/diegosouzapw-fossil-scm-usage)
---
name: Fossil SCM Usage
description: 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.
version: 1.0.0
---
# Fossil 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 (`.fossil`) containing all project history |
| Working checkout | Directory where files are edited, linked via `fossil open` |
| 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:
1. **Autosync is ON by default** - Commits automatically push, updates automatically pull
2. **Branches created during commit** - Use `fossil commit --branch name` not `git checkout -b`
3. **Single repository file** - All history in one `.fossil` SQLite file
4. **Built-in features** - Wiki, tickets, forum included (not separate tools)
5. **No staging area** - All changed files commit together (use `fossil commit file1 file2` for partial)
## Essential Workflows
### Starting a New Project
```bash
fossil init myproject.fossil
mkdir myproject && cd myproject
fossil open ../myproject.fossil
fossil add .
fossil commit -m "Initial commit"
```
### Cloning and Working
```bash
fossil clone https://example.com/repo project.fossil
mkdir work && cd work
fossil open ../project.fossil
```
### Feature Branch Workflow
```bash
# 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:
```bash
# Alice commits - automatically pushes
fossil commit -m "Alice's changes"
# Bob updates - automatically pulls Alice's changes
fossil update
```
### Handling Mistakes
```bash
# 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 | `fossil init repo.fossil` |
| Clone repo | `fossil clone URL repo.fossil` |
| Open repo | `fossil open repo.fossil` |
| Check status | `fossil status` or `fossil changes` |
| Add files | `fossil add file` or `fossil addremove` |
| Commit | `fossil commit -m "msg"` |
| Update | `fossil update` |
| New branch | `fossil commit --branch name` |
| Switch branch | `fossil update branchname` |
| List branches | `fossil branch list` |
| Merge | `fossil merge branchname` |
| Cherry-pick | `fossil merge --cherrypick HASH` |
| View diff | `fossil diff` |
| View history | `fossil timeline` |
| File history | `fossil finfo filename` |
| Annotate/blame | `fossil annotate filename` |
| Stash changes | `fossil stash save -m "msg"` |
| Apply stash | `fossil stash pop` |
| Sync manually | `fossil sync` |
| Push only | `fossil push` |
| Pull only | `fossil pull` |
| Add ticket | `fossil ticket add title "..." status "Open"` |
| Update ticket | `fossil ticket set UUID status "Closed"` |
| Ticket history | `fossil ticket history UUID` |
| List tickets | `fossil ticket show "All Tickets"` |
| Web UI | `fossil ui` |
## Sync and Remote Operations
### Autosync Settings
```bash
# 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
```bash
fossil sync # Full sync (push + pull)
fossil push # Push only
fossil pull # Pull only
fossil sync --private # Include private branches
```
### Remote Management
```bash
fossil remote # Show current remote
fossil remote add URL # Set default remote
fossil remote list # List all remotes
```
## Stash Operations
```bash
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
```bash
# 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 |
|---------|-------------|
| `autosync` | Auto push/pull on commit/update |
| `editor` | Text editor for commit messages |
| `ignore-glob` | Patterns for files to ignore |
| `binary-glob` | Patterns for binary files |
| `case-sensitive` | Case sensitivity for filenames |
```bash
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:
- `_FOSSIL_` file (Unix/Linux)
- `.fslckout` file (Windows or when using `--dotfiles`)
Check with: `ls -la _FOSSIL_ .fslckout 2>/dev/null`
## Web Interface
```bash
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:
- **`references/commands.md`** - Complete Fossil command reference including:
- 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.