transition to git

Registered by Olivier Mattelaer

Bzr starts to have installation problem. It is a nice (and easy) tools but only 1% of the open source is using it
(2% for hg and 50% for git). So even if git is more complex it might be a good move to pass to git at a given point.

Blueprint information

Status:
Started
Approver:
None
Priority:
Undefined
Drafter:
Olivier Mattelaer
Direction:
Needs approval
Assignee:
None
Definition:
New
Series goal:
None
Implementation:
Started
Milestone target:
None
Started by
Olivier Mattelaer

Related branches

Sprints

Whiteboard

Note that launchpad is also working with git repository so we do not have to use github or such kind of platform. (We can decide to do it obviously but this is technically a second question)

Here is a couple of link for the discussion:
1) https://help.launchpad.net/Code/Git
what is supported for git in launchpad
2) https://git-scm.com/book/en/v2/Git-and-Other-Systems-Migrating-to-Git
how to make the transition from bzr to git

The problem of git is his complexity compare to bzr and the necessity of more cleaning when dropping a branch. At the same time it comes with more features which are missing in bzr like the possibility to compress some old version to gain in reactivity.
So basicily this is a "with more power comes more responsability" kind of issue

-----------------------

Sergey tested: https://git-scm.com/book/en/v2/Git-and-Other-Systems-Migrating-to-Git
and looks like this method had some issue with the Events directory.
My guess is that this is an issue with empty directory.
-> This is a point to check if this is a git issue or the converter issue
-> You can have empty directory with putting a dummy (0-byte) file, like doc/.emptydir

-----------------------

I have tested to convert via the fast-export/fast-import setup
1) to export I have a very small python script:
    os.system('bzr fast-export --export-marks=marks.bzr ../version3 | GIT_DIR=.git git fast-import --export-marks=mark\
s.git')
and then running for any additional branches:
    os.system('bzr fast-export --import-marks=marks.bzr -b %(branch)s %(input)s | GIT_DIR=.git git fast-import --impor\
t-marks=marks.git --export-marks=marks.git' % {'input': input, 'branch':name})

2) as long as the file marks.git are presevered, you can even continue to work on bazaar and re-export the exact same branch (and/or new branch later in the process)

3) I have also tested a github action that automatically pushed the revision from git to bazaar, so we could even a phase where not all develloper are not yet moved to git (we should minimize it obviously, but this can be usefull for doing the merge of 3.4.0 both in bazaar and git and check any potential issue with the move)

4) current test with git are on github: https://github.com/oliviermattelaer/mg5amc_test
(please do not consider this as maintained/... this is only experimentation so far)

issue #1: some file name become capitalized in the process: (so need a git mv in all branches ...)
spotted so far:
- Loop_interface.py
- aMCatNLO_run_interface.py

issue #2:
tar: Events: Cannot stat: No such file or directory

(?)

Work Items

Work items:
first test of transfer: DONE
test of dual stack: INPROGRESS
test of a new release merge in git: TODO
create real repo on git(hub/lab): TODO

This blueprint contains Public information 
Everyone can see this information.