Move to git: Difference between revisions

From vice-emu
Jump to navigation Jump to search
Line 15: Line 15:


== TODOs ==
== TODOs ==
=== before the switch ===
* To make the transition as seamless and error free as possible, a script should be written that:
* To make the transition as seamless and error free as possible, a script should be written that:
** creates the initial git repository (locally)
** creates the initial git repository (locally)
Line 20: Line 21:
** The branches that exist in the SVN repo must be converted to proper GIT branches
** 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
** 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 testprogs and techdocs repositories can probably be just 1:1 converted into seperate git repositories
* 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)


* The github actions must be adjusted to use the git repositories
=== 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 ===
=== after the switch ===
Line 29: Line 44:
* set svn repo read only
* set svn repo read only


* test everything
* test everything AGAIN :)
** clean checkout repo, build all archs
** clean checkout repo, build all archs
** build a release
** build a release


* check URLs in all docs, website, repos etc
* check URLs in all docs, website, repos etc
* PROFIT!!!


[[Category:TODO]]
[[Category:TODO]]
[[Category:Developer]]
[[Category:Developer]]

Revision as of 13:44, 24 May 2023

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!!!