96 lines
1.9 KiB
Text
96 lines
1.9 KiB
Text
= How to remove a git branch in a dist-git repository
|
|
|
|
Historically we did not allow to remove git branches in dist-git repository, but
|
|
FESCo recently approved their removal *if and only if* all the commits in the
|
|
branch to be deleted can be reached from another branch.
|
|
This is a requirement to ensure that if any of the commits were used in a build,
|
|
we still have the commit accessible and thus we are able to reproduce the build
|
|
if needed.
|
|
|
|
There is a script in the releng repository to use to check if a branch can
|
|
safely be deleted.
|
|
|
|
So here are the steps to follow to remove the branch `<branch>` from the package
|
|
`<foo>`.
|
|
|
|
. Clone the releng repo if you do not already have it:
|
|
+
|
|
----
|
|
git clone https://pagure.io/releng.git
|
|
----
|
|
|
|
. Pull the latest changes:
|
|
+
|
|
----
|
|
pushd releng && git pull --rebase && popd
|
|
----
|
|
|
|
. Clone the `<foo>` package locally:
|
|
+
|
|
----
|
|
fedpkg clone <foo>
|
|
----
|
|
|
|
. Checkout the <branch> branch:
|
|
+
|
|
----
|
|
cd clone && git checkout <branch>
|
|
----
|
|
|
|
. Run the script:
|
|
+
|
|
----
|
|
python ../releng/scripts/distgit-branch-unused.py <branch>
|
|
----
|
|
+
|
|
(If needed, see the ``--help`` of the script for more information)
|
|
|
|
|
|
. If the script returns that the branch is safe to delete:
|
|
|
|
.. Go to pkgs01 as root
|
|
+
|
|
----
|
|
ssh pkgs01.rdu3.fedoraproject.org
|
|
----
|
|
|
|
.. Go to the git repository:
|
|
+
|
|
----
|
|
cd /srv/git/repositories/<namespace>/<foo>.git
|
|
----
|
|
|
|
.. Move the head of the branch (this allows to recover it later if needed):
|
|
+
|
|
--
|
|
|
|
----
|
|
mv refs/heads/<branch> heads_<branch>
|
|
----
|
|
|
|
Sometimes the ref is in the `packed-refs` file, in that case:
|
|
|
|
----
|
|
grep <branch> packed-refs > heads_<branch>
|
|
----
|
|
|
|
Then remove the line from `packed-refs` file
|
|
--
|
|
|
|
. On your local clone of `<foo>`, check that the branch was deleted upstream:
|
|
+
|
|
--
|
|
|
|
----
|
|
git fetch -p
|
|
----
|
|
|
|
This should show something like:
|
|
|
|
----
|
|
$ git fetch -p
|
|
From ssh://pkgs.fedoraproject.org/<namespace>/<foo>
|
|
- [deleted] (none) -> origin/<branch>
|
|
----
|
|
|
|
--
|