Opened at 2011-12-21T06:15:01Z
Closed at 2014-07-09T00:04:58Z
#1644 closed task (fixed)
move to git
Reported by: | warner | Owned by: | warner |
---|---|---|---|
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 warner)
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 itBuild tool to modify Trac DB [DARCS-REVID] comments to git-based [REVID/git]Run revid-mapping toolSwitch Trac "default branch" to gitReplace DB comments with [REVID/git] to just [REVID]Remove darcs branch from Trac
Change History (14)
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)
comment:11 Changed at 2012-10-28T00:45:09Z by amontero
The following description can be found on github repos:
The Tahoe-LAFS decentralized secure filesystem. https://github.com/tahoe-lafs/tahoe-lafs is the master. (note that this is a mirror of the darcs repo, updated manually whenever I remember to run the script)
Is the darcs manual sync still active?
comment:12 Changed at 2012-10-28T02:07:06Z by warner
No it's not.. we retired that a week or two ago. Thanks for the catch, I'll update the github description.
comment:13 Changed at 2014-07-08T17:15:08Z by zooko
- Description modified (diff)
- Owner changed from somebody to warner
Brian: can we mark off any more of the steps from the original description as "done" yet? Or should we instead mark them as "won't do"?
comment:14 Changed at 2014-07-09T00:04:58Z by warner
- Description modified (diff)
- Resolution set to fixed
- Status changed from new to closed
Yeah, actually, all of them are done now. Closing this out.
got trac+git fixed, now we see new changes