{"id":23552747,"url":"https://github.com/rhildred/ranalyze","last_synced_at":"2026-02-24T21:32:43.970Z","repository":{"id":208850147,"uuid":"722634425","full_name":"rhildred/ranalyze","owner":"rhildred","description":"recursively compare every file with every other file and give the probability that they had a common ancestor","archived":false,"fork":false,"pushed_at":"2025-02-11T16:51:17.000Z","size":226,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-02-11T17:45:41.281Z","etag":null,"topics":[],"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/rhildred.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}},"created_at":"2023-11-23T15:13:52.000Z","updated_at":"2025-02-11T16:51:22.000Z","dependencies_parsed_at":"2024-12-26T11:13:19.261Z","dependency_job_id":"a191f80a-4b42-4619-a3f7-40690deffb14","html_url":"https://github.com/rhildred/ranalyze","commit_stats":null,"previous_names":["rhildred/ranalyze"],"tags_count":0,"template":true,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rhildred%2Franalyze","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rhildred%2Franalyze/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rhildred%2Franalyze/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rhildred%2Franalyze/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rhildred","download_url":"https://codeload.github.com/rhildred/ranalyze/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239293947,"owners_count":19615041,"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-12-26T11:13:05.945Z","updated_at":"2025-11-01T13:30:26.040Z","avatar_url":"https://github.com/rhildred.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ranalyze\nrecursively compare every file with every other file and give the probability that they had a common ancestor\n\n## Prerequisites\n\nNote 1: I made a video of installing the prerequisites [here](https://youtu.be/AjB2SiGlJ20).\n\n1. vscode\n2. python\n3. git\n\nNote 2: I made a video of using ranalyze [here](https://youtu.be/5ANEoaO1H8o).\n\nTo use, open a fresh folder in vscode and open a new terminal\n\n```bash\ngit clone https://github.com/rhildred/ranalyze.git .\n```\n\nDrag and drop a .zip of the files you want to check for common ancestry in to the explorer pane on the left of vscode.\n\n```bash\npython ranalyze.py \u003e results.txt\n```\n\n![results.txt](readmeimages/results.png)\n\n`results.txt` will have the probabilities expressed as a percentage that a file had a common ancestor with any other file in the set. Edit this file to remove any common ancestors that can be easily explained. For instance some students will submit assignments more than once.\n\nWhen you have a results.txt that consists of files that need a closer looking at.\n1. find the first file, right click and do \"select for compare\"\n2. find the second file, right click and do \"compare with selected\"\n\n![compare from context menu](readmeimages/compare.png)\n\nThe files will appear side by side. The differences will be color coded. The user of ranalyze.py decides, based on the diffs, whether 2 files truly came from the same ancestor.\n\n![differences](readmeimages/diff.png)\n\nranalyze is meant as a tool to highlight files that need further interpretation. Examining the diff is the only way to know if files truly had the same ancestor. Please [create an issue](https://github.com/rhildred/ranalyze/issues) if you have one. I also added discussions to this repository if you would like to [communicate further](https://github.com/rhildred/ranalyze/discussions) about this but don't have a specific issue.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frhildred%2Franalyze","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frhildred%2Franalyze","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frhildred%2Franalyze/lists"}