What's cooking (2011/09 #03)
[alt-git.git] / MaintNotes
blob55e4f998d49120488f9cfe2e15d600e474a6f1e4
1 Welcome to git development community.
3 This message is written by the maintainer and talks about how Git
4 project is managed, and how you can work with it.
6 * Mailing list and the community
8 The development is primarily done on the Git mailing list. Help
9 requests, feature proposals, bug reports and patches should be sent to
10 the list address <git@vger.kernel.org>.  You don't have to be
11 subscribed to send messages.  The convention on the list is to keep
12 everybody involved on Cc:, so it is unnecessary to ask "Please Cc: me,
13 I am not subscribed".
15 Before sending patches, please read Documentation/SubmittingPatches
16 and Documentation/CodingGuidelines to familiarize yourself with the
17 project convention.
19 If you sent a patch and you did not hear any response from anybody for
20 several days, it could be that your patch was totally uninteresting,
21 but it also is possible that it was simply lost in the noise.  Please
22 do not hesitate to send a reminder message in such a case.  Messages
23 getting lost in the noise is a sign that people involved don't have
24 enough mental/time bandwidth to process them right at the moment, and
25 it often helps to wait until the list traffic becomes calmer before
26 sending such a reminder.
28 The list archive is available at a few public sites as well:
30         http://news.gmane.org/gmane.comp.version-control.git/
31         http://marc.theaimsgroup.com/?l=git
32         http://www.spinics.net/lists/git/
34 and some people seem to prefer to read it over NNTP:
36         nntp://news.gmane.org/gmane.comp.version-control.git
38 When you point at a message in a mailing list archive, using
39 gmane is often the easiest to follow by readers, like this:
41         http://thread.gmane.org/gmane.comp.version-control.git/27/focus=217
43 as it also allows people who subscribe to the mailing list as gmane
44 newsgroup to "jump to" the article.
46 Some members of the development community can sometimes also be found
47 on the #git IRC channel on Freenode.  Its log is available at:
49         http://colabti.org/irclogger/irclogger_log/git
51 * Reporting bugs
53 When you think git does not behave as you expect, please do not stop your
54 bug report with just "git does not work".  "I tried to do X but it did not
55 work" is not much better, neither is "I tried to do X and git did Y, which
56 is broken".  It often is that what you expect is _not_ what other people
57 expect, and chances are that what you expect is very different from what
58 people who have worked on git have expected (otherwise, the behavior
59 would have been changed to match that expectation long time ago).
61 Please remember to always state
63  - what you wanted to do;
65  - what you did (the version of git and the command sequence to reproduce
66    the behavior);
68  - what you saw happen;
70  - what you expected to see; and
72  - how the last two are different.
74 See http://www.chiark.greenend.org.uk/~sgtatham/bugs.html for further
75 hints.
77 * Repositories, branches and documentation.
79 My public git.git repository is at:
81         git://git.kernel.org/pub/scm/git/git.git/
83 Immediately after I publish to the primary repository at kernel.org, I
84 also push into an alternate here:
86         git://repo.or.cz/alt-git.git/
88 Impatient people might have better luck with the latter one (there are a
89 few other mirrors I push into at sourceforge and github as well).
91 Their gitweb interfaces are found at:
93         http://git.kernel.org/?p=git/git.git
94         http://repo.or.cz/w/alt-git.git
96 There are three branches in git.git repository that are not about the
97 source tree of git: "html", "man", and "todo".
99 The "html" and "man" are auto-generated documentation from the tip of
100 the "master" branch; the tip of "html" is extracted to be visible at
101 kernel.org at:
103         http://www.kernel.org/pub/software/scm/git/docs/
105 The above URL is the top-level documentation page, and it has links to
106 documentation of older releases.
108 The "todo" branch was originally meant to contain a TODO list for me,
109 but is mostly used to keep some helper scripts I use to maintain git.
110 For example, the script to maintain the two documentation branches are
111 found there as dodoc.sh, which may be a good demonstration of how to
112 use a post-update hook to automate a task after pushing into a
113 repository.
115 There are four branches in git.git repository that track the source tree
116 of git: "master", "maint", "next", and "pu".
118 The "master" branch is meant to contain what are very well tested and
119 ready to be used in a production setting.  Every now and then, a "feature
120 release" is cut from the tip of this branch and they typically are named
121 with three dotted decimal digits.  The last such release was 1.7.6 done on
122 June 26, 2011.  You can expect that the tip of the "master" branch is
123 always more stable than any of the released versions.
125 Whenever a feature release is made, "maint" branch is forked off from
126 "master" at that point.  Obvious, safe and urgent fixes after a feature
127 release are applied to this branch and maintenance releases are cut from
128 it.  The maintenance releases are named with four dotted decimal, named
129 after the feature release they are updates to; the last such release was
130 1.7.6.1.  New features never go to this branch.  This branch is also
131 merged into "master" to propagate the fixes forward.
133 A new development does not usually happen on "master". When you send a
134 series of patches, after review on the mailing list, a separate topic
135 branch is forked from the tip of "master" and your patches are queued
136 there, and kept out of "master" while people test it out.  The quality of
137 topic branches are judged primarily by the mailing list discussions.
139 Topic branches that are in good shape are merged to the "next" branch. In
140 general, the "next" branch always contains the tip of "master".  It might
141 not be quite rock-solid production ready, but is expected to work more or
142 less without major breakage. The "next" branch is where new and exciting
143 things take place. A topic that is in "next" is expected to be polished to
144 perfection before it is merged to "master" (that's why "master" can be
145 expected to stay more stable than any released version).
147 The "pu" (proposed updates) branch bundles all the remaining topic
148 branches. The topics on the branch are not complete, well tested, nor well
149 documented and need further work. When a topic that was in "pu" proves to
150 be in testable shape, it is merged to "next".
152 You can run "git log --first-parent master..pu" to see what topics are
153 currently in flight.  Sometimes, an idea that looked promising turns out
154 to be not so good and the topic can be dropped from "pu" in such a case.
156 The two branches "master" and "maint" are never rewound, and "next"
157 usually will not be either.  After a feature release is made from
158 "master", however, "next" will be rebuilt from the tip of "master"
159 using the topics that didn't make the cut in the feature release.
161 Note that being in "next" is not a guarantee to appear in the next
162 release, nor even in any future release.  There were cases that topics
163 needed reverting a few commits in them before graduating to "master", or a
164 topic that already was in "next" was reverted from "next" because fatal
165 flaws were found in it after it was merged.
168 * Other people's trees, trusted lieutenants and credits.
170 Documentation/SubmittingPatches outlines to whom your proposed changes
171 should be sent.  As described in contrib/README, I would delegate fixes
172 and enhancements in contrib/ area to the primary contributors of them.
174 Although the following are included in git.git repository, they have their
175 own authoritative repository and maintainers:
177  - git-gui/ comes from git-gui project, maintained by Pat Thoyts:
179         git://repo.or.cz/git-gui.git
181  - gitk-git/ comes from Paul Mackerras's gitk project:
183         git://git.kernel.org/pub/scm/gitk/gitk.git
185 I would like to thank everybody who helped to raise git into the current
186 shape.  Especially I would like to thank the git list regulars whose help
187 I have relied on and expect to continue relying on heavily:
189  - Linus Torvalds, Shawn Pearce, Johannes Schindelin, Nicolas Pitre,
190    René Scharfe, Jeff King, Jonathan Nieder, Johan Herland, Johannes
191    Sixt, Sverre Rabbelier, Michael J Gruber, Nguyễn Thái Ngọc Duy,
192    Ævar Arnfjörð Bjarmason and Thomas Rast on general design and
193    implementation issues and reviews on the mailing list.
195  - Shawn and Nicolas Pitre on pack issues.
197  - Martin Langhoff, Frank Lichtenheld and Ævar Arnfjörð Bjarmason on
198    cvsserver and cvsimport.
200  - Paul Mackerras on gitk.
202  - Eric Wong, David D. Kilzer and Sam Vilain on git-svn.
204  - Simon Hausmann and Pete Wyckoff on git-p4.
206  - Jakub Narebski, John Hawley, Petr Baudis, Luben Tuikov, Giuseppe Bilotta on
207    gitweb.
209  - J. Bruce Fields, Jonathan Nieder, Michael J Gruber and Thomas Rast on
210    documentation (and countless others for proofreading and fixing).
212  - Alexandre Julliard on Emacs integration.
214  - David Aguilar and Charles Bailey for taking good care of git-mergetool
215    (and Theodore Ts'o for creating it in the first place) and git-difftool.
217  - Johannes Schindelin, Johannes Sixt, Erik Faye-Lund and others for their
218    effort to move things forward on the Windows front.
220  - People on non-Linux platforms for keeping their eyes on portability;
221    especially, Randal Schwartz, Theodore Ts'o, Jason Riedy, Thomas Glanzmann,
222    Brandon Casey, Jeff King, Alex Riesen and countless others.
224 * This document
226 The latest copy of this document is found in git.git repository,
227 on 'todo' branch, as MaintNotes.