1 # <a name="Git to do list"></a> Git to do list
3 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
5 ## <a name="Before"></a> Before
7 The following are the tasks which needed to be completed before (or at the same time as) the switch being thrown.
9 ### <a name="Repository Conversion"></a> Repository Conversion
11 - <strike>Make IBM the author of the initial revision</strike>
12 - <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>
13 - <strike>Tidy up the remaining FIXES that have no associated bug IDs</strike>
14 - <strike>Remove the branch signifier from the delta reference (as it has no significance)</strike>
15 - Reach a decision about tag and branch name formats (underscores or dots) and implement it
17 ### <a name="Gerrit"></a> Gerrit
19 - Install gerrit on the Stanford machine
20 - Make arrangements for database backups
21 - Make arrangements for Jetty starting at machine boot
22 - Stop gerrit from forging email
24 ### <a name="cvs commit emails"></a> cvs commit emails
26 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)
28 ### <a name="Delta creation web page"></a> Delta creation web page
30 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.
32 ### <a name="Pullup script"></a> Pullup script
34 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.
36 ## <a name="Shortly after"></a> Shortly after
38 These items will be required shortly after we complete the switchover
40 ### <a name="Release Building Script"></a> Release Building Script
42 (we can't release with out it!)
44 A script is required to produce the basics of a release. It should do something like the following:
46 - Take SHA1 of tag point
48 - But, need to have option to run without tagging
49 - Need to preserve difference between doc and source tree (generate tarballs for both)
50 - Generate diff between two tags
51 - Generates changelog from complete commit log on every patch
53 ## <a name="After"></a> After
55 These are things that we believe it would be nice to have, but that we're not going to delay flipping the switch for ...
57 ### <a name="Gerrit changes"></a> Gerrit changes
59 - Support for naming deltas within Gerrit, as part of the 'submit' action.
61 ### <a name="persistent repository clone in a"></a> persistent repository clone in afs
63 Build a persistent clone & checkout of the master in AFS. Get gerrit and/or cron to keep this constantly up to date.
65 -- [[SimonWilkinson]] - 06 Jun 2009