{"id":21043216,"url":"https://github.com/anthraxx/arch-svn-package-to-git","last_synced_at":"2025-05-15T17:31:29.342Z","repository":{"id":56275916,"uuid":"74852069","full_name":"anthraxx/arch-svn-package-to-git","owner":"anthraxx","description":null,"archived":false,"fork":false,"pushed_at":"2023-05-19T12:02:25.000Z","size":126,"stargazers_count":9,"open_issues_count":0,"forks_count":2,"subscribers_count":3,"default_branch":"main","last_synced_at":"2024-05-10T00:05:19.925Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","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/anthraxx.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2016-11-26T21:41:00.000Z","updated_at":"2023-05-26T10:55:00.000Z","dependencies_parsed_at":"2023-02-16T11:31:06.342Z","dependency_job_id":null,"html_url":"https://github.com/anthraxx/arch-svn-package-to-git","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anthraxx%2Farch-svn-package-to-git","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anthraxx%2Farch-svn-package-to-git/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anthraxx%2Farch-svn-package-to-git/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anthraxx%2Farch-svn-package-to-git/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/anthraxx","download_url":"https://codeload.github.com/anthraxx/arch-svn-package-to-git/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":225365889,"owners_count":17462973,"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-19T14:11:46.880Z","updated_at":"2024-11-19T14:11:47.539Z","avatar_url":"https://github.com/anthraxx.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"Arch Linux svn package to git converter\n=======================================\n\nSimple script that converts a git-svn checkout of a whole svn repository to\nseparated per package git repositories. Additionally it performs some garbage\ncollection and history/content rewrite.\n\n### Requirements:\n- Python 3.8\n- git\n- git-filter-repo\n- bash\n- findutils\n- coreutils\n- diffutils\n- grep\n\n### Rewrites:\n- Replace author name and e-mail via `AUTHORS` file\n- Strip git-svn related git-svn-id from commit messages\n- Strip svn specific $Id$ property\n- Filters unwanted artifacts like tarballs, logfiles etc\n- Tag all repository releases\n- Produce readable shortlog commit messages if possible\n\n### GitSVN checkout:\n\nThe gitsvn checkout must be a bare clone that is setup as a mirror in order\nto make single branch cloning work appropriately and be able to easily fetch\nall branch related refs from the remote.\n\nThe clone command can be used for a fresh clone:\n```\ngitsvn-repo-helper clone community\n```\n\nOptionally a target directory can be specified:\n```\ngitsvn-repo-helper clone packages /tmp/bare-packages\n```\n\nOtherwise an existing clone needs to have to following git config:\n```\n[remote \"origin\"]\n\turl = https://github.com/archlinux/svntogit-community\n\tfetch = +refs/*:refs/*\n\tmirror = true\n```\n\nThe gitsvn-repo-helper can aid in setting the require config:\n\n```\ngitsvn-repo-helper configure repos/community\n```\n\n\n### Usage:\n\n    gitsvn2git INPUT_GIT TARGET_DIR [PACKAGE]...\n\n\n### Arguments:\n\n- `INPUT_GIT [DIRECTORY]`\n**synopsis:** Set the input directory of the git-svn bare repository checkout\n**required:** Yes\n\n\n- `TARGET_DIR [DIRECTORY]`\n**synopsis:** Set the target directory where the repositories will be created\n**required:** Yes\n\n\n- `PACKAGE [STRING]...`\n**synopsis:** Set the packages that should be converted to separate git repositories. In case `--update` is the only passed value, fetch the `INPUT_GIT` repository and sequencially convert all updated packages.\n**default:** All packages of the specified input repository\n\n\n### Environment variables:\n\n- `GITSVN2GIT_BREAKPOINT_ON_ERROR`\n**synopsis:** If set, invoke an interactive source code debugger for investigation\n\n- `GITSVN2GIT_DEBUG`\n**synopsis:** If set, print debug messages during execution\n\n- `GITSVN2GIT_PEDANTIC`\n**synopsis:** If set, treat some warnings like missing release tags as errors. Useful in combination with `GITSVN2GIT_BREAKPOINT_ON_ERROR` for debugging.\n\n- `GITSVN2GIT_WERROR`\n**synopsis:** If set, treat all warnings as errors. Useful in combination with `GITSVN2GIT_BREAKPOINT_ON_ERROR` for debugging.\n\n\n### Examples:\n##### Whole repository:\n\n    gitsvn2git repos/community community-converted\n\n##### Specific packages:\n\n    gitsvn2git repos/community community-converted capstone radare2\n\n##### Parallelize:\n\n    parallel --bar gitsvn2git repos/community community-converted ::: repos/community/*\n\n    parallel --bar gitsvn2git repos/community community-converted ::: $(gitsvn-repo-helper list repos/community)\n\n##### Fetch source repo and re-convert all updated packages:\n\n    gitsvn2git repos/community community-converted --update\n\n    gitsvn-repo-helper fetch --list repos/community | parallel --no-run-if-empty --bar gitsvn2git repos/community community-converted\n\n##### List bare clone packages:\n\n    gitsvn-repo-helper list repos/community\n\n##### List bare clone package changes since last fetch:\n\n    gitsvn-repo-helper since bec4565de repos/community\n\n##### Fetch bare clone repo and print previous HEAD:\n\n    gitsvn-repo-helper fetch repos/community\n\n##### Fetch bare clone repo and print changed packages:\n\n    gitsvn-repo-helper fetch --list repos/community\n\n##### Fresh clone of the community repo:\n\n    gitsvn-repo-helper clone community\n\n##### Clean up old converted packages that were removed from the repos:\n\n    gitsvn-repo-helper clean repos/packages/ repos/svntogit/community/ repos/svntogit/packages/\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fanthraxx%2Farch-svn-package-to-git","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fanthraxx%2Farch-svn-package-to-git","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fanthraxx%2Farch-svn-package-to-git/lists"}