{"id":25532038,"url":"https://github.com/praneethv-cmd/bubble-git","last_synced_at":"2026-05-05T21:31:29.584Z","repository":{"id":265940223,"uuid":"893689171","full_name":"PraneethV-cmd/bubble-git","owner":"PraneethV-cmd","description":"Custom implementation of git ","archived":false,"fork":false,"pushed_at":"2025-01-06T09:22:30.000Z","size":20384,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-05-22T12:38:18.590Z","etag":null,"topics":["git","python","rust"],"latest_commit_sha":null,"homepage":"","language":"Python","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/PraneethV-cmd.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}},"created_at":"2024-11-25T03:05:37.000Z","updated_at":"2025-01-06T09:22:34.000Z","dependencies_parsed_at":"2024-12-01T17:36:25.118Z","dependency_job_id":"d5efb0ac-ae93-451b-9ff1-d515f7708a5a","html_url":"https://github.com/PraneethV-cmd/bubble-git","commit_stats":null,"previous_names":["praneethv-cmd/novus-git"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/PraneethV-cmd/bubble-git","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PraneethV-cmd%2Fbubble-git","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PraneethV-cmd%2Fbubble-git/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PraneethV-cmd%2Fbubble-git/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PraneethV-cmd%2Fbubble-git/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/PraneethV-cmd","download_url":"https://codeload.github.com/PraneethV-cmd/bubble-git/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PraneethV-cmd%2Fbubble-git/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32669356,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-05T11:29:49.557Z","status":"ssl_error","status_checked_at":"2026-05-05T11:29:48.587Z","response_time":54,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["git","python","rust"],"created_at":"2025-02-20T01:48:01.105Z","updated_at":"2026-05-05T21:31:29.560Z","avatar_url":"https://github.com/PraneethV-cmd.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Bubble Git\n\nBubble Git is a lightweight, custom implementation of a version control system inspired by Git. It is built from scratch, focusing on the fundamental internals of how Git works. \n\nCurrently, the implementation is written in Python, with plans to rewrite it in Rust for improved performance and safety. This project is a learning and exploratory tool for understanding Git's internals, providing insight into how hashing, trees, and basic version control operations work.\n\n---\n\n## **Features Implemented So Far**\n\nThe following commands are currently available in Bubble Git:\n\n1. **`init`**: Initializes a new Bubble Git repository.\n2. **`hash-object`**: Computes the SHA-1 hash of a file and stores it in the Bubble Git object database.\n3. **`cat-file`**: Reads and outputs the contents of a Git object stored in the database.\n4. **`write-tree`**: Generates a tree object representing the current directory structure.\n5. **`read-tree`**: Reads a tree object and restores the directory structure in the working directory.\n\n### **Planned Features**\nThe following features are under development:\n\n- **`commit`**: Record changes to the repository.\n- **`log`**: Display the commit history.\n- **`branch`**: Manage branches within the repository.\n- **`checkout`**: Switch between branches or commits.\n\n---\n\n## **Getting Started**\n\n### **1. Requirements**\nTo run the Python implementation of Bubble Git, ensure you have:\n- Python 3.8 or later\n- `pip` for managing Python packages\n\n### **2. Installation**\nTo set up Bubble Git locally, clone the repository and install it in **editable mode**:\n\n```bash\n# Clone the repository\ngit clone https://github.com/your-repo/bubble-git.git\ncd py-impl\n\n#Start the virtual environment\nsource bin/activate\n\n# Install in editable mode\npip3 install -e .\n```\n\n#### **Why `pip3 install -e .`?**\nThe `-e` or `--editable` flag installs the package in a way that links the source code directory directly to your Python environment. This is especially useful during development, as it allows any changes you make to the source code to be immediately reflected when running the commands, without needing to reinstall the package.\n\n---\n\n## **Usage**\n\nAfter installing Bubble Git, you can use it by running the following commands in the terminal:\n\n1. **Initialize**:\n   ```bash\n   bubble-git init\n   ```\n\n2. **Hash a file and store its object**:\n   ```bash\n   bubble-git hash-object \u003cfile\u003e\n   ```\n\n3. **Read an object**:\n   ```bash\n   bubble-git cat-file \u003cobject-hash\u003e\n   ```\n\n4. **Write the directory tree to a tree object**:\n   ```bash\n   bubble-git write-tree\n   ```\n\n5. **Read a tree object and restore the directory structure**:\n   ```bash\n   bubble-git read-tree \u003ctree-hash\u003e\n   ```\n\nFor planned commands like `commit`, `log`, `branch`, and `checkout`, stay tuned for updates!\n\n---\n\n## **Future Plans**\n- Implement the remaining Git-like commands (`commit`, `log`, `branch`, `checkout`).\n- Rewrite the entire implementation in Rust for better performance.\n- Add comprehensive tests and documentation.\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpraneethv-cmd%2Fbubble-git","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpraneethv-cmd%2Fbubble-git","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpraneethv-cmd%2Fbubble-git/lists"}