As a long time proponent of SVN, regretting Inkscape's switch to Bazaar, I encourage the switch to Git. Not because of Git itself. It is a major PITA. I use SourceTree (Windows and Mac) and it helps deal with Git's troubles, but I am certain Inkscape will need dedicated Gitters to resolve complicated issues that are bound to pop up. The reason I think Git is great for Inkscape is: Github. (or any similar site) Launchpad is lacking a lot of functionality that would make it worthwhile to use bzr/git/... Currently, branching is easy in bzr, but important things related to branches are absent on Launchpad.
Examples of what Github will give you that Launchpad does not have: - Code review: add comments in-line with code - Integration with Jenkins/Travis/etc. : upon pull request you can see if it breaks the build, without having to build yourself. - A simple button to merge a merge-request (pull request); incredible that Launchpad does not have this. For bug management, my impression is that Launchpad does a better job.
Using Git/Github will put more burden on the developer, but it greatly reduces the burden on the code reviewer. Switching to Git because of Git itself does not make sense to me, at all. For me, the advantage of switching is the much much better web-interface. The disadvantage is git itself.
-Johan
On 1-5-2015 7:41, Martin Owens wrote:
There are also a few other repositories outside of the main branch. The inkscape-web repository and I think inkscape-docs has one too. These are bzr currently. and will need to be moved to keep consistency. Given the smaller numbers of people involved, they might be easier to move first once a suitable landing site is found.
The website deploys through bzr at the moment, but git is possible too. In fact if the git parent target is the webserver then I have post hooks that can run the required website scripts without a cron job. Which is nice.
Martin,
On 1 May 2015 at 00:55, Bryce Harrington <bryce@...961...> wrote:
On the last day of the hackfest, we discussed git over lunch. A few folks on IRC had questions about what we talked about, and I figured there'd be wider interest so am writing this up.
What is motivating us to switch? Is bzr going away?
Development of bzr has stopped. A couple years ago Canonical reassigned all the bzr devs to other projects, leaving just a skeleton staff to do bug maintenance (same was done with Launchpad). There had been a time when Canonical pushed bzr as the Cat's Meow, but I think the realization has sunk in that git has won the larger hearts and minds war.
bzr is not going away though, near as I can tell. There's no urgency to move to something else; we can stay with it indefinitely if we want. But it's a dead end tool. As we recruit new developers we will find more often they have git experience but not bzr; eventually bzr will be a detriment to attracting new talent that will prefer to invest their skills in git. And there's no guarantee Canonical won't pull the plug on it at some point, regardless.
There are also tons of tools, web applications, and so on being developed for git. What exists for bzr is in process of bitrotting away (e.g. I tried to install the rebase plugin last night but it's several bzr revisions out of date, and did not work.)
Isn't git hard to learn? bzr seems so natural...
git has a reputation for having a high learning curve, and it's legitimately earned. But most all of us have at least had a little exposure to git, and there are plenty of good tutorials out there.
git was a struggle for me to learn, so I won't sugar coat it and say it'll be easy. But I will say if you haven't yet mastered git, then it's an important software development skill you're going to want to have beyond Inkscape anyway, since pretty much all other projects use it.
What about Launchpad and its bzr integration?
One of the reasons we picked bzr was because of its integration with the bug tracker, and yes that's pretty cool and something we'll lose making the transition. The good news is that unlike when we switched to bzr, there are now a number of good web apps and services (github clones, et al). So we'll have a wealth of options to consider when we get to this point.
Where will we host the repository? github? freedesktop?
One nice thing with git is that we will have 100% freedom in deciding where to host the official repo. We can even consider self-hosting it (e.g. on our website vm). We have lots and lots of options, and plenty of time to deliberate and decide on a plan.
Can it import our history? tags?
Yep. Lots of projects have preceeded us in bzr->git conversions and there's a rich set of well tested converter tools available.
Can we still do PPA recipe builds on Launchpad?
Sure can. Launchpad may only host bzr but it has a very good git importer. So we'd set up LP to import our git branch to a bzr tracking branch on LP and then it's business as normal.
Can we convert to git ASAP?
I know some people are anxious to move us over to git, and so am I, but we need to pace ourselves. Changing VCS is going to be disruptive to everyone, and it will take time before everyone's up to speed with it. As a project there are other changes which are more pressing, which we need to give priority to. If we rush into git, we're likely to make mistakes or at least cause unnecessary frustrations. Planned well, we can make the transition relatively smooth, and ensure there are tutorials and tips available as needed.
Bryce