Dev:Ref/Proposals/Migration to Git Phabricator

提供: wiki
移動先: 案内検索

Migration to Git and Phabricator

Plan

We intend have migrated from Subversion to Git for Blender code, and from GForge to Phabricator for bugs and code review.

Most of the core Blender developers prefer working with Git, and have already been using it with git-svn and in various external repositories. It makes sense to switch the main repository to Git then as well, so that we have a common base to merge patches and branches onto.

Phabricator will give us a centralized place to do code reviews and audits, integrated with bug reports and patch submissions. Currently there isn't a single mechanism and there are too many steps, with phabricator we can send code for review, and later merge it when approved with a single command, automatically closing associated tasks and bugs. Phabricator should also make it easier to do task management for modules, releases and user interface design.

We will host development infrastructure on our own servers, so that we can keep it under our control and customize where needed.

Goals

  • Make using Git easier for developers
  • Make code reviews centralized and efficient for developers
  • Try to lower barrier to entry for new developers
  • Use trackers for UI design and task management, not only bugs
  • Create developer website that truly reflects project organization

Questions

What about an official github or gitorious mirror?

We think this would be useful, but have not yet decided how or if this will work, it can be looked at after our own repository is up and running well.

Would we accept pull requests from github or similar on such a mirror?

We want to keep the threshold for new developers low, however doing this would make things somewhat complicated for us (syncing, duplicate issues/tasks, ..), it would be simpler if everything went through phabricator. We may at some point experiment with this or figure out a way to make submitting patches from such git hosts easier.

What will be the branching workflow?

We did not decide on a clear answer to this yet, there are a few options:

  • Let developers push branches to main repository on git.blender.org
  • Let developers push branches to some experimental repository on git.blender.org
  • Developers have own git repositories on some git host
  • Developers have local branches

Probably it will be a combination of these, but we need to agree on some guidelines.

What about the lib/ directory with precompiled libraries?

This will stay in subversion for now, because git is not efficient at storing binary file differences, and this would make the repositories very large to check out.