Move to git

From vice-emu
Revision as of 13:44, 24 May 2023 by Gpz (talk | contribs) (→‎TODOs)
Jump to navigation Jump to search

We want to move the repository to git(hub). Before that can happen, a couple things need to be done:

  • We need to establish a way to produce a simple increasing numbering scheme that can replace the SVN revision. This number must be easily relatable to GIT hashes, by both users and developers, without having to enter weird git commands or something similar.
    • Several scripts in the tree use the SVN revision, or other SVN things. These all have to be fixed to use the above
  • We'll have to agree on a development model. The most important difference to working with SVN is likely that usually with GIT you will NOT directly commit to the main tree, but always use a branch which is then merged into the tree.
    • That said, with cc65 we use a bit relaxed approach: "big" changes are made using branches und pull request, trivial things (fixing typos etc) can be pushed directly to the main tree
  • Some documentation must be updated to show the GIT commands instead of the SVN commands
    • howto-release.txt
    • probably some things in docs/building
  • The switch needs to be seamless, so we don't have a long interruption where no one can work on the code. That means everything needs to be tested and fixed before we do that

TODOs

before the switch

  • To make the transition as seamless and error free as possible, a script should be written that:
    • creates the initial git repository (locally)
    • converts svn commits into git commits
    • The branches that exist in the SVN repo must be converted to proper GIT branches
    • Most importantly the "tags" (which are really just SVN branches) should be converted to GIT tags
    • the testprogs and techdocs repositories can probably be just 1:1 converted into seperate git repositories
the above script can be checked into the svn repository
  • The github actions must be adjusted to use the git repositories (this can be prepared in a local git repo produced by the above script)

doing the switch

Actually doing the switch will likely require two or three of us present and then do some tag team fixing :)

  • produce a local git repo with the above script and prepared fixes, push it to new public git repo
  • test everything
    • clean checkout repo, build all archs
    • build a release
  • check URLs in all docs, website, repos etc. after this everything should point to the git repo.
  • do a last commit to the svn repository. This was everything will now point at github and (hopefully) still work when someone checks out the svn repo

after the switch

  • set svn repo read only
  • test everything AGAIN :)
    • clean checkout repo, build all archs
    • build a release
  • check URLs in all docs, website, repos etc
  • PROFIT!!!