{"id":18464658,"url":"https://github.com/norfairking/mergeful","last_synced_at":"2025-07-11T23:34:09.031Z","repository":{"id":56846832,"uuid":"203179632","full_name":"NorfairKing/mergeful","owner":"NorfairKing","description":"Safely synchronise values with safe merge conflicts.","archived":false,"fork":false,"pushed_at":"2025-05-26T06:36:59.000Z","size":11480,"stargazers_count":7,"open_issues_count":0,"forks_count":0,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-06-16T07:51:04.729Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"http://hackage.haskell.org/package/mergeful","language":"Haskell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/NorfairKing.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":null,"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},"funding":{"custom":"https://cs-syd.eu/support","github":["NorfairKing"]}},"created_at":"2019-08-19T13:35:06.000Z","updated_at":"2025-05-26T06:36:56.000Z","dependencies_parsed_at":"2024-11-06T09:10:49.235Z","dependency_job_id":"077b1e08-b996-42ca-baba-32f41c5f462f","html_url":"https://github.com/NorfairKing/mergeful","commit_stats":{"total_commits":168,"total_committers":1,"mean_commits":168.0,"dds":0.0,"last_synced_commit":"63ad193c17e2f5fd403869d1b539684b1a6c5d88"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/NorfairKing/mergeful","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NorfairKing%2Fmergeful","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NorfairKing%2Fmergeful/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NorfairKing%2Fmergeful/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NorfairKing%2Fmergeful/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/NorfairKing","download_url":"https://codeload.github.com/NorfairKing/mergeful/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NorfairKing%2Fmergeful/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":264914701,"owners_count":23682878,"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","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":[],"created_at":"2024-11-06T09:10:40.519Z","updated_at":"2025-07-11T23:34:08.996Z","avatar_url":"https://github.com/NorfairKing.png","language":"Haskell","funding_links":["https://cs-syd.eu/support","https://github.com/sponsors/NorfairKing"],"categories":[],"sub_categories":[],"readme":"# Mergefull\n\nA way to synchronise items with safe merge conflicts.\n\n## Related project\n\nIf the collection that you are syncing has immutable items, you will be better off using [mergeless](https://github.com/NorfairKing/mergeless#readme) instead.\n\n## Implementation overview\n\nSituation: Multiple clients (for example a note synchronisation app) want to sync with a server storing state for them.\nGoal: Get clients to agree on the collection of items and prevent that one client accidentally overrides a value saved by another client.\nSolution: Store a server-side name and monotonically increasing number (revision number of the data, or current time) for each number.\n\nSee the following blogposts for (many) more details:\n\n- https://cs-syd.eu/posts/2019-10-14-mergeful-value\n- https://cs-syd.eu/posts/2019-11-28-mergeful-item\n- https://cs-syd.eu/posts/2019-12-28-mergeful-collection\n\nor the talk at Haskellerz:\n\nhttps://www.youtube.com/watch?v=MkbhHmAk47k\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnorfairking%2Fmergeful","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnorfairking%2Fmergeful","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnorfairking%2Fmergeful/lists"}