{"id":14066096,"url":"https://github.com/moodymudskipper/blame","last_synced_at":"2025-04-12T20:52:18.821Z","repository":{"id":194630100,"uuid":"691246101","full_name":"moodymudskipper/blame","owner":"moodymudskipper","description":"Semantic Version Control for R","archived":false,"fork":false,"pushed_at":"2023-09-16T00:13:45.000Z","size":3124,"stargazers_count":9,"open_issues_count":4,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-04-12T20:52:12.928Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"R","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/moodymudskipper.png","metadata":{"files":{"readme":"README.Rmd","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":"2023-09-13T19:38:49.000Z","updated_at":"2024-07-09T00:49:19.000Z","dependencies_parsed_at":null,"dependency_job_id":"4f2db255-b074-4fa9-b154-d024bb0131e2","html_url":"https://github.com/moodymudskipper/blame","commit_stats":null,"previous_names":["moodymudskipper/blame"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/moodymudskipper%2Fblame","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/moodymudskipper%2Fblame/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/moodymudskipper%2Fblame/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/moodymudskipper%2Fblame/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/moodymudskipper","download_url":"https://codeload.github.com/moodymudskipper/blame/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248631728,"owners_count":21136560,"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-08-13T07:04:56.125Z","updated_at":"2025-04-12T20:52:18.798Z","avatar_url":"https://github.com/moodymudskipper.png","language":"R","funding_links":[],"categories":["R"],"sub_categories":[],"readme":"---\noutput: github_document\n---\n\n\u003c!-- README.md is generated from README.Rmd. Please edit that file --\u003e\n\n```{r, include = FALSE}\nknitr::opts_chunk$set(\n  collapse = TRUE,\n  comment = \"#\u003e\",\n  fig.path = \"man/figures/README-\",\n  out.width = \"100%\"\n)\n```\n\n# blame\n\nExperimental! \n\nSemantic version control for R\n\nWe can track the evolution of specific objects and their doc through commits.\n\nVery unstable at the moment, every function and args might have changed names next time you install.\n\nThe name comes from \"git blame\", since this is a somewhat similar feature.\n\n## Installation\n\nInstall with:\n\n``` r\nremotes::install_github(\"moodymudskipper/blame\")\n```\n\n## Example\n\n```{r example, eval = FALSE}\nlibrary(blame)\nhist_data \u003c- git_history(\"https://github.com/moodymudskipper/unglue\")\n#\u003e Transferred 705 of 705 objects...done!\n#\u003e Checked out 90 of 90 commits... done!\n#\u003e Created local repo at: /var/folders/mp/qvg2y_jx63bgk_s0xxh2zr140000gp/T//Rtmp903U62/file2531910b7ea\n#\u003e Wrangle commits\n#\u003e Collect changed files\n#\u003e Parse files\nreview_object_history(hist_data, \"unglue_data\")\n```\n\n![](man/figures/example.gif)\n\n* The `git_history()` command above fetches the history of the branch at the object\nlevel, it takes a couple seconds to run here but for a big repo\nlike \"https://github.com/tidyverse/dplyr\" it will take a few minutes\n* We can provide a branch, by default the main one is used (whatever is its name)\n* `review_object_history()` takes a function name so we can explore its history,\n `ascending = TRUE` by default, set it to `FALSE` to go from most to least recent\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmoodymudskipper%2Fblame","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmoodymudskipper%2Fblame","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmoodymudskipper%2Fblame/lists"}