yes. i do something like
git remote add catfact http://github.com/catfact/norns.git
now i have two remotes, the default origin which points at the upstream monome/norns.git, and catfact which points at my fork.
workflow is then something like
git checkout -b feature-branch
git push --set-upstream catfact/feature-branch
…hack…
git commit blabla
git push feature-branch
…repeat…
before opening a PR it’s important to sync from upstream master to fix conflicts pre-emptively (i’m always forgetting this, like a jerk)
git fetch --all
git merge origin/master
git push feature-branch
when ready, PR from catfact/feature-branch to monome/master with the github web UI.
we have so far stuck to merge PRs versus rebasing, with no serious ill effects.
if/when PR is merged, sync my fork’s master
git fetch --all
git checkout master
git merge origin/master
git push catfact master
options.
to relaunch the whole stack, reconnecting with maiden websockets:
systemctl restart norns-*
but often during development it’s nice to just run the processes in the shell without redirecting stdio.
i’ll typically have 4 ssh sessions, plus emacs tramp-mode or VS Studio remote-fs for editing.
- one session for git and whatever
- one each for
crone, sclang, and matron
(from ~/norns/):
stop processes: ./stop.sh
start processes (in separate shells, and in this order):
./build/crone/crone
sclang
./build/matron/matron
you can also use systemctl to just restart individual services (norns-crone, norns-matron etc) or kill/launch them directly. just be aware that unless you restart all three processes in the right order, matron and sclang will be out of sync and some things won’t work right. (crone is pretty much independent.)