Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
40 commits
Select commit Hold shift + click to select a range
37c85d7
remove legacy git_tool implementation to prepare for rewrite merge
oahshtsua Aug 3, 2026
109f280
scaffold git-feature Python package with full CLI surface
oahshtsua Jul 15, 2026
d0f487e
add gitio layer: repository access, commit diffs, history walks, ref I/O
oahshtsua Jul 15, 2026
946d18e
add store layer with schema types, memory and git-ref backends
oahshtsua Jul 15, 2026
1869cb8
add change-id map, patch-id computation, and backfill core
oahshtsua Jul 15, 2026
f16b5a5
implement git feature init with chained hooks and opt-in backfill
oahshtsua Jul 15, 2026
b19d898
implement post-commit and post-rewrite hook runtime
oahshtsua Jul 15, 2026
2dcf46c
implement reconcile with patch-id and fuzzy matching tiers
oahshtsua Jul 15, 2026
00563ba
add region anchors and two-tier blame-forward resolver
oahshtsua Jul 15, 2026
3fb7c22
implement doctor health checks and exclude store ref from history walks
oahshtsua Jul 15, 2026
778b0dc
add annotation lifecycle integration test and update README command s…
oahshtsua Jul 15, 2026
4835cce
make post-rewrite migration override the stray id post-commit mints o…
oahshtsua Jul 15, 2026
80c9b42
implement bulk annotate with hunk anchoring and lazy change-id minting
oahshtsua Jul 15, 2026
74a2d65
implement feature list with annotation and change counts
oahshtsua Jul 15, 2026
01b571c
implement feature info with files, commits, authors, and branch presence
oahshtsua Jul 15, 2026
125c93d
implement whatfeature commit lookup
oahshtsua Jul 15, 2026
a4110e0
implement annotation coverage reporting
oahshtsua Jul 15, 2026
301a6c1
implement status grouping working-tree changes by feature
oahshtsua Jul 15, 2026
c1af67a
implement per-line feature blame with a shared blame pass per file
oahshtsua Jul 15, 2026
63ac7f6
add retro-annotation query integration test and update README command…
oahshtsua Jul 15, 2026
29b3c9b
add Clafer feature-model parser and three-valued instance evaluator
oahshtsua Jul 15, 2026
8d6c059
add presence-condition algebra with unknown-feature errors and lint
oahshtsua Jul 15, 2026
ca9426e
implement model validate with instance resolution and annotation lint
oahshtsua Jul 15, 2026
ed0028d
implement variant dry-run with configure and project stages
oahshtsua Jul 15, 2026
de41e0e
materialize variants onto branches with content-verified ref updates
oahshtsua Jul 15, 2026
be6ca0c
implement variant list with base commit and staleness
oahshtsua Jul 15, 2026
85787aa
add derivation lifecycle test and sane default base on variant branches
oahshtsua Jul 15, 2026
062618f
resolve scattered regions as line runs and gate verify on base content
oahshtsua Jul 15, 2026
6968ac1
bake the installing binary's path into hook scripts to dodge PATH col…
oahshtsua Jul 15, 2026
c8cd509
surface scattered regions as line runs in blame, status, and checkout…
oahshtsua Jul 16, 2026
6966083
implement round-trip editing: view sessions and putback with manifest…
oahshtsua Jul 16, 2026
3ae6164
implement sync: change-id-aware cherry-pick propagation between branches
oahshtsua Jul 16, 2026
4e116ac
add store push/fetch with three-way store merge
oahshtsua Jul 16, 2026
76ca2ad
reset index and workdir when a forced checkout follows a ref move und…
oahshtsua Jul 16, 2026
105517c
resolve regions in renamed files and key derivation by resolved path
oahshtsua Jul 21, 2026
6703abd
prefer the renamed file over lookalike windows in fingerprint resolution
oahshtsua Jul 21, 2026
eea3d90
add README with a hands-on, verified quickstart
oahshtsua Jul 29, 2026
e7de3f9
add zero-to-prod onboarding doc
oahshtsua Jul 29, 2026
126351e
add design doc comparing with v1.0
oahshtsua Jul 29, 2026
b2da1b9
add missing authors and update version number
oahshtsua Aug 5, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
175 changes: 20 additions & 155 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,164 +1,29 @@
# Byte-compiled / optimized / DLL files
# Python
__pycache__/
*.py[cod]
*$py.class

# C extensions
*.so

*.code-workspace

# Distribution / packaging
.Python
build/
develop-eggs/
.venv/
dist/
downloads/
eggs/
.eggs/
lib/
lib64/
parts/
sdist/
var/
wheels/
share/python-wheels/
build/
*.egg-info/
.installed.cfg
*.egg
MANIFEST

# PyInstaller
# Usually these files are written by a python script from a template
# before PyInstaller builds the exe, so as to inject date/other infos into it.
*.manifest
*.spec

# Installer logs
pip-log.txt
pip-delete-this-directory.txt

# Unit test / coverage reports
htmlcov/
.tox/
.nox/
.coverage
.coverage.*
.cache
nosetests.xml
coverage.xml
*.cover
*.py,cover
.hypothesis/
# Tooling caches
.pytest_cache/
cover/

# Translations
*.mo
*.pot

# Django stuff:
*.log
local_settings.py
db.sqlite3
db.sqlite3-journal

# Flask stuff:
instance/
.webassets-cache

# Scrapy stuff:
.scrapy

# Sphinx documentation
docs/_build/

# PyBuilder
.pybuilder/
target/

# Jupyter Notebook
.ipynb_checkpoints

# IPython
profile_default/
ipython_config.py

# pyenv
# For a library or package, you might want to ignore these files since the code is
# intended to run in multiple environments; otherwise, check them in:
# .python-version

# pipenv
# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
# However, in case of collaboration, if having platform-specific dependencies or dependencies
# having no cross-platform support, pipenv may install dependencies that don't work, or not
# install all needed dependencies.
#Pipfile.lock

# poetry
# Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control.
# This is especially recommended for binary packages to ensure reproducibility, and is more
# commonly ignored for libraries.
# https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control
#poetry.lock

# pdm
# Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control.
#pdm.lock
# pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it
# in version control.
# https://pdm.fming.dev/#use-with-ide
.pdm.toml

# PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm
__pypackages__/

# Celery stuff
celerybeat-schedule
celerybeat.pid

# SageMath parsed files
*.sage.py

# Environments
.env
.venv
env/
venv/
ENV/
env.bak/
venv.bak/

# Spyder project settings
.spyderproject
.spyproject

# Rope project settings
.ropeproject

# mkdocs documentation
/site

# mypy
.mypy_cache/
.dmypy.json
dmypy.json
.ruff_cache/

# Pyre type checker
.pyre/

# pytype static type analyzer
.pytype/

# Cython debug symbols
cython_debug/

# PyCharm
# JetBrains specific template is maintained in a separate JetBrains.gitignore that can
# be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
# and can be added to the global gitignore or merged into this file. For a more nuclear
# option (not recommended) you can uncomment the following to ignore the entire idea folder.
#.idea/
# Legacy artifacts kept locally but not on this branch (live on `main`)
master_roethemeyer_featureorientedgit.pdf
target/

.vscode/
# Local dev working docs (not part of the repo)
/DESIGN.md
/CLAUDE.md
plan.md
evaluation-plan.md
evaluation/
report.md
HOW-IT-WORKS.md
migration.md

# Claude Code local tooling state, not shared project config
.claude/
Loading