Hey Ben! What is the best way to integrate radicle updates into my own disconnected repo? I’m sure there is some git magic to work up, but I’m curious how much of your radicle updates address major changes or new features to the boilerplate. Thanks!
Hey @jdinbound! You can add Radicle as a second remote and pull from it whenever you like. If you want to use git to handle merging in changes:
Lightweight approach (what I’d suggest for most people)
Add Radicle as a remote and use it as a reference to diff against, rather than merging into it:
# once
git remote add radicle [email protected]:roots/radicle.git
git fetch radicle --tags
# whenever you want to check for updates
git fetch radicle --tags
git log --oneline v2.5.0..v2.6.0 # commits since your baseline
git diff v2.5.0..v2.6.0 # the actual changes
where v2.5.0 is whatever version you started from. From there you can pull in pieces selectively:
git diff v2.5.0..v2.6.0 -- composer.json # scope the diff to one file
git checkout v2.6.0 -- path/to/file # take a file wholesale
git cherry-pick <sha> # apply one commit (works fine across unrelated histories)
You’ll want to eyeball anything you’ve customized rather than let git guess
If you originally cloned the repo you can drop --allow-unrelated-histories. If you started from a download, the first merge will be noisy, but after that you have a merge base and future merges behave normally.
As for how much the updates matter: it varies. Some releases are dependency bumps and small config tweaks, others also contain new features and refactors worth adopting. The changelogs at https://github.com/roots/radicle/releases walk through each one, so you can judge what’s worth updating your project with.
FWIW, my approach is to just selectively pull in changes by grabbing a diff from the PR (add .diff to the PR url), or straight up copy-and-pasting if it’s a simple change.