Re: what's the Correct git update method keeping local changes
Date: Wed, 29 Mar 2023 02:53:12 UTC
> ---------------------------------------- > From: void <void@f-m.fm> > Date: Mar 27, 2023, 8:19:19 PM > To: <freebsd-hackers@freebsd.org> > Subject: what's the Correct git update method keeping local changes > > What's the best way? > -- > I use the following interactive script to update and maintain local ports mods. It updates the poudriere jail, switches branches when available, and merges changes to my custom branch. #!/usr/local/bin/bash # update poudriere's ports git repos jail_name="FreeBSD:13:amd64" logfile="/usr/local/etc/poudriere.d/quarterly.log" ports_dir="/usr/local/poudriere/ports/quarterly" ports_list="[list of customized category/portname pairs goes here]" curb=$(git -C $ports_dir branch | sed -n 'x;$p') read -p "==> Update jails? [N|y] " update_jails if [[ $update_jails == "y" ]]; then poudriere jail -uj $jail_name fi # prompt to switch branches if local quarter branch and current quarter differ read month year <<< $(date "+%m %Y") awk 'BEGIN { exit "'${curb: -1}'" == int(('$month' / 3) + .9) }' # (true is 1) if [[ $? == 0 ]]; then read -p "==> Change branch? [n|Y] " change_branch if [[ ! $change_branch == "n" ]]; then set -ve newb=$(git -C $ports_dir branch -rl "*${year}Q*" | sed '$!d') git -C $ports_dir fetch git -C $ports_dir checkout ${newb# origin/} git -C $ports_dir worktree list curb=${newb# origin/} set +ve fi fi read -p "==> Update branches? [n|Y] " update_ports if [[ ! $update_ports == "n" ]]; then set -ve poudriere ports -vup latest git -C $ports_dir checkout $curb poudriere ports -vup quarterly | tee $logfile git -C $ports_dir checkout custombranch git -C $ports_dir rebase $curb for port in $ports_list; do if grep --quiet $port $logfile; then rsync -ax $ports_dir/$port/ \ $ports_dir/${port/*\//custom/}/ fi done set +ve fi exit -- Sent with https://mailfence.com Secure and private email