-
Notifications
You must be signed in to change notification settings - Fork 0
CentOS-virt7/systemd
Folders and files
| Name | Name | Last commit message | Last commit date | |
|---|---|---|---|---|
Repository files navigation
== Adding patches to systemd
optionally checkout original systemd:
$ cd <yourgitrepocollectiondir>
$ git clone git://anongit.freedesktop.org/systemd/systemd
$ cd systemd
add the RHEL-7 repo for systemd
$ git remote add systemd-rhel-7 git+ssh://git.engineering.redhat.com/srv/git/users/harald/systemd-rhel7.git
$ git fetch systemd-rhel-7
...
* [new branch] RHEL-7 -> systemd-rhel-7/RHEL-7
$ git checkout RHEL-7
Branch RHEL-7 set up to track remote branch RHEL-7 from systemd-rhel-7.
Switched to a new branch 'RHEL-7'
$ git cherry-pick <some-commit>
ADD THE BUGZILLA NUMBER
$ git commit --amend
$ git push
Now return to the rhpkg systemd git.
$ ./gitpull.sh
This modifies systemd.spec to contain the modifications to systemd-207 as a Patch.
== Working with the backport notes
Checkout a vanilla systemd git, or use your existing checkout
$ git clone git://anongit.freedesktop.org/systemd/systemd
$ cd systemd
Fetch the RHEL-7 systemd git
$ git remote add systemd-rhel-7
git+ssh://git.engineering.redhat.com/srv/git/users/harald/systemd-rhel7.git
$ git fetch systemd-rhel-7
Fetch the RHEL-7 notes
$ git fetch systemd-rhel-7 refs/notes/backport:refs/notes/backport
Display the log with the "backport" notes:
$ git log --notes=backport systemd-rhel-7/RHEL-7
Display a short log with the "backport" notes:
$ for i in $(git rev-list --branches=systemd-rhel-7/* \
v207..systemd-rhel-7/RHEL-7); do git notes --ref=backport show $i &>/dev/null\
&& git log -1 --format="%H $(git notes --ref=backport show $i): %s" $i|cat ||\
git log -1 --format="%H: %s" $i ;done
To update the backport notes automatically, use this shell script:
#!/bin/bash
while read s a; do
# continue, if already tagged
git notes --ref=backport show $a &>/dev/null && continue
if [[ "$s" == "+" ]]; then
git log -1 --format='Maybe not backported: %H %s' $a
continue
fi
backported=0
while read c; do
if [[ "$a" == "$c" ]]; then
echo "FAIL: $a == $c"
exit 1
fi
[[ "$(git show $a | git patch-id | { read a b; echo $a;})" != "$(git
show $c | git patch-id | { read a b; echo $a;})" ]] \
&& continue
echo "Noting $a and $c"
git notes --ref=backport add -m "backport of $c" $a
git notes --ref=backport add -m "backported to RHEL-7" $c
backported=1
break
done < <(git rev-list --branches=origin/* v206..origin/master)
[[ $backported == 0 ]] && git log -1 --format='Not backported: %H %s' $a
done < <(git cherry origin/master systemd-rhel-7/RHEL-7)
To manually add a note:
$ git notes --ref=backport add -m "message" <commit>
To push the notes:
$ git push systemd-rhel-7 refs/notes/backport
To display a colorful list of which patches are backported:
$ git cherry systemd-rhel-7/RHEL-7 origin/master | \
while read a b; do if [ "$a" = "+" ] && \
! git notes --ref=backport show $b &>/dev/null; then \
printf "\e[1;31m"; else printf "\e[1;32m";fi; \
git log -1 --no-color --format=oneline $b; printf "\e[0m";done
[alias]
cherrycol = "!sh -c 'git cherry \"$@\" | while read a b; do if [ \"$a\" = \"+\" ] && ! git notes --ref=backport show $b &>/dev/null; then printf \"\\e[1;31m\"; else printf \"\\e[1;32m\";fi; git log -1 --no-color --format=oneline $b; printf \"\\e[0m\";done
Of course all in one line...
$ git cherrycol systemd-rhel-7/RHEL-7 origin/master
About
virt7 rpm source for systemd --- BEWARE OF FORCE PUSHES (just in case)
Resources
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published