none
[openafs-wiki.git] / AFSLore / GitTools.mdwn
index 0fe24bc..85c7c49 100644 (file)
@@ -1,40 +1,65 @@
-# <a name="Tooling required for git"></a> Tooling required for git
+# <a name="Git to do list"></a> Git to do list
 
-## <a name="Release building script"></a> 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)
+## <a name="Before"></a> 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.
+
+### <a name="Repository Conversion"></a> Repository Conversion
 
-## <a name="cvs commit emails"></a> cvs commit emails
+- <strike>Make IBM the author of the initial revision</strike>
+- <strike>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)</strike>
+- <strike>Tidy up the remaining FIXES that have no associated bug IDs</strike>
+- <strike>Remove the branch signifier from the delta reference (as it has no significance)</strike>
+- Reach a decision about tag and branch name formats (underscores or dots) and implement it
 
-Required for switchover
+### <a name="Gerrit"></a> 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
+
+### <a name="cvs commit emails"></a> 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)
 
-## <a name="deltas"></a> deltas
+### <a name="Delta creation web page"></a> 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.
+### <a name="Pullup script"></a> 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.
 
-## <a name="persistent repository clone in a"></a> persistent repository clone in afs
+## <a name="Shortly after"></a> Shortly after
 
-Not required for the switch
+These items will be required shortly after we complete the switchover
 
-Build a persistent clone &amp; checkout of the master in AFS. Get gerrit and/or cron to keep this constantly up to date.
+### <a name="Release Building Script"></a> Release Building Script
 
-## <a name="pullups"></a> 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
+
+## <a name="After"></a> 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 ...
+
+### <a name="Gerrit changes"></a> Gerrit changes
+
+- Support for naming deltas within Gerrit, as part of the 'submit' action.
+
+### <a name="persistent repository clone in a"></a> persistent repository clone in afs
+
+Build a persistent clone &amp; checkout of the master in AFS. Get gerrit and/or cron to keep this constantly up to date.
 
 -- [[SimonWilkinson]] - 06 Jun 2009