[MDEV-5240] Create 10.1 on github Created: 2013-11-05 Updated: 2014-05-28 Resolved: 2014-05-25 |
|
| Status: | Closed |
| Project: | MariaDB Server |
| Component/s: | None |
| Fix Version/s: | 10.1.0 |
| Type: | Task | Priority: | Blocker |
| Reporter: | Sergei Golubchik | Assignee: | Sergei Golubchik |
| Resolution: | Fixed | Votes: | 21 |
| Labels: | None | ||
| Issue Links: |
|
||||||||
| Description |
|
In no specific order:
|
| Comments |
| Comment by Andrew McDonnell [ 2014-01-25 ] | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Hi, I am not sure what your eventual process will include, but I have successfully made my own local git repos from launchpad using the following method (Debian Wheezy with git 1.8 from wheezy-backports) apt-get install git-bzr The clone about three hours on my PC which is a quad-core phenom and produced a working copy where the .git directory was > 5 Gigabytes... but I could then visualise the history with gitg and see all the maria tags and all the merged past branches, so it did a good job of preserving history. I could then merge the latest trunk in my bzr branch and then pull those changes into my git tree. I could also push changes back to my local bzr, which can then be pushed back to launchpad, I haven't tested this recently but I have done it successfully in the past. So I guess you could run both in parallel for a while, with some delay, and then one day just make github the official version and drop synchronisation from launchpad... HTH | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by zhifeng hu [ 2014-03-06 ] | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Any move forward ? Apache family Linus Torwards kernel Postgres repo FreeBSD anything else i missed? | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Kristian Nielsen [ 2014-04-03 ] | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
I can try to do some stuff on this, put a repo on github and maybe integrate something with Buildbot. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Kristian Nielsen [ 2014-04-03 ] | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
I tried converting the 10.0 repo: git init --bare It takes around 2 hours, seems to go well even though there are some warnings. This could be used as the basis for a proper switch from bzr to git (so that we set a point in time at which we migrate, after that all work is done in git, and all bzr trees are kept only as read-only mirrors, or just dropped). It seems there is another solution proposed, which is to use a git-bzr plugin to allow to push from a git repo into a bzr repo. There was even talk of letting 5.1 .. 10.0 trees remain bzr forever and only using git for 10.1... (I think this is likely to cause more problems than it solves). | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Kristian Nielsen [ 2014-04-03 ] | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
I can try using git-bzr-ng to clone 10.1. And then test working with ... 10.0 in bzr and 10.1 ... in git. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Kristian Nielsen [ 2014-04-04 ] | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Ouch, I couldn't even clone the 10.1 repo with git-bzr-ng, I got a bzr
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Andrew McDonnell [ 2014-04-04 ] | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Hi Kristian, I had more luck using git with bzr transport - see my comment dated 25 January I documented some experiments I conducted converting between bzr and git on my blog - see http://blog.oldcomputerjunk.net/2014/launchpad-to-github-round-trip-save-5-giabytes-on-the-way/ - although the latter part that will not be directly relevant | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Andrew McDonnell [ 2014-04-04 ] | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Re options for git migration related to your previous comment You may wish to consider 'chopping' the history available in the main working Github to a few years, just to make it more manageable from a size perspective. Obviously retaining the prior history is important for a number of reasons, so one solution might be to have two repos:
Development would continue in the active repo, and anyone wanting to do digital archeaology on mysql + mariadb could analyse the Full History repo. I believe that theoretically it would be possibly to regularly / automatically "top up" the full history wth new work from the active repo, to satisfy the needs of any future historians... This is just an idea, I have no idea if it is desirable... | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Kristian Nielsen [ 2014-04-04 ] | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
It's true that the immediate result from fast-import is around 5 GB. But after "git repack -a -d --depth=250 --window=250 -f" it's down to less than 300MB, which should be fine (the checked-out source tree is larger than that) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Andrew McDonnell [ 2014-04-04 ] | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Thats actually quite an impressive reduction. I got 223 MB just now ... I guess I never thought to go try that on the full tree once I worked out how to extract just the storage engine code! (I think I was a bit over waiting for git to do its thing by then) This is good, cloning is way faster now. It actually made gitg load a little faster which is quite interesting. It still takes several seconds to count through 80000 commits though which is a little annoying. But I think for me it makes maintaining a separate storage engine repo more of an intellectual curiosity now! Looking forward to a mariadb github becoming reality... | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Kristian Nielsen [ 2014-04-04 ] | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
I tried converting first 10.0 and then 10.1 with fast-export |fast-import. It seems to work well. I can maybe try something in buildbot next. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Kristian Nielsen [ 2014-04-07 ] | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
I think I got most of the pieces in place. I created a git repo on https://github.com/knielsen/mariadb. I was able to We will want to convert as many branches as possible to git eventually, as the git init --bare I was able to get Buildbot integration working. Github does a HTTP POST Once it is received by Buildbot, the push is just another change, same as the We need to install git on all buildslaves that do source checkout from | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Andrew McDonnell [ 2014-04-08 ] | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Your github seems to have lost all the past tags - is that what you were intending? | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Kristian Nielsen [ 2014-04-08 ] | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
The tags are in my local repo. Maybe they need to be pushed to github explicitly (I have not worked much with tags in git before) Right, it seems so: https://help.github.com/articles/pushing-to-a-remote#pushing-tags | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Daniel Black [ 2014-04-09 ] | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
note the github release functionality can also be used to tag and release at the same time however pushing tags is definitely appropriate for older releases. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Kristian Nielsen [ 2014-04-09 ] | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Stewart Smith just pointed me to the scripts he used to convert Percona repos to git. https://github.com/stewartsmith/bzr-to-git-conversion-scripts | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Andrew McDonnell [ 2014-04-23 ] | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Hi, I just tried these scripts and it died 15 minutes in, so will need to dive in and see what broke. Some stuff probably unrelated to why it failed but important to maria:
The script seems to make a second branch of maria bzr for some reason before performing a bzr fast-export and git fast-import that I made some tweaks to the script tp be more generic and fixed and documented missing dependencies; am trying again. Will push changes to my github | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Andrew McDonnell [ 2014-04-23 ] | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Ok, dependencies sorted and running a test now, modified script at https://github.com/andymc73/bzr-to-git-conversion-scripts/tree/maria-10 |