I've been using Source Hut as my primary host for source control and builds for a few months. I really enjoy it, but one of the main things I had to learn up front was how to apply a patch in git. Unlike Github and many other git host Source Hut makes use of the git patch work flow instead of PRs. At first I found this to be a bit frustrating, but I've actually come to see the value in the email and patch workflow that is different from the IM and PR work flow that many of us are used to. Hopefully this helps somebody else that is learning to use patches in the future.
Build your feature or modify your code on a separate branch:
git checkout -b ... git add ... git commit git push
Prepare a patchset:
git format-patch master # Alternative for a patch directory git format-patch master -o patches
Or login and find the link to download the patch:
curl -O https://git.sr.ht/~n0mn0m/circuitroomba/commit/ae635ce6533e33ff5277a0428a59c736a98649d6.patch ls | grep ".patch" ae635ce6533e33ff5277a0428a59c736a98649d6.patch
Switch back to master:
git checkout master
Check the patchset changes
git apply --stat ae635ce6533e33ff5277a0428a59c736a98649d6.patch
Check for errors
git apply --check ae635ce6533e33ff5277a0428a59c736a98649d6.patch
Assuming the above command doesn't generate any errors you are ready to apply a clean patch. The
command below includes the
--signoff flag for others to view.
git am --signoff < ae635ce6533e33ff5277a0428a59c736a98649d6.patch
And with that the patch has been applied to your master branch. Run your test again for sanities sake and push master.