﻿id	summary	reporter	owner	description	type	status	priority	milestone	component	version	resolution	keywords	cc	launchpad_bug
1644	move to git	warner	somebody	"We've decided to move to git. As #1226 points out, keeping Tahoe in
darcs is an unfortunate barrier to entry. This ticket tracks the
process.

We'll use the repo that I've been maintaining through a creaky
manually-run bidirectional darcs-to-git bridge, and publish on github. I
started publishing it under my personal account (and thus it has a few
dozen forks), but I created a new ""Organization"" account and we should
publicize that one as the official repo (on github, at least):

 https://github.com/tahoe-lafs/tahoe-lafs

The bridge only handles linear history, so until we drop darcs
completely, I'll be rebasing and linearizing everything that touches
master. The official repo will only contain a ""master"" branch, for now:
later we'll figure out a release process, and add the 1.8.3 branch back
in (which is currently unrepresented in git).

Steps:

* ~~Set up ""tahoe-lafs"" Github ""Organization"" account~~
* ~~Set up post-commit webhook to update
  {{{tahoe-lafs.org:/home/source/git/tahoe-lafs.git}}} upon changes~~
* ~~Add ""git"" repo/branch to Trac~~
 * ~~this is currently stuck at some old revision: I'm not sure why, maybe
   some bug in the trac-git plugin~~
 * turns out the {{{/home/source/webhook}}} daemon needed {{{--umask 002}}}, otherwise when it did a 'git fetch', the new object files were unreadable by the trac daemon
* ~~Set up git-based buildmaster~~
* ~~Migrate all slaves to the git-based buildmaster~~
 * ~~create entries for all slaves~~
 * port all Builders (add buildbot ""categories"" to mark Builders as ""supported"", ""performance"", ""packaging"", etc, to simplify web display)
 * port the index.html page
 * ~~shut down old buildmaster, change slaveport of new buildmaster to match the old one: boom, all slaves now connect to the new buildmaster~~
 * ~~get Git installed on all buildslaves that lack it~~
* update the following wiki pages to instruct people to use git instead of darcs: wiki:NewbieDeveloperSetup, wiki:Dev, wiki:AdvancedInstall (potentially better to remove any instructions on that page about revision control rather than to update the instructions from darcs to git)
* Stop updating darcs repo, freeze it
* Build tool to modify Trac DB {{{[DARCS-REVID]}}} comments to git-based
  {{{[REVID/git]}}}
* Run revid-mapping tool
* Switch Trac ""default branch"" to git
* Replace DB comments with {{{[REVID/git]}}} to just {{{[REVID]}}}
* Remove darcs branch from Trac
"	task	new	major	soon (release n/a)	dev-infrastructure	n/a		git darcs trac buildbot	francois@…	
