-
Notifications
You must be signed in to change notification settings - Fork 0
Git Notes
John Reppy edited this page Jun 3, 2026
·
9 revisions
This document collects together some common git patterns that we use to manage the SML/NJ development branch.
git clone --recurse-submodules git@github.com:smlnj/smlnj.gitSwitch to the submodule directory and then update to the latest version. Then we have to commit and push the submodule. Note that the name of the LLVM submodule changes over time as we update the version of LLVM that we are using.
# switch to the submodule directory
cd runtime/llvm21
# checkout the main branch
git checkout main
# pull the latest version
git pull
# switch back to the parent repo
cd ../..
# update the parent repo
git commit -a -m "update version of code generator submodule"
git pushTo remove the old version of the module
git rm runtime/old
git commit -m "remove old submodule"
git pushNote that the submodule will persist in the .git subdirectory.
Include the --recurse-submodules option when pulling the code to ensure
that we get any changes to the submodule.
git pull --recurse-submodulesgit submodule add https://github.com/smlnj/smlnj-llvm-21.1.git llvm21To add a tag $TAG
git tag -a $TAG -m "some comment"
git push origin tag $TAGTo remove a tag
git push --delete origin $TAG
git tag -d $TAG