Common workflows using topgit and godot-extended-libraries/godot-fire

This is a living document. Update timestamp using date --iso=sec --utc.

Preliminaries

Make sure that your ssh key is usable in WSL2.

scoop install wsl-ssh-pageant
wsl-ssh-pageant.exe -systray  -winssh ssh-pageant -wsl C:\wsl-ssh-pageant\ssh-agent.sock

Inside of WSL2.

export SSH_AUTH_SOCK=/mnt/c/wsl-ssh-pageant/ssh-agent.sock

Use pushInsteadOf to convert https links to ssh ones.

# Modify to your liking
git config --global url.git@github.com:fire.pushInsteadOf https://github.com/fire
git config --global url.git@github.com:godot-extended-libraries.pushInsteadOf https://github.com/godot-extended-libraries
git config --global url.git@gitlab.com:fire.pushInsteadOf https://gitlab.com/fire

How to update a branch in topgit to the latest.

Definitions:

upstream - https://github.com/godotengine/godot.git @ 3.2 branch

upstream-base - https://github.com/godot-extended-libraries/godot-fire @ extended/3.2/3.2 branch

fire-merge - https://github.com/godot-extended-libraries/godot-fire @ extended/3.2/fire branch

fire-exported - https://github.com/godot-extended-libraries/godot-fire @ extended-fire branch

  1. Populate git repo
tg remote --populate origin
  1. Checkout upstream-base
tg checkout extended/3.2/3.2
  1. Rebase upstream-base on upstream.
git rebase godotengine/3.2 extended/3.2/3.2
  1. Checkout fire-merge
tg checkout extended/fire
  1. Update all the dependent branches
tg update
  1. Collapse and export branches to fire-exported
tg export extended-fire
  1. Switch to fire-exported
git checkout extended-fire
  1. Overwite remote fire-exported
git push -f

Create a topgit setup

To be written.

tg remote --populate origin
git checkout 3.2
tg create --base extended/3.2/3.2
tg create extended/3.2/wireframe
tg create extended/3.2/3.2
tg depend extended/3.2/wireframe
git clean -fxd && git checkout extended/3.2/3.2 --force
tg export extended-fire
tg push