This site has been retired. For up to date information, see handbook.gnome.org or gitlab.gnome.org.


[Home] [TitleIndex] [WordIndex

Whiteboard

Scripts and goodies for the conversion are at

git clone ssh://MYUSERNAME@git.gnome.org/git/gnome-git-migration.git

You can also see the cgit view of that repository.

Requirements

Data Integrity

One of the primary concerns that Olav (justifiably) has is making sure that the conversion proceeds accurately and we don't find problems after the fact when they are going to be hard to fix up.

Issues that he was worried about included:

What procedures do we follow to verify the integrity of the converted repositories?

Strategy:

Commit Tracking

Olav considers it necessary to be able to track reliably and unforgeably who introduced code into the repository.

This would presumably be a look-aside log that recorded the ssh user ID for each push along with identifying information for the push. (The commit ID for each pushed head or whatever.)

Olav suggests 'hg pushlog' as a comparison.

Beyond that tools to retrieve the information and figure out who pushed (was the first to push) a particular commit would be nice, but as long as we *could* write them, probably not immediately necessary.

Strategy:

Status:

Server Usage

Estimating the server resources would be needed to figure out where we would host a git.gnome.org.

Some factors to consider:

Data can presumably be obtained from freedesktop.org about usage and server load and we can try to extrapolate to the GNOME load.

Pre-commit checks

How we would go about migrating the pre-commit hooks we have in svn currently. Are there any things that would be hard to do with git?

SVN dependencies

What depends upon svn.gnome.org, and what is needed to migrate them?

Status:

JHBuild

Is the current jhbuild git support good enough? How does the disk space usage compare for a complete checkout of the 2.26 moduleset between git and svn?

There are a few bug reports that would benefit the eye of a git expert:

Status:

Build bot

build.gnome.org integration with the VCS is done in two parts, and largely based on stuff that would be needed elsewhere anyway.

The first part is the notification of changes, this is currently done subscribing to svn-commits-list and parsing incoming mails (see code). Those mails should contain: revision hash, author, module, commit message; also the list of added/modified/removed files is nice as it allows to avoid rebuilds for translation changes. The email format itself doesn't need to be identical, a mail header X-Commit-Mail-Format: foobar would be ideal to identify them.

The second part of the integration is pointing back to the commit, currently it points to viewvc (example); so it just needs a template URL where $module and $hash could be replaced.

check if tests were made mixing buildbot and git for the gstreamer switch

How does it work for translators?

What are the special requirements for translators:

Is transifex to a point where we could deploy it for GNOME?

You can find practical instructions for GNOME translators, a discussion and ideas at GitMigration/Translators.

Web infrastructure

Is cgit good enough to replace how people use viewvc? (What would deploying gitorious bring in the future in addition?)

Status:

SVN hooks

hooks.tar.gz - The current set of SVN hooks for each module in svn.gnome.org, as well as a "bin" directory with scripts that get called from the hooks.

FedericoMenaQuintero put the hooks above in a Git repository here: http://gitorious.org/projects/gnome-svn-hooks/repos/mainline

Website update hooks: http://svn.gnome.org/viewvc/sysadmin-bin/trunk/gnomeweb/

Olav said about those hooks: These are running on various machines. If you sudo to gnomeweb on master, you can see the config for just that machine in ~/etc/website-triggers. Then also make sure the hooks for those in ~/hooks don't rely on SVN specific stuff (for all machines which use the website update scripts).

git clone git://gitorious.org/gnome-svn-hooks/mainline.git

Plan of action

There are some main areas that need work:

Repository conversion

We can use git-svn (see John Carr's details on this).

Alternatively, we could reuse the repositories that are already converted in git-mirror.gnome.org. This would be convenient for people who already have work based on them.

TODO: Are the repos in git-mirror.gnome.org adequate?

TODO: Which modules use SVN externals? Where is this a good/bad idea, and what do we do in each case? For example, we could turn libbackground into a real library, or make it part of the gnome-desktop library.

Commit hooks

We have to port our current set of commit hooks to Git. Our hooks and a "bin" directory with scripts are here:

git clone git://gitorious.org/gnome-svn-hooks/mainline.git

TODO: Correlate the hooks with our list of requirements.

TODO: Create git-commits-list@gnome.org.

Done: Find which modules have hooks specific to them, instead of just generic hooks. See /PerModuleHooks

TODO: Port the svn commit hooks in the "bin" directory above to the Git machinery.

JHBuild

TODO: Figure out what needs to be done for jhbuild

Web front-end

FIXED: Set up cgit and point it to our repositories.

TODO: Is a setup like freedesktop.org's, which also groks ~username/git/reponame.git applicable to GNOME? Or should we wait for a real Gitorious installation to avoide giving people shell accounts?

cgit TODO

Maintenance infrastructure

TODO: We need a way for people to create public repositories ("new-gnome-module"), similar to the new-svn-repos script we have.

TODO: See below in the documentation section, we need a document to let people know how to push to new repositories or how to seed them from existing repositories.

Migration docs

TODO: Write document on suggested workflows for maintainers

Instructions about how to use Git can be found in Git.

TODO: Write document on suggested workflow for translators (do sparse checkouts make sense? do people really check out a single language.po file?) Draft document available at GitMigration/Translators.

TODO: Write document on how to request that a new repository be created, and how to populate it from an existing repository. "git push --all --tags" may be all people need, plus something to set up a remote.

TODO: Write general document on how the svn->git migration was done, for other projects that may find it useful.

TODO: Update the Wiki pages. There are a lot of pages that refer to Subversion or svn in the wiki pages. Most conversions are trivial, in the sense that they only need simple susbtitutions:

The idea is to convert them more or less at the same time as the GitMigration itself. At the very least the first six in the the following list of pages should be converted:

Future

TODO: Set up Gitorious.

TODO: Give UI love to Gitorious! Talk to the KDE people; they are interested in this as well.

Milestones

1. Working scratch-repositories and notification

2. Guinea pigs with converted repositories

HubertFiguiere volunteer the "niepce" module for the tests.

Who does what

FedericoMenaQuintero

KristianHøgsberg

OwenTaylor

BehdadEsfahbod

ElijahNewren

Volunteers available to help

JasonClinton

ShaunMcCance - not an admin type, but happy to develop tools, conversion scripts, automated verifiers, etc.

EmmanueleBassi

LuisMedinas - I can help test/migrate some modules, already updated prepare-ChangeLog script to work on git >= 1.6.x on svn/releng trunk.

HubertFiguiere - I can help test. So above for the Guinea Pig repository.

SteveFrécinaux

RubenVermeersch We need gitorious, probably even more than cgit :-). Willing to help figure that out if needed.

MattEnright Willing to help test, in addition to cgit/gitorious-type works.

SantiBejar I would like to help in migration docs and testing.

SimosXenitellis I would like to help in the documentation, and assist translators in a smooth transition.

Schedule

Date for migration is April 16, 2009 (see http://mail.gnome.org/archives/gnome-infrastructure/2009-March/msg00064.html announcement).

See also Schedule.

Tools

svn-all-fast-export

By Thiago Macieira and Chris Lee:

http://repo.or.cz/w/svn-all-fast-export.git

Config file: see the end of http://mail.kde.org/pipermail/kde-scm-interest/2007-December/000150.html

Misc

Gitorious is like Github, but free. It hosts itself, so we could adapt it easily as a web frontend for git.gnome.org with collaboration tools.

References

John Carr's page about how git-mirror.gnome.org is generated

Git for Gnome developers - we'll need to update this once the migration is done


2024-10-23 11:09