From 0be75492bf2d5543f44904d19dba30ad454fb92b Mon Sep 17 00:00:00 2001 From: SimonWilkinson Date: Sat, 13 Jun 2009 22:56:33 +0000 Subject: [PATCH 1/1] none --- AFSLore/GitTools.mdwn | 67 +++++++++++++++++++++++++++++++++++---------------- 1 file changed, 46 insertions(+), 21 deletions(-) diff --git a/AFSLore/GitTools.mdwn b/AFSLore/GitTools.mdwn index 0fe24bc..85c7c49 100644 --- a/AFSLore/GitTools.mdwn +++ b/AFSLore/GitTools.mdwn @@ -1,40 +1,65 @@ -# Tooling required for git +# Git to do list -## Release building script +This was originally just a list of the tools that needed to be written before we could make the switch to git. I'm now turning it into a more general to do list -Required for our first release (not switchover) +## Before -- Take SHA1 of tag point -- Need to tag tree -- But, need to have option to run without tagging -- Need to preserve difference between doc and source tree (generate tarballs for both) -- Generate diff between two tags -- Generates changelog from complete commit log on every patch +The following are the tasks which needed to be completed before (or at the same time as) the switch being thrown. + +### Repository Conversion -## cvs commit emails +- Make IBM the author of the initial revision +- Add a line to the comments of branch commits, indicating the SHA1 of the corresponding HEAD commit (this requires more reordering logic, so that the HEAD commit always lands first) +- Tidy up the remaining FIXES that have no associated bug IDs +- Remove the branch signifier from the delta reference (as it has no significance) +- Reach a decision about tag and branch name formats (underscores or dots) and implement it -Required for switchover +### Gerrit + +- Install gerrit on the Stanford machine +- Make arrangements for database backups +- Make arrangements for Jetty starting at machine boot +- Stop gerrit from forging email + +### cvs commit emails We need to preserve the existing cvs commits mailing list. A couple of ways of doing this have been proposed. Either get gerrit to CC the commit list with every "Change submitted" email that it sends, or set up a clone of the gerrit repository which has a commit hook that sends email. That clone would then be pushed to whenever gerrit makes a change, and would handle the sending of emails (and be the repo that end users pull from) -## deltas +### Delta creation web page -Initial Hack required for switchover +We need a mechanism for keeping the delta name information up to date, as gerrit won't be (directly) tracking it. The proposal is to have a protected web page which takes a git SHA1, and a delta name, and creates the necessary reference to associate the two together. -Initial hack: Build a web page which takes the SHA1 of the commit, and the delta name to be applied, and runs git update-refs on the server. +### Pullup script -Ideal solution: Add support to gerrit to prompt for the delta name as part of the submit action. +Write a script which takes the master delta name, the branch target, and cherrypicks the change to the branch. This should bypass gerrit if the cherrypick succeeds (This should probably use a different SSH key than the one normally used for head commits). For commits which require manual changes, there should be a choice between directly applying the massaged change to the branch, and submitting it via gerrit. -## persistent repository clone in afs +## Shortly after -Not required for the switch +These items will be required shortly after we complete the switchover -Build a persistent clone & checkout of the master in AFS. Get gerrit and/or cron to keep this constantly up to date. +### Release Building Script -## pullups +(we can't release with out it!) -Required for the switch +A script is required to produce the basics of a release. It should do something like the following: -Write a script which takes the master delta name, the branch target, and cherrypicks the change to the branch. This should bypass gerrit if the cherrypick succeeds (This should probably use a different SSH key than the one normally used for head commits). For commits which require manual changes, there should be a choice between directly applying the massaged change to the branch, and submitting it via gerrit. +- Take SHA1 of tag point +- Need to tag tree +- But, need to have option to run without tagging +- Need to preserve difference between doc and source tree (generate tarballs for both) +- Generate diff between two tags +- Generates changelog from complete commit log on every patch + +## After + +These are things that we believe it would be nice to have, but that we're not going to delay flipping the switch for ... + +### Gerrit changes + +- Support for naming deltas within Gerrit, as part of the 'submit' action. + +### persistent repository clone in afs + +Build a persistent clone & checkout of the master in AFS. Get gerrit and/or cron to keep this constantly up to date. -- [[SimonWilkinson]] - 06 Jun 2009 -- 1.9.4