{"id":13649068,"url":"https://github.com/nothingmuch/git-svn-abandon","last_synced_at":"2025-06-13T13:38:27.171Z","repository":{"id":492144,"uuid":"118546","full_name":"nothingmuch/git-svn-abandon","owner":"nothingmuch","description":"history preserving svn to git migration using git-svn","archived":false,"fork":false,"pushed_at":"2017-02-17T17:16:58.000Z","size":11,"stargazers_count":111,"open_issues_count":2,"forks_count":11,"subscribers_count":6,"default_branch":"master","last_synced_at":"2025-04-21T15:55:08.570Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Shell","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/nothingmuch.png","metadata":{"files":{"readme":"README.mkdn","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}},"created_at":"2009-01-31T04:38:47.000Z","updated_at":"2024-05-31T04:16:11.000Z","dependencies_parsed_at":"2022-07-07T14:03:36.884Z","dependency_job_id":null,"html_url":"https://github.com/nothingmuch/git-svn-abandon","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/nothingmuch/git-svn-abandon","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nothingmuch%2Fgit-svn-abandon","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nothingmuch%2Fgit-svn-abandon/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nothingmuch%2Fgit-svn-abandon/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nothingmuch%2Fgit-svn-abandon/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nothingmuch","download_url":"https://codeload.github.com/nothingmuch/git-svn-abandon/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nothingmuch%2Fgit-svn-abandon/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":259654302,"owners_count":22890992,"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-02T01:04:44.837Z","updated_at":"2025-06-13T13:38:27.141Z","avatar_url":"https://github.com/nothingmuch.png","language":"Shell","readme":"Installation:\n=============\n\nPlace these scripts anywhere in `$PATH` (e.g. create symlinks in\n`/usr/local/bin`) and make sure they are executable, just like any other\nscript. The `git` command will know how to find them.\n\n\nUsage:\n======\n\nSee [my detailed blog post][1] for a how-to.\n\n[1]: http://blog.woobling.org/2009/06/git-svn-abandon.html\n\nIn brief:\n\n1. Install (above), then git svn clone your repo, preferably\n   using Sam Vilain's [svn-merge-attrs branch]\n   (http://github.com/samv/git/tree/svn-merge-attrs), using\n   `--prefix svn`.  This assumes standard layout.\n\n2. Inside the repo run `git svn-abandon-fix-refs`\n\n3. Create `.git/info/grafts` file for merge commits\n   (might not be necessary with the svn-merge-attrs branch).\n   This is just if you have any svn merges that occurred between branches.\n\n4. Run `git-svn-abandon-cleanup`\n\nThe resulting repository should have only `refs/heads/*` and tags.\nAll svn tags are recreated as annotated tags.\n\n`git-svn-id:` and svk message pollution is cleaned up.\n\nWhen you have a merge commit that is not recognized as such, the grafts file\ncan be used to add additional parents, preserving history information.\n\nTroubleshooting:\n=======\n\nYou may get this error message:\n\n    % git svn-abandon-fix-refs\n    git: 'svn-abandon-fix-refs' is not a git-command. See 'git --help'.\n\nThis means you haven't placed those scripts in your `PATH`.\n\n\nAlternatives\n=======\n\nIf this script is too slow for a large repository, or doesn't handle something\ncomplicated look into Snerp Vortex:\n\n\thttp://github.com/rcaputo/snerp-vortex\n\nFor a simpler approach, several `svn2git` scripts exist, in both Ruby and Perl.\n\nMaintenance:\n=======\n\nThese commands are more for abandoning SVN in favour of git and getting as\nclean a history as possible. Maintenance is just like a normal git repository.\n\nAfter `git svn-abandon-cleanup` has been run, `git svn rebase` can't be run\nanymore, so you can't bring it up to date without keeping the old SVN repo\naround and grafting things to the conversion.\n","funding_links":[],"categories":["Shell"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnothingmuch%2Fgit-svn-abandon","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnothingmuch%2Fgit-svn-abandon","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnothingmuch%2Fgit-svn-abandon/lists"}