{"id":18435299,"url":"https://github.com/jango73/cutegit","last_synced_at":"2025-08-30T15:10:39.240Z","repository":{"id":86924023,"uuid":"196264255","full_name":"Jango73/CuteGit","owner":"Jango73","description":"UI for Git (and some day other SCMs), made with Qt/QML.","archived":false,"fork":false,"pushed_at":"2025-07-14T07:03:43.000Z","size":1339,"stargazers_count":5,"open_issues_count":24,"forks_count":1,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-07-14T09:54:58.427Z","etag":null,"topics":["git","qml","qt","ui"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Jango73.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","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}},"created_at":"2019-07-10T19:32:06.000Z","updated_at":"2024-12-06T06:59:11.000Z","dependencies_parsed_at":"2023-05-01T10:01:45.064Z","dependency_job_id":null,"html_url":"https://github.com/Jango73/CuteGit","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/Jango73/CuteGit","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Jango73%2FCuteGit","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Jango73%2FCuteGit/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Jango73%2FCuteGit/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Jango73%2FCuteGit/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Jango73","download_url":"https://codeload.github.com/Jango73/CuteGit/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Jango73%2FCuteGit/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":272865543,"owners_count":25006224,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-30T02:00:09.474Z","response_time":77,"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":["git","qml","qt","ui"],"created_at":"2024-11-06T06:07:45.961Z","updated_at":"2025-08-30T15:10:39.235Z","avatar_url":"https://github.com/Jango73.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# CuteGit\n\n![alt text](https://github.com/Jango73/CuteGit/blob/master/Media/Screenshot01.jpg)\n\nThis is a simple multi-document UI for the Git executable (and other versioning systems in a near future).\nIt is not meant to compete with paywares, just provide minimal versioning functionality.\n\n## Dependencies\n\n* Qt 5.13\n* QtCreator 4.9.1\n* qt-plus - Copyright myself\n  * https://github.com/Jango73/qt-plus\n\n## Building\n\n* Make sure to update submodules\n```\n    git submodule init\n    git submodule update\n```\n* Open /CuteGit.pro in QtCreator\n* Build and run\n\n## Things it does\n\n* Open one or more repositories\n* Refresh view\n* For repositories of type Git and Gerrit:\n  * Show repository status (clean, merge, rebase, ...)\n  * Show repository files as a flat list, colored according to status\n  * Show the branches and tags\n  * Show the branch log\n  * Show the graph as output by Git (might be graphical some day)\n  * Show the selected file's log\n  * Show the unstaged diffs in the selected item (folder or file)\n  * Show the output of the executed commands\n  * Change current branch\n  * Mark files as staged / unstaged\n  * Remove files form tracking\n  * Revert files\n  * Commit\n  * Amend (on interactive rebase, commit is always amend)\n  * Fetch, pull and push\n  * Modify a commit message\n  * Rebase current branch on another one\n  * Merge current branch with another one\n  * Begin rebase on a commit, continue and abort rebase\n  * Reset on a commit\n  * Save and pop stash (no selectable stash yet)\n  * Branch from a commit\n  * Tag a commit\n  * View diff with previous commit\n  * View diff between any two commits\n* For repositories of type Mercurial:\n  * Show the branches\n  * Show repository files as a flat list, colored according to status\n  * Mark files as staged / unstaged\n  * Show the branch log\n  * Show the selected file's log\n  * Commit\n  * Branch from a commit\n* For repositories of type SVN:\n  * Nothing yet\n\n## Classes\n\n### CuteGit\n\n* Registers types\n* Creates application controller\n* Creates QML engine\n\n### CController\n\n* Creates and provides access to\n  * the list of known repositories\n  * the list of open repositories\n  * the current repository\n  * the Git interactive rebase editing\n\n### CRepository\n\n* Represents a repository\n* Creates and provides access to\n  * the corresponding versioning system commands\n  * the file system model\n  * the filter for the file system model\n  * the model for lines of output when executing a process\n  * the name of the current branch\n  * the repository status (normal, rebasing, merging, ...)\n  * the list of branches\n  * the log of the current branch\n  * the diff of the selected file\n  * the log of the selected file\n* Exposes to QML / JS the versioning methods: stage, unstage, commit, push, ...\n\n### CTreeFileModel\n\n* Inherits QFileSystemModel\n* Shows changed files as a tree\n* Provides access to the repository files\n\n### CTreeFileModelProxy\n\n* Inherits QSortFilterProxyModel\n* Encapsulates CTreeFileModel\n* Enables filtering files on\n  * file name\n  * GIT status property\n\n### CFlatFileModel\n\n* Inherits QAbstractListModel\n* Shows changed files as a list\n* Provides access to the repository files\n\n### CFlatFileModelProxy\n\n* Inherits QSortFilterProxyModel\n* Encapsulates CFlatFileModel\n* Enables filtering files on\n  * file name\n  * GIT status property\n\n### CRepoFile\n\n* The properties of a repository file\n  * status\n  * staged / unstaged flag\n\n### CCommands\n\n* A (kind of) interface for a versioning system\n* Makes the versioning system abstract\n\n### CGitCommands\n\n* Inherits CCommands\n* Implements Git versioning commands\n\n### CSVNCommands\n\n* Inherits CCommands\n* Will implement SVN versioning commands\n\n### CHGCommands\n\n* Inherits CCommands\n* Partially implements Mercurial versioning commands\n\n### CLogModel\n\n* A collection of log lines\n\n### CLogModelProxy\n\n* Inherits QSortFilterProxyModel\n* Encapsulates CLogModel\n* Enables filtering a log on\n  * commit author\n  * commit message\n\n### CLogLine\n\n* A line of log : commit id, date, author, message\n\n### CDiffModel\n\n* A collection of CDiffLine\n\n### CDiffModelProxy\n\n* Inherits QSortFilterProxyModel\n* Encapsulates CDiffModel\n* Enables filtering a diff\n\n### CDiffLine\n\n* A line of diff between two files\n\n## Code summary\n\nAs of 2019-09-20:\n\n```\n     151 text files.\n     150 unique files.                                          \n      27 files ignored.\n\nhttp://cloc.sourceforge.net v 1.64  T=0.33 s (370.7 files/s, 52317.1 lines/s)\n-------------------------------------------------------------------------------\nLanguage                     files          blank        comment           code\n-------------------------------------------------------------------------------\nC++                             27           1422            661           4270\nQML                             57            839            142           4094\nTypeScript                       3             59              0           2794\nC/C++ Header                    33            898            930           1293\nQt Project                       1             13             17             35\nXML                              2              0              0             23\nBourne Shell                     1              0              6              6\n-------------------------------------------------------------------------------\nSUM:                           124           3231           1756          12515\n-------------------------------------------------------------------------------\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjango73%2Fcutegit","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjango73%2Fcutegit","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjango73%2Fcutegit/lists"}