none
[openafs-wiki.git] / AFSLore / 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 - Reach a decision about tag and branch name formats (underscores or dots) and implement it
16
17 ### <a name="Gerrit"></a> Gerrit
18
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
23
24 ### <a name="cvs commit emails"></a> cvs commit emails
25
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)
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 Generate .gitignore files, based on the existing .cvsignore files and some common sense
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 -- [[SimonWilkinson]] - 06 Jun 2009