{"id":20940388,"url":"https://github.com/fedora-python/branchsync","last_synced_at":"2025-06-16T12:39:19.125Z","repository":{"id":82158434,"uuid":"288704406","full_name":"fedora-python/branchsync","owner":"fedora-python","description":null,"archived":false,"fork":false,"pushed_at":"2021-02-17T07:54:06.000Z","size":9,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":8,"default_branch":"master","last_synced_at":"2025-03-13T03:29:11.279Z","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":"cc0-1.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/fedora-python.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":"2020-08-19T10:40:57.000Z","updated_at":"2021-02-17T07:54:08.000Z","dependencies_parsed_at":null,"dependency_job_id":"153c3960-3e1a-45cd-9feb-870b7a7ca9de","html_url":"https://github.com/fedora-python/branchsync","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/fedora-python/branchsync","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fedora-python%2Fbranchsync","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fedora-python%2Fbranchsync/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fedora-python%2Fbranchsync/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fedora-python%2Fbranchsync/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fedora-python","download_url":"https://codeload.github.com/fedora-python/branchsync/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fedora-python%2Fbranchsync/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":260163259,"owners_count":22968224,"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-18T23:10:11.277Z","updated_at":"2025-06-16T12:39:19.111Z","avatar_url":"https://github.com/fedora-python.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"branchsync 🪄\n=============\n\nSynces (and creates) backport branches of your src.fp.o Python Pull Requests.\n\nGiven the src.fp.o's fork username and branch,\nthis tool creates new branches when needed and gives you links to open new\nsrc.fp.o pull requests.\n\nCan be used repeatedly when the branch was updated.\n\nNeeds recent [ferrypick](https://github.com/fedora-python/ferrypick).\n\nExample (only the first command is actually run by the user):\n\n```\n$ ./branchsync.py python3.6 update-to-3-6-12 thrnciar\n$ whoami\nchurchyard\n$ git clone ssh://pkgs.fedoraproject.org/rpms/python3.6.git python3.6\nCloning into 'python3.6'...\nremote: Enumerating objects: 1922, done.\nremote: Counting objects: 100% (1922/1922), done.\nremote: Compressing objects: 100% (791/791), done.\nremote: Total 1922 (delta 1188), reused 1855 (delta 1123)\nReceiving objects: 100% (1922/1922), 1.18 MiB | 1.87 MiB/s, done.\nResolving deltas: 100% (1188/1188), done.\n$ git remote add new ssh://pkgs.fedoraproject.org/forks/thrnciar/rpms/python3.6.git --fetch\nFrom ssh://pkgs.fedoraproject.org/forks/thrnciar/rpms/python3.6\n * [new branch]      f33              -\u003e new/f33\n * [new branch]      master           -\u003e new/master\n * [new branch]      update-to-3-6-12 -\u003e new/update-to-3-6-12\nUpdating new\n$ git remote add backport ssh://pkgs.fedoraproject.org/forks/churchyard/rpms/python3.6.git\n$ git remote -v\nbackport\tssh://pkgs.fedoraproject.org/forks/churchyard/rpms/python3.6.git (fetch)\nbackport\tssh://pkgs.fedoraproject.org/forks/churchyard/rpms/python3.6.git (push)\nnew\tssh://pkgs.fedoraproject.org/forks/thrnciar/rpms/python3.6.git (fetch)\nnew\tssh://pkgs.fedoraproject.org/forks/thrnciar/rpms/python3.6.git (push)\norigin\tssh://pkgs.fedoraproject.org/rpms/python3.6.git (fetch)\norigin\tssh://pkgs.fedoraproject.org/rpms/python3.6.git (push)\n$ git switch --track new/update-to-3-6-12\nSwitched to a new branch 'update-to-3-6-12'\nBranch 'update-to-3-6-12' set up to track remote branch 'update-to-3-6-12' from 'new'.\n$ git merge-base --is-ancestor origin/f33 update-to-3-6-12\nhttps://src.fedoraproject.org/fork/thrnciar/rpms/python3.6/diff/f33..update-to-3-6-12\n$ git remote add origin-f32 ssh://pkgs.fedoraproject.org/rpms/python36.git --fetch\nremote: Enumerating objects: 420, done.\nremote: Counting objects: 100% (381/381), done.\nremote: Compressing objects: 100% (195/195), done.\nremote: Total 339 (delta 208), reused 257 (delta 139)\nReceiving objects: 100% (339/339), 125.11 KiB | 585.00 KiB/s, done.\nResolving deltas: 100% (208/208), completed with 23 local objects.\nFrom ssh://pkgs.fedoraproject.org/rpms/python36\n * [new branch]      el6        -\u003e origin-f32/el6\n * [new branch]      epel7      -\u003e origin-f32/epel7\n * [new branch]      f24        -\u003e origin-f32/f24\n * [new branch]      f25        -\u003e origin-f32/f25\n * [new branch]      f27        -\u003e origin-f32/f27\n * [new branch]      f29        -\u003e origin-f32/f29\n * [new branch]      f30        -\u003e origin-f32/f30\n * [new branch]      f31        -\u003e origin-f32/f31\n * [new branch]      f32        -\u003e origin-f32/f32\n * [new branch]      master     -\u003e origin-f32/master\nUpdating origin-f32\n$ git remote add backport-f32 ssh://pkgs.fedoraproject.org/forks/churchyard/rpms/python36.git\n$ git remote -v\nbackport\tssh://pkgs.fedoraproject.org/forks/churchyard/rpms/python3.6.git (fetch)\nbackport\tssh://pkgs.fedoraproject.org/forks/churchyard/rpms/python3.6.git (push)\nbackport-f32\tssh://pkgs.fedoraproject.org/forks/churchyard/rpms/python36.git (fetch)\nbackport-f32\tssh://pkgs.fedoraproject.org/forks/churchyard/rpms/python36.git (push)\nnew\tssh://pkgs.fedoraproject.org/forks/thrnciar/rpms/python3.6.git (fetch)\nnew\tssh://pkgs.fedoraproject.org/forks/thrnciar/rpms/python3.6.git (push)\norigin\tssh://pkgs.fedoraproject.org/rpms/python3.6.git (fetch)\norigin\tssh://pkgs.fedoraproject.org/rpms/python3.6.git (push)\norigin-f32\tssh://pkgs.fedoraproject.org/rpms/python36.git (fetch)\norigin-f32\tssh://pkgs.fedoraproject.org/rpms/python36.git (push)\n$ git merge-base --is-ancestor origin-f32/f32 update-to-3-6-12\n$ git format-patch origin/master\n$ fedpkg --name python3.6 sources\nDownloading Python-3.6.12.tar.xz\n\nDownloading Python-3.6.12.tar.xz.asc\n$ fedpkg --name python36 new-sources Python-3.6.12.tar.xz Python-3.6.12.tar.xz.asc\nFile already uploaded: Python-3.6.12.tar.xz\nFile already uploaded: Python-3.6.12.tar.xz.asc\nSource upload succeeded. Don't forget to commit the sources file\n$ git switch --track origin-f32/f32\nSwitched to a new branch 'f32'\nBranch 'f32' set up to track remote branch 'f32' from 'origin-f32'.\n$ git switch -c f32-auto-thrnciar-update-to-3-6-12\nSwitched to a new branch 'f32-auto-thrnciar-update-to-3-6-12'\n$ git push --force -u backport-f32 f32-auto-thrnciar-update-to-3-6-12\nEnumerating objects: 9, done.\nCounting objects: 100% (9/9), done.\nDelta compression using up to 8 threads\nCompressing objects: 100% (3/3), done.\nWriting objects: 100% (5/5), 824 bytes | 824.00 KiB/s, done.\nTotal 5 (delta 3), reused 4 (delta 2), pack-reused 0\nremote: Sending to redis to log activity and send commit notification emails\nremote: * Publishing information for 1 commits\nremote:   - to fedora-message\nremote: \nremote: Create a pull-request for f32-auto-thrnciar-update-to-3-6-12\nremote:    https://src.fedoraproject.org/fork/churchyard/rpms/python36/diff/master..f32-auto-thrnciar-update-to-3-6-12\nremote: \nTo ssh://pkgs.fedoraproject.org/forks/churchyard/rpms/python36.git\n + 519ea4d...79109b1 f32-auto-thrnciar-update-to-3-6-12 -\u003e f32-auto-thrnciar-update-to-3-6-12 (forced update)\nBranch 'f32-auto-thrnciar-update-to-3-6-12' set up to track remote branch 'f32-auto-thrnciar-update-to-3-6-12' from 'backport-f32'.\n$ git switch update-to-3-6-12\nSwitched to branch 'update-to-3-6-12'\nYour branch is up to date with 'new/update-to-3-6-12'.\nhttps://src.fedoraproject.org/fork/churchyard/rpms/python36/diff/f32..f32-auto-thrnciar-update-to-3-6-12\n$ git remote add origin-f31 ssh://pkgs.fedoraproject.org/rpms/python36.git --fetch\nFrom ssh://pkgs.fedoraproject.org/rpms/python36\n * [new branch]      el6        -\u003e origin-f31/el6\n * [new branch]      epel7      -\u003e origin-f31/epel7\n * [new branch]      f24        -\u003e origin-f31/f24\n * [new branch]      f25        -\u003e origin-f31/f25\n * [new branch]      f27        -\u003e origin-f31/f27\n * [new branch]      f29        -\u003e origin-f31/f29\n * [new branch]      f30        -\u003e origin-f31/f30\n * [new branch]      f31        -\u003e origin-f31/f31\n * [new branch]      f32        -\u003e origin-f31/f32\n * [new branch]      master     -\u003e origin-f31/master\nUpdating origin-f31\n$ git remote add backport-f31 ssh://pkgs.fedoraproject.org/forks/churchyard/rpms/python36.git\n$ git remote -v\nbackport\tssh://pkgs.fedoraproject.org/forks/churchyard/rpms/python3.6.git (fetch)\nbackport\tssh://pkgs.fedoraproject.org/forks/churchyard/rpms/python3.6.git (push)\nbackport-f31\tssh://pkgs.fedoraproject.org/forks/churchyard/rpms/python36.git (fetch)\nbackport-f31\tssh://pkgs.fedoraproject.org/forks/churchyard/rpms/python36.git (push)\nbackport-f32\tssh://pkgs.fedoraproject.org/forks/churchyard/rpms/python36.git (fetch)\nbackport-f32\tssh://pkgs.fedoraproject.org/forks/churchyard/rpms/python36.git (push)\nnew\tssh://pkgs.fedoraproject.org/forks/thrnciar/rpms/python3.6.git (fetch)\nnew\tssh://pkgs.fedoraproject.org/forks/thrnciar/rpms/python3.6.git (push)\norigin\tssh://pkgs.fedoraproject.org/rpms/python3.6.git (fetch)\norigin\tssh://pkgs.fedoraproject.org/rpms/python3.6.git (push)\norigin-f31\tssh://pkgs.fedoraproject.org/rpms/python36.git (fetch)\norigin-f31\tssh://pkgs.fedoraproject.org/rpms/python36.git (push)\norigin-f32\tssh://pkgs.fedoraproject.org/rpms/python36.git (fetch)\norigin-f32\tssh://pkgs.fedoraproject.org/rpms/python36.git (push)\n$ git merge-base --is-ancestor origin-f31/f31 f32-auto-thrnciar-update-to-3-6-12\nhttps://src.fedoraproject.org/fork/thrnciar/rpms/python36/diff/f31..f32-auto-thrnciar-update-to-3-6-12\n```\n\nThe output looks very verbose, but there are colors to guide you.\n\nTODO\n----\n\n- fork the repo if needed\n- read the initial branch info from src.fp.o\n- create the new PRs on src.fp.o\n\nCaution\n-------\n\nThis force pushes to `\u003cfedora_branch\u003e-auto-\u003coriginal_username\u003e-\u003coriginal_branch\u003e`\n(e.g. `f32-auto-thrnciar-update-to-3-6-12`) into your fork without looking.\nThis can erase data, you have been warned.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffedora-python%2Fbranchsync","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffedora-python%2Fbranchsync","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffedora-python%2Fbranchsync/lists"}