Move to git: Difference between revisions
Jump to navigation
Jump to search
m (→TODOs) |
|||
(8 intermediate revisions by the same user not shown) | |||
Line 7: | Line 7: | ||
* 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. | * 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 | ** 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 | ||
* 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 | * 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 == | == 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 17: | ||
** 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 | |||
perhaps [https://learn.microsoft.com/en-us/azure/devops/repos/git/perform-migration-from-svn-to-git?view=azure-devops this] article can give some hints | |||
* We must find a way to migrate the sourceforge tickets (Bugs, Feature requests) into github tickets (issues, conversations) | |||
** this might help: https://github.com/cmungall/gosf2github | |||
** export tickets here: https://sourceforge.net/p/vice-emu/admin/export | |||
* 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) | |||
* Some documentation must be updated to show the GIT commands instead of the SVN commands (this can be prepared in a local git repo produced by the above script) | |||
** howto-release.txt | |||
** probably some things in docs/building | |||
=== doing the switch === | |||
Actually doing the switch will likely require two or three of us present and then do some tag team fixing :) | |||
* 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 way everything will now point at github and (hopefully) still work when someone checks out the svn repo | |||
* produce a local git repo with the above script, push it to new public git repo | |||
** now everyone can push the fixes they prepared in local repos | |||
* test everything | |||
** clean checkout repo, build all archs | |||
** build a release | |||
=== after the switch === | |||
* set svn repo read only | |||
* remove remains of (hidden?) svn directories in the repo, making it git only | |||
* test everything AGAIN :) | |||
** clean checkout repo, build all archs | |||
** build a release | |||
* | * check URLs in all docs, website, repos etc | ||
* | * PROFIT!!! | ||
[[Category:TODO]] | [[Category:TODO]] | ||
[[Category:Developer]] | [[Category:Developer]] |
Latest revision as of 23:06, 17 March 2024
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
- 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
perhaps this article can give some hints
- We must find a way to migrate the sourceforge tickets (Bugs, Feature requests) into github tickets (issues, conversations)
- this might help: https://github.com/cmungall/gosf2github
- export tickets here: https://sourceforge.net/p/vice-emu/admin/export
- 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)
- Some documentation must be updated to show the GIT commands instead of the SVN commands (this can be prepared in a local git repo produced by the above script)
- howto-release.txt
- probably some things in docs/building
doing the switch
Actually doing the switch will likely require two or three of us present and then do some tag team fixing :)
- 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 way everything will now point at github and (hopefully) still work when someone checks out the svn repo
- produce a local git repo with the above script, push it to new public git repo
- now everyone can push the fixes they prepared in local repos
- test everything
- clean checkout repo, build all archs
- build a release
after the switch
- set svn repo read only
- remove remains of (hidden?) svn directories in the repo, making it git only
- test everything AGAIN :)
- clean checkout repo, build all archs
- build a release
- check URLs in all docs, website, repos etc
- PROFIT!!!