A tool to visualize the commit history of a Git repository.
Project description
Commit Cartographer
A Python tool that generates visual flowcharts of Git repository activity by analyzing commit patterns across directories.
Features
- ๐ Intelligent Analysis: Counts commits per directory while focusing only on currently existing structure
- ๐ Visual Representation: Generates Mermaid flowcharts with directory relationships
- ๐จ Color Gradients: Uses a 10-step color gradient to represent commit density
- ๐ณ Directory Depth: Supports up to 4 levels of directory nesting
- ๐ Repository Structure: Shows parent-child relationships between directories
Installation
To use this project, ensure you have uv installed.
Usage
To run the tool, execute the following command in your terminal:
uv run commit-cartographer/cli.py [path_to_your_repo]
If no path is provided, it defaults to the current directory.
Output
The script generates a Markdown file named git_activity.md, which contains the Mermaid flowchart diagram representing the commit activity in the specified Git repository.
Example
After running the script, you will find a git_activity.md file with content similar to the following:
flowchart LR
root_node[/root\]
style root_node fill:#ffffff,stroke:#333,stroke-width:2px
root_node --> node_src[/src\]
style node_src fill:#ff00ff,stroke:#333,stroke-width:2px
root_node --> node_cla[/cla\]
style node_cla fill:#00ffff,stroke:#333,stroke-width:2px
node_src --> node_src_aws[/aws\]
style node_src_aws fill:#55aaff,stroke:#333,stroke-width:2px
root_node --> node_icons[/icons\]
style node_icons fill:#00ffff,stroke:#333,stroke-width:2px
node_src --> node_src_php[/php\]
style node_src_php fill:#00ffff,stroke:#333,stroke-width:2px
node_src --> node_src_az[/az\]
style node_src_az fill:#00ffff,stroke:#333,stroke-width:2px
node_src_az --> node_src_az_2.53.0[/2.53.0\]
style node_src_az_2.53.0 fill:#00ffff,stroke:#333,stroke-width:2px
node_src --> node_src_heroku[/heroku\]
style node_src_heroku fill:#00ffff,stroke:#333,stroke-width:2px
root_node --> node_.vscode[/.vscode\]
style node_.vscode fill:#00ffff,stroke:#333,stroke-width:2px
node_src --> node_src_infracost[/infracost\]
style node_src_infracost fill:#00ffff,stroke:#333,stroke-width:2px
node_src --> node_src_fig[/fig\]
style node_src_fig fill:#00ffff,stroke:#333,stroke-width:2px
node_src --> node_src_usermn[/usermn\]
style node_src_usermn fill:#00ffff,stroke:#333,stroke-width:2px
node_src_usermn --> node_src_usermn_sdc[/sdc\]
style node_src_usermn_sdc fill:#00ffff,stroke:#333,stroke-width:2px
node_src --> node_src_deno[/deno\]
style node_src_deno fill:#00ffff,stroke:#333,stroke-width:2px
node_src --> node_src_dotnet[/dotnet\]
style node_src_dotnet fill:#00ffff,stroke:#333,stroke-width:2px
node_src --> node_src_example[/example\]
style node_src_example fill:#00ffff,stroke:#333,stroke-width:2px
node_src --> node_src_shopify[/shopify\]
style node_src_shopify fill:#00ffff,stroke:#333,stroke-width:2px
node_src --> node_src_task[/task\]
style node_src_task fill:#00ffff,stroke:#333,stroke-width:2px
node_src --> node_src_capgo[/capgo\]
style node_src_capgo fill:#00ffff,stroke:#333,stroke-width:2px
node_src --> node_src_wordpress[/wordpress\]
style node_src_wordpress fill:#00ffff,stroke:#333,stroke-width:2px
root_node --> node_.devcontainer[/.devcontainer\]
style node_.devcontainer fill:#00ffff,stroke:#333,stroke-width:2px
node_src --> node_src_magnolia[/magnolia\]
style node_src_magnolia fill:#00ffff,stroke:#333,stroke-width:2px
node_src --> node_src_gcloud[/gcloud\]
style node_src_gcloud fill:#00ffff,stroke:#333,stroke-width:2px
node_src --> node_src_python[/python\]
style node_src_python fill:#00ffff,stroke:#333,stroke-width:2px
node_src --> node_src_preset[/preset\]
style node_src_preset fill:#00ffff,stroke:#333,stroke-width:2px
root_node --> node_.husky[/.husky\]
style node_.husky fill:#00ffff,stroke:#333,stroke-width:2px
You can also add the --style option to generate a tree diagram:
uv run commit-cartographer/cli.py [path_to_your_repo] --style tree
root/
โโโ orchestration/ (26 commits)
โโโ assets/ (20 commits)
โโโ dbt/ (4 commits)
โโโ ebirdapi/ (14 commits)
โโโ .dlt/ (2 commits)
โโโ schemas/ (4 commits)
โโโ export/ (2 commits)
โโโ import/ (2 commits)
โโโ utils/ (2 commits)
โโโ orchestration_tests/ (4 commits)
โโโ schemas/ (10 commits)
โโโ export/ (5 commits)
โโโ import/ (5 commits)
โโโ scripts/ (3 commits)
โโโ transformation/ (57 commits)
โโโ analyses/ (1 commits)
โโโ macros/ (1 commits)
โโโ models/ (43 commits)
โโโ sources/ (6 commits)
โโโ ebirdapi/ (6 commits)
โโโ staging/ (37 commits)
โโโ docs/ (21 commits)
โโโ seeds/ (1 commits)
โโโ snapshots/ (1 commits)
โโโ tests/ (1 commits)
Contributing
Contributions are welcome! Please feel free to submit a pull request or open an issue for any suggestions or improvements.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file commit_cartographer-0.1.6.tar.gz.
File metadata
- Download URL: commit_cartographer-0.1.6.tar.gz
- Upload date:
- Size: 11.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.4.25
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a257608a06b57b64efa6beb773b1e4431652de1ff8d4dd71ab2903ec21b424c8
|
|
| MD5 |
37bf27edc9cd053ec08a4d8c1230166f
|
|
| BLAKE2b-256 |
18e599560ba860c9bc1eb4867665ca5b9ebb11d4d4fda21eccdd100767a4ff29
|
File details
Details for the file commit_cartographer-0.1.6-py3-none-any.whl.
File metadata
- Download URL: commit_cartographer-0.1.6-py3-none-any.whl
- Upload date:
- Size: 8.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.4.25
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2c60c193d25269a2cbb30466042c31146b6da3250c6b8c3f21c7cc6b78e041aa
|
|
| MD5 |
8af441e2e434883caaf3e60e4a27ead9
|
|
| BLAKE2b-256 |
8460aeb7de42c80e2eedde26ef94f9c2c7e75578df792c64fa8287bdef756df8
|