Opened at 2011-12-21T06:15:01Z
Last modified at 2014-07-09T00:04:58Z
#1644 closed task
move to git — at Version 10
Reported by: | warner | Owned by: | somebody |
---|---|---|---|
Priority: | major | Milestone: | soon (release n/a) |
Component: | dev-infrastructure | Version: | n/a |
Keywords: | git darcs trac buildbot | Cc: | francois@… |
Launchpad Bug: |
Description (last modified by davidsarah)
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):
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" accountSet up post-commit webhook to update tahoe-lafs.org:/home/source/git/tahoe-lafs.git upon changesAdd "git" repo/branch to Tracthis 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 buildmasterMigrate all slaves to the git-based buildmastercreate 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 buildmasterget 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
Change History (10)
comment:1 Changed at 2011-12-21T21:35:53Z by warner
- Description modified (diff)
comment:2 Changed at 2011-12-22T08:09:25Z by francois
- Cc francois@… added
comment:3 Changed at 2012-02-16T23:18:09Z by davidsarah
- Keywords git darcs trac buildbot added
comment:4 Changed at 2012-03-26T17:08:38Z by zooko
- Description modified (diff)
comment:5 Changed at 2012-03-26T17:09:08Z by zooko
This will probably fix #1519.
comment:6 Changed at 2012-09-17T23:46:17Z by zooko
Let's see... Are we waiting for David-Sarah to finish up some darcs branches before we all agree not to push new changes to darcs? Once we've so agreed, I could make the darcs repos read-only in the filesystem.
comment:7 Changed at 2012-09-17T23:59:17Z by zooko
A next-step here is to write a tool that trawls through the database and replaces [REVNUMBER] with the appropriate git commit id for that darcs commit number, and likewise replaces source:foo@REVNUMBER and (?) I guess also replaces https://tahoe-lafs.org/trac/tahoe-lafs/browser/src/allmydata/web/directory.py?rev=5d404db898e1e6dc#L306 with https://tahoe-lafs.org/trac/tahoe-lafs/browser/src/allmydata/web/directory.py?rev=5d404db898e1e6dc334c3d125ea12a34ea58b13f#L306. Also there may be some darcs patch hash tags, like https://tahoe-lafs.org/trac/tahoe-lafs/browser/src/allmydata/web/directory.py?rev=5d404db898e1e6dc#L306 which should likewise be rewritten.
Actually, since Brian said he wasn't going to do this anytime soon, and I'm not feeling particularly motivated to do it either, maybe a nice interim measure is to just start using src:git/foo instead of src:foo in our *new* comments, and in general to go manually converting such things as are mutable (e.g. wiki pages) to point to https://tahoe-lafs.org/trac/tahoe-lafs/browser/git instead of to https://tahoe-lafs.org/trac/tahoe-lafs/browser/trunk.
comment:8 follow-up: ↓ 9 Changed at 2012-09-18T01:26:25Z by davidsarah
Why not switch the default trac branch to "git" now? That wouldn't break anything, would it?
comment:9 in reply to: ↑ 8 Changed at 2012-09-18T01:28:13Z by davidsarah
Replying to davidsarah:
Why not switch the default trac branch to "git" now? That wouldn't break anything, would it?
Oh, of course it would -- it would break all the revision-specific links.
comment:10 Changed at 2012-10-26T01:25:41Z by davidsarah
- Description modified (diff)
got trac+git fixed, now we see new changes