Here's what I discovered so far:
GitHub provides a bridge for Subversion clients. KoLmafia can checkout a GitHub project as though it was a Subversion repo:
Code:
svn checkout https://github.com/<your_id>/<project_slug>
Your project can and will often contain useful files not related to KoLmafia itself. This includes
README.md
,
LICENSE
, and
.gitignore
. However, KoLmafia will
refuse to check out a repository containing any files it doesn't know. I observed two workarounds for this.
Solution 1:
Put your ASH scripts under a subdirectory in your main branch. This subdirectory is usually named
build
or
release
(see
autoscend for example):
Code:
build/
scripts/
my-script.ash
relay/
some-relay-script.ash
.gitignore
LICENSE
README.md
Then tell KoLmafia to checkout this subdirectory:
Code:
svn checkout https://github.com/<your_id>/<project_slug>/trunk/<subdirectory>
This setup is simpler than the method 2. However, it will cause all commits to your main branch to propagate to your users. Commit with caution!
Solution 2:
Maintain a separate Git branch which contains only files that KoLmafia accepts. This branch is often named
release
(see
TourGuide for example). You can tell KoLmafia to checkout from this branch like this:
Code:
svn checkout https://github.com/<your_id>/<project_slug>/branches/release
Your can continue development on another branch (usually
master
or
main
), and merge your changes to the
release
branch when you're ready to share them.
This method is trickier than method 1, since you have to juggle with an extra branch. However, if you have a custom build process (like autoscend or TourGuide), the second option may help you stick to the
Single Source of Truth principle (i.e. not storing your build artifacts in the repo).
Personally? I'm sticking with method 1. I haven't found a good reason for me to use method 2 yet.