Last modified 18 months ago
Last modified on 12/05/11 21:59:49
This is a living document. Please update the list of Todos if you find new ones or done ones.
NB: Options in discussion are git or mercurial.
Possible strategy for migrating to a DVCS
Aim is to get up the DVCS of choice quick so developers without SVN access can commit easily.
"start-quick" phase
Decide on which DVCS to useMigrate SVN repos to a temporary repository at github resp. bitbucket.
This can be done within a few days after the decision since Hartmut already did some work here.
Start distributed development there.
"design" phase
Decide on
- Future repository layout
- Future development workflow
An example can be found at http://nvie.com/posts/a-successful-git-branching-model/. For supporting this workflow there are git extensions available at https://github.com/nvie/gitflow. Even if not using this workflow, we could learn a lot there -- esp. since there is a python-rewrite :-)
- Future schemata for tag naming and branch naming
- ...
"clean-up" phase
- Find major bugs/problems/annoyances in the repository.
- Decide on which to clean up and how, esp. if the cleanup is to be done in SVN or the DVCS of choice.
- Write required tools and (fake-) changesets
- Set up another temporary repository for inspection
"go productive" phase
- If the cleanup is done in SVN:
- Set the temporary repository at github/bitbucket to read-only.
- Create an local, cleaned up repo in the DVCS of choice based on SVN repo.
- Export all accepted changesets from the temporary repository at github/bitbucket.
- Import these changesets into the cleaned up repo.
- Push the repo toe the new "official" repo at github/bitbucket.
- If the cleanup is done in the DVCS of choice:
- Set the temporary repository at github/bitbucket to read-only.
- Create an local clone of this repo.
- Cleaned up the local repo.
- Push the repo toe the new "official" repo at github/bitbucket.
Todos
- Decide on the migration strategy (see above)
- Find out how to integrate an external repository of th DVCS of choice with out trac instance.
- ...
Done
- Implement get_repo_revision for DVCS of choice (done for mercurial and git)
