{"id":19848721,"url":"https://github.com/etcwilde/mergetree-db","last_synced_at":"2026-04-14T01:32:24.350Z","repository":{"id":80177831,"uuid":"108605602","full_name":"etcwilde/mergetree-db","owner":"etcwilde","description":"Merge Tree Implementation that integrates with cregit/cregit database","archived":false,"fork":false,"pushed_at":"2017-11-15T05:17:18.000Z","size":20,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-02-28T23:03:19.059Z","etag":null,"topics":["cregit","git"],"latest_commit_sha":null,"homepage":null,"language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/etcwilde.png","metadata":{"files":{"readme":"Readme.org","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}},"created_at":"2017-10-27T23:46:14.000Z","updated_at":"2023-03-02T02:21:51.000Z","dependencies_parsed_at":"2023-09-24T15:46:09.149Z","dependency_job_id":null,"html_url":"https://github.com/etcwilde/mergetree-db","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/etcwilde/mergetree-db","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/etcwilde%2Fmergetree-db","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/etcwilde%2Fmergetree-db/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/etcwilde%2Fmergetree-db/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/etcwilde%2Fmergetree-db/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/etcwilde","download_url":"https://codeload.github.com/etcwilde/mergetree-db/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/etcwilde%2Fmergetree-db/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31778580,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-14T00:11:49.126Z","status":"ssl_error","status_checked_at":"2026-04-14T00:10:29.837Z","response_time":93,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6: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":["cregit","git"],"created_at":"2024-11-12T13:18:12.274Z","updated_at":"2026-04-14T01:32:24.276Z","avatar_url":"https://github.com/etcwilde.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"* MergeTree\n\nThe MergeTree is a datastructure used to show how a commit is integrated into the master branch of a repository.\n\nThis implementation operates on the Linux repository and the data generated for [[https://cregit.linuxsources.org/][cregit]].\nIt adds a new table pathtomerge, with the following schema:\n\n| Column Name | Type     | Description                                 |\n|-------------+----------+---------------------------------------------|\n| cid         | char(40) | Commit hash                                 |\n| next        | char(40) | Next commit on the way to the master branch |\n| dist        | int      | Hops from the master branch                 |\n| master      | char(40) | Integrating merge into the master branch    |\n\n\n* Cregit\n\nCregit is a project designed to show who is contributing code to the kernel. ~git blame~ shows some, but only at the line-level. Cregit digs deeper, breaking the patch down to the token level, giving a much finer-grained account of the changes being made.\n\nThis implementation of the MergeTree uses the database generated for Cregit to provide information on the merge trees. Cregit uses the ~slickGitLog~ component to generate the database.\n\nThe generated database produces 4 tables:\n\n- commits\n- parents\n- logs\n- footers\n\n** Commits\n\nCommits contains the metadata for each commit in the repository.\n\n| Column Name | Type     | Description                                                   |\n|-------------+----------+---------------------------------------------------------------|\n| cid         | char(40) | Commit hash                                                   |\n| autname     | text     | Author's name                                                 |\n| autemail    | text     | Author's email                                                |\n| autdate     | text     | Date commit was authored 'year-month-day hour:minute:second'  |\n| comname     | text     | Committer's name                                              |\n| comemail    | text     | Committer's email                                             |\n| comdate     | text     | Date commit was committed 'year-month-day hour:minute:second' |\n| summary     | text     | Commit log summary                                            |\n| ismerge     | boolean  | Is commit a merge commit?                                     |\n\n** Parents\n\nContains the repository graph structure. This is the main table used for generating the merge trees.\n\n| Column Name | Type     | Description             |\n|-------------+----------+-------------------------|\n| cid         | char(40) | Commit hash             |\n| idx         | integer  | Order of commit parents |\n| parent      | char(40) | Parent's commit hash    |\n\n** logs\n\nContains the information about the logs.\n\n| Column Name | Type     | Description                 |\n|-------------+----------+-----------------------------|\n| cid         | char(40) | Commit hash                 |\n| log         | text     | The full commit log message |\n\nThis is kept as a separate table from ~commits~ since some commit messages are very long.\n\n** footers\n\nContains information on who is signing off on commits.\n\n| Column Name | Type     | Description                           |\n|-------------+----------+---------------------------------------|\n| cid         | char(40) | Commit hash                           |\n| idx         | integer  | Order of comments                     |\n| key         | text     | The type of information in the footer |\n| value       | text     | The actual information                |\n\nAn example of a ~key~ might be: \"Signed-off-by\" and the ~value~ might be \"Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\".\n\nidx is used when multiple (cid, key) pairs are the same. This happens when multiple people sign off on a commit, for example.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fetcwilde%2Fmergetree-db","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fetcwilde%2Fmergetree-db","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fetcwilde%2Fmergetree-db/lists"}