update gerrit list
[openafs-wiki.git] / devel / GitTools.mdwn
1 # <a name="Git to do list"></a> Git to do list
2
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
4
5 ## <a name="Before"></a> Before
6
7 The following are the tasks which needed to be completed before (or at the same time as) the switch being thrown.
8
9 ### <a name="Repository Conversion"></a> Repository Conversion
10
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 - <strike>Reach a decision about tag and branch name formats (underscores or dots) and implement it</strike>
16
17 ### <a name="Gerrit"></a> Gerrit
18
19 - <strike>Install gerrit on the Stanford machine</strike>
20 - Make arrangements for database backups
21 - Make arrangements for Jetty starting at machine boot
22 - Stop gerrit from forging email
23
24 ### <a name="cvs commit emails"></a> cvs commit emails
25
26 <strike>We need to preserve the existing cvs commits mailing list. Russ has a plan to do this by using a second git repository, into which gerrit will automatically push all of the changes it receives. A post-receive hook script can then be used on this repository to generate commit emails. Russ is going to set this up once the final repository is in place, so this is fundamentally done.</strike>
27
28 ### <a name="Delta creation web page"></a> Delta creation web page
29
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.
31
32 ### <a name="Pullup script"></a> Pullup script
33
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.
35
36 ### <a name="Wdelta"></a> Wdelta
37
38 Write a replacement for wdelta that understands how to reassemble the disjoint patchsets that are used to represent deltas in git
39
40 ### <a name=".gitignore files"></a> .gitignore files
41
42 <strike>Generate .gitignore files, based on the existing .cvsignore files and some common sense</strike>
43
44 ## <a name="Shortly after"></a> Shortly after
45
46 These items will be required shortly after we complete the switchover
47
48 ### <a name="Release Building Script"></a> Release Building Script
49
50 (we can't release without it!)
51
52 A script is required to produce the basics of a release. It should do something like the following:
53
54 - Take SHA1 of tag point
55 - Need to tag tree
56 - But, need to have option to run without tagging
57 - Need to preserve difference between doc and source tree (generate tarballs for both)
58 - Generate diff between two tags
59 - Generates changelog from complete commit log on every patch
60
61 ### <a name="Delete all RCSID(&quot;&quot;) markers"></a> Delete all RCSID("") markers
62
63 Git doesn't give us RCSIDs, so we should delete all of the places in the code where these occur.
64
65 ## <a name="After"></a> After
66
67 These are things that we believe it would be nice to have, but that we're not going to delay flipping the switch for ...
68
69 ### <a name="Gerrit changes"></a> Gerrit changes
70
71 - Support for naming deltas within Gerrit, as part of the 'submit' action.
72
73 ### <a name="persistent repository clone in a"></a> persistent repository clone in afs
74
75 Build a persistent clone &amp; checkout of the master in AFS. Get gerrit and/or cron to keep this constantly up to date.
76
77 -- Simon Wilkinson - 06 Jun 2009