{"id":50717994,"url":"https://github.com/darwincereska/notevc","last_synced_at":"2026-06-09T20:31:40.992Z","repository":{"id":322732951,"uuid":"1090688858","full_name":"darwincereska/notevc","owner":"darwincereska","description":"Version control for markdown files","archived":false,"fork":false,"pushed_at":"2025-11-24T17:13:55.000Z","size":149,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-11-28T05:02:10.691Z","etag":null,"topics":["backup","cli","kotlin","markdown","md","mit","open-source","opensource","version-control","versioncontrol","versioning"],"latest_commit_sha":null,"homepage":"https://notevc.org","language":"Kotlin","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/darwincereska.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-11-06T02:17:23.000Z","updated_at":"2025-11-25T12:40:18.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/darwincereska/notevc","commit_stats":null,"previous_names":["darwincereska/notevc"],"tags_count":9,"template":false,"template_full_name":null,"purl":"pkg:github/darwincereska/notevc","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/darwincereska%2Fnotevc","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/darwincereska%2Fnotevc/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/darwincereska%2Fnotevc/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/darwincereska%2Fnotevc/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/darwincereska","download_url":"https://codeload.github.com/darwincereska/notevc/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/darwincereska%2Fnotevc/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34125332,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-09T02:00:06.510Z","response_time":63,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["backup","cli","kotlin","markdown","md","mit","open-source","opensource","version-control","versioncontrol","versioning"],"created_at":"2026-06-09T20:31:40.876Z","updated_at":"2026-06-09T20:31:40.972Z","avatar_url":"https://github.com/darwincereska.png","language":"Kotlin","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ![logo.png](./images/png/NoteVC_50×50.png) NoteVC: Version Control for Markdown\n\nBlock-level version control for markdown files. Track changes at the heading level, not just file level.\n\n## Features\n\n- **Block-level tracking**: Version control at heading granularity\n- **Frontmatter support**: Control versioning with YAML frontmatter (tags, title, enabled flag)\n- **Smart commits**: Only commits changed blocks\n- **Block restoration**: Restore individual sections without affecting the entire file\n- **Rich diffs**: See exactly which sections changed\n\n---\n\n## Installation\n\nBuild from source:\n```bash\ngradle build\n```\n\nThe executable will be in `build/install/notevc/bin/notevc`\n\n---\n\n## Global Options\n\nThese options work with any command and should be placed before the command name:\n\n- `--no-color`: Disable colored output\n\n**Examples:**\n```bash\nnotevc --no-color status\nnotevc --no-color diff\nnotevc --no-color log --oneline\nnotevc --no-color show a1b2c3d4\n```\n\n**Alternative methods to disable colors:**\n- Set `NO_COLOR=1` environment variable: `NO_COLOR=1 notevc status`\n- Pipe output: `notevc status | less` (colors auto-disabled)\n- CI environments automatically disable colors\n\n---\n\n## Command Reference\n\n### Repository Management\n\n#### `notevc init [path]`\nInitialize a new notevc repository in the current or specified directory.\n\n```bash\nnotevc init              # Initialize in current directory\nnotevc init ./notes      # Initialize in specific directory\n```\n\n#### `notevc status` or `notevc st`\nShow the status of tracked files and which blocks have changed.\n\n```bash\nnotevc status\n```\n\n#### `notevc commit [options] \"message\"`\nCreate a commit (snapshot) of changed files.\n\n**Options:**\n- `--file \u003cfile\u003e`: Commit only a specific file\n\n**Examples:**\n```bash\nnotevc commit \"Added new features\"                    # Commit all changed files\nnotevc commit --file notes.md \"Updated notes\"         # Commit specific file\n```\n\n---\n\n### Viewing History\n\n#### `notevc log [options]`\nShow commit history with details.\n\n**Options:**\n- `--max-count \u003cn\u003e` or `-n \u003cn\u003e`: Limit number of commits shown\n- `--since \u003ctime\u003e`: Show commits since specified time (e.g., \"1h\", \"2d\", \"1w\")\n- `--oneline`: Show compact one-line format\n- `--file` or `-f [file]`: Show file and block details for each commit\n\n**Examples:**\n```bash\nnotevc log                           # Show all commits\nnotevc log --max-count 5             # Show last 5 commits\nnotevc log --since 1d                # Show commits from last day\nnotevc log --oneline                 # Compact format\nnotevc log --file                    # Show with file details\nnotevc log --file notes.md           # Show commits affecting specific file\nnotevc log --file --oneline          # Compact format with file info\n```\n\n#### `notevc show \u003ccommit-hash\u003e [options]`\nShow detailed information about a specific commit, including block/file contents.\n\n**Options:**\n- `--file \u003cfile\u003e`: Show changes only for specific file\n- `--block \u003cblock-hash\u003e` or `-b \u003cblock-hash\u003e`: Show specific block content\n- `--content` or `-c`: Show full file content at commit\n\n**Examples:**\n```bash\nnotevc show a1b2c3d4                          # Show commit details\nnotevc show a1b2c3d4 --file notes.md          # Show changes to specific file\nnotevc show a1b2c3d4 --file notes.md --content # Show full file content\nnotevc show a1b2c3d4 --file notes.md --block 1a2b3c # Show specific block\n```\n\n---\n\n### Viewing Changes\n\n#### `notevc diff [commit1] [commit2] [options]`\nShow differences between commits or working directory with enhanced visual formatting.\n\n**Options:**\n- `--file \u003cfile\u003e`: Show diff for specific file only\n- `--block \u003cblock-hash\u003e` or `-b \u003cblock-hash\u003e`: Compare specific block only\n\n**Examples:**\n```bash\nnotevc diff                               # Show uncommitted changes (enhanced view)\nnotevc diff a1b2c3d4                      # Compare working dir to commit\nnotevc diff a1b2c3d4 b5c6d7e8             # Compare two commits\nnotevc diff --file notes.md               # Diff specific file\nnotevc diff a1b2c3d4 --file notes.md      # Compare specific file to commit\nnotevc diff --block 1a2b3c --file notes.md # Compare specific block\nnotevc diff a1b2c3d4 --block 1a2b3c --file notes.md # Compare block to commit\n```\n\n**Visual Enhancements:**\n- Clear separators (+++/---/~~~) for ADDED/DELETED/MODIFIED blocks\n- Line-by-line diffs showing exact changes (+/- prefixes)\n- Context lines shown in gray for unchanged content\n- Block-level comparison for targeted analysis\n\n---\n\n### Restoration\n\n#### `notevc restore \u003ccommit-hash\u003e [file] [options]`\nRestore files or blocks from a specific commit.\n\n**Options:**\n- `--block \u003cblock-hash\u003e` or `-b \u003cblock-hash\u003e`: Restore specific block only\n\n\n\n**Examples:**\n```bash\nnotevc restore a1b2c3d4                          # Restore entire repository\nnotevc restore a1b2c3d4 notes.md                 # Restore specific file\nnotevc restore a1b2c3d4 notes.md --block 1a2b3c  # Restore specific block\n```\n\n---\n\n### Other Commands\n\n#### `notevc version` or `notevc -v`\nShow the version of notevc.\n\n```bash\nnotevc version\n```\n\n---\n\n## Frontmatter Support\n\nControl versioning behavior with YAML frontmatter:\n\n```markdown\n---\nenabled: \"true\"      # Enable/disable tracking (default: true)\nautomatic: \"true\"    # Auto-commit on changes (default: false)\ntitle: \"My Note\"     # Note title for sorting\ntags:                # Tags for categorization\n  - project\n  - important\n---\n\n# Your content here\n```\n\n**Frontmatter fields:**\n- `enabled`: Set to \"false\" to exclude file from commits (default: true)\n- `automatic`: Enable automatic commits (default: false)\n- `title`: Custom title for the note\n- `tags`: List of tags (array or comma-separated string)\n\n---\n\n## How It Works\n\nNoteVC splits markdown files into blocks based on headings. Each block is:\n- Identified by a stable hash\n- Tracked independently\n- Versioned separately\n- **Compressed automatically** (GZIP) when content \u003e 100 bytes\n\nThis means you can:\n- See which sections changed\n- Restore individual sections\n- Track content at a granular level\n- **Save disk space** with automatic compression\n\n### Storage Optimization\n\nNoteVC includes built-in compression for efficient storage:\n- **Automatic GZIP compression** for block content over 100 bytes\n- Typical compression ratio: 60-80% space savings for text\n- Transparent decompression when reading\n- No performance impact on small blocks\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdarwincereska%2Fnotevc","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdarwincereska%2Fnotevc","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdarwincereska%2Fnotevc/lists"}