Given Code

Starting with TC-1, code with gaps is provided through the tc-base public Git repository. We used to provide code through tarballs and patches before, but we only rely on Git now. This approach is the best one, as git merge is arguably simpler than patch and has other advantages (like preserving the execution bit of scripts, identifying the origin of every line of code using git blame, etc.). Each commit containing the contents of a new stage is labeled with a |class|-tc-x.y tag.

Here is the recommended strategy to use this repository.

  1. At TC-1, subscribe to the repository, fetch its contents and integrate the given code using git merge with the commit labeled 2026-tc-1.0 into your master branch:

    $ git remote add tc-base
    $ git fetch tc-base
    $ git merge 2026-tc-1.0

    Fix the conflicts and record the merge commit:

    $ git add src/ ...
    $ git commit
  2. For any subsequent stage m, all you will need to do is fetch the new commits from the tc-base repository and merge the code given at stage m into yours (and of course, fix the conflicts). E.g.:

    $ git fetch tc-base
    $ git merge 2026-tc-m.0