From: Junio C Hamano <email@example.com> To: firstname.lastname@example.org Subject: A note from the maintainer Date: Sun, 13 Jul 2008 22:51:35 -0700 Message-ID: <email@example.com> (raw) In-Reply-To: <firstname.lastname@example.org> Welcome to git community. This message talks about how git.git is managed, and how you can work with it. * IRC and Mailing list Many active members of development community hang around on #git IRC channel on Freenode. Its log is available at: http://colabti.org/irclogger/irclogger_log/git The development however is primarily done on the git mailing list (email@example.com). If you have patches, please send them to the list, following Documentation/SubmittingPatches. I usually try to read all patches posted to the list, and follow almost all the discussions on the list, unless the topic is about an obscure corner that I do not personally use. But I am obviously not perfect. If you sent a patch that you did not hear from anybody for three days, that is a very good indication that it was dropped on the floor --- please do not hesitate to remind me. The list archive is available at a few public sites as well: http://news.gmane.org/gmane.comp.version-control.git/ http://marc.theaimsgroup.com/?l=git http://www.spinics.net/lists/git/ and some people seem to prefer to read it over NNTP: nntp://news.gmane.org/gmane.comp.version-control.git When you point at a message in a mailing list archive, using gmane is often the easiest to follow by readers, like this: http://thread.gmane.org/gmane.comp.version-control.git/27/focus=217 as it also allows people who subscribe to the mailing list as gmane newsgroup to "jump to" the article. * Repositories, branches and documentation. My public git.git repository is at: git://git.kernel.org/pub/scm/git/git.git/ Immediately after I publish to the primary repository at kernel.org, I also push into an alternate here: git://repo.or.cz/alt-git.git/ Impatient people might have better luck with the latter one. Their gitweb interfaces are found at: http://git.kernel.org/?p=git/git.git http://repo.or.cz/w/alt-git.git There are three branches in git.git repository that are not about the source tree of git: "todo", "html" and "man". The first one was meant to contain TODO list for me, but I am not good at maintaining such a list and it is not as often updated as it could/should be. It also contains some helper scripts I use to maintain git. The "html" and "man" are autogenerated documentation from the tip of the "master" branch; the tip of "html" is extracted to be visible at kernel.org at: http://www.kernel.org/pub/software/scm/git/docs/ The above URL is the top-level documentation page, and it has links to documentation of older releases. The script to maintain these two documentation branches are found in "todo" branch as dodoc.sh, if you are interested. It is a good demonstration of how to use an update hook to automate a task. There are four branches in git.git repository that track the source tree of git: "master", "maint", "next", and "pu". I may add more maintenance branches (e.g. "maint-1.5.4") if we have hugely backward incompatible feature updates in the future to keep an older release alive; I may not, but the distributed nature of git means any volunteer can run a stable-tree like that herself. The "master" branch is meant to contain what are very well tested and ready to be used in a production setting. There could occasionally be minor breakages or brown paper bag bugs but they are not expected to be anything major, and more importantly quickly and trivially fixable. Every now and then, a "feature release" is cut from the tip of this branch and they typically are named with three dotted decimal digits. The last such release was 1.5.6 done on Jun 18th this year. You can expect that the tip of the "master" branch is always more stable than any of the released versions. Whenever a feature release is made, "maint" branch is forked off from "master" at that point. Obvious, safe and urgent fixes after a feature release are applied to this branch and maintenance releases are cut from it. The maintenance releases are named with four dotted decimal, named after the feature release they are updates to; the last such release was 184.108.40.206. New features never go to this branch. This branch is also merged into "master" to propagate the fixes forward. A trivial and safe enhancement goes directly on top of "master". A new development, either initiated by myself or more often by somebody who found his or her own itch to scratch, does not usually happen on "master", however. Instead, a separate topic branch is forked from the tip of "master", and it first is tested in isolation; I may make minimum fixups at this point. Usually there are a handful such topic branches that are running ahead of "master" in git.git repository. I do not publish the tip of these branches in my public repository, however, partly to keep the number of branches that downstream developers need to worry about low, and primarily because I am lazy. The quality of topic branches are judged primarily by the mailing list discussions. Some of them start out as "good idea but obviously is broken in some areas (e.g. breaks the existing testsuite)" and then with some more work (either by the original contributor's effort or help from other people on the list) becomes "more or less done and can now be tested by wider audience". Luckily, most of them start out in the latter, better shape. The "next" branch is to merge and test topic branches in the latter category. In general, the branch always contains the tip of "master". It might not be quite rock-solid production ready, but is expected to work more or less without major breakage. I usually use "next" version of git for my own work, so it cannot be _that_ broken to prevent me from pushing the changes out. The "next" branch is where new and exciting things take place. The two branches "master" and "maint" are never rewound, and "next" usually will not be either (this automatically means the topics that have been merged into "next" are usually not rebased, and you can find the tip of topic branches you are interested in from the output of "git log next"). You should be able to safely track them. After a feature release is made from "master", however, "next" will be rebuilt from the tip of "master" using the surviving topics. The commit that replaces the tip of the "next" will have the identical tree, but it will have different ancestry from the tip of "master". An announcement will be made to warn people about such a rebasing. The "pu" (proposed updates) branch bundles all the remainder of topic branches. The "pu" branch, and topic branches that are only in "pu", are subject to rebasing in general. By the above definition of how "next" works, you can tell that this branch will contain quite experimental and obviously broken stuff. When a topic that was in "pu" proves to be in testable shape, it graduates to "next". I do this with: git checkout next git merge that-topic-branch Sometimes, an idea that looked promising turns out to be not so good and the topic can be dropped from "pu" in such a case. A topic that is in "next" is expected to be tweaked and fixed to perfection before it is merged to "master" (that's why "master" can be expected to stay very stable). Similarly to the above, I do it with this: git checkout master git merge that-topic-branch git branch -d that-topic-branch Note that being in "next" is not a guarantee to appear in the next release (being in "master" is such a guarantee, unless it is later found seriously broken and reverted), or even in any future release. There even were cases that topics needed reverting a few commits in them before graduating to "master", or a topic that already was in "next" were entirely reverted from "next" because fatal flaws were found in them later. Starting from v1.5.0, "master" and "maint" have release notes for the next release in Documentation/RelNotes-* files, so that I do not have to run around summarizing what happened just before the release. * Other people's trees, trusted lieutenants and credits. Documentation/SubmittingPatches outlines who your changes should be sent to. As described in contrib/README, I would delegate fixes and enhancements in contrib/ area to primary contributors of them. Although the following are included in git.git repository, they have their own authoritative repository and maintainers: - git-gui/ comes from Shawn Pearce's git-gui project: git://repo.or.cz/git-gui.git - gitk-git/ comes from Paul Mackerras's gitk project: git://git.kernel.org/pub/scm/gitk/gitk.git I would like to thank everybody who helped to raise git into the current shape. Especially I would like to thank the git list regulars whose help I have relied on and expect to continue relying on heavily: - Linus on general design issues. - Linus, Shawn Pearce, Johannes Schindelin, Nicolas Pitre, René Scharfe and Jeff King on general implementation issues. - Shawn and Nicolas Pitre on pack issues. - Martin Langhoff and Frank Lichtenheld on cvsserver and cvsimport. - Paul Mackerras on gitk. - Eric Wong on git-svn. - Simon Hausmann on git-p4. - Jakub Narebski, Petr Baudis, and Luben Tuikov on gitweb. - J. Bruce Fields on documentaton issues. - Johannes Schindelin, Johannes Sixt and others for their effort to move things forward on the Windows front. Most of the fruits from their porting efforts have been merged to the mainline git.git repository in 1.6.0 release. - People on non-Linux platforms for keeping their eyes on portability; especially, Randal Schwartz, Theodore Ts'o, Jason Riedy, Thomas Glanzmann, but countless others as well. * This document The latest copy of this document is found in git.git repository, on 'todo' branch, as MaintNotes.
next prev parent reply index Thread overview: 101+ messages in thread (expand / mbox.gz / Atom feed / [top]) 2006-10-24 9:16 Junio C Hamano 2006-10-24 9:37 ` Jakub Narebski 2007-01-02 3:31 Junio C Hamano 2007-01-02 3:47 ` Shawn O. Pearce [not found] <firstname.lastname@example.org> 2007-02-16 22:31 ` Junio C Hamano 2007-02-17 2:35 ` Johannes Schindelin 2007-02-23 6:03 ` Junio C Hamano [not found] <email@example.com> 2007-04-04 18:26 ` Junio C Hamano 2007-05-20 9:54 ` Junio C Hamano [not found] <firstname.lastname@example.org> 2007-09-02 6:34 ` Junio C Hamano 2008-01-08 8:57 Junio C Hamano 2008-01-08 9:57 ` Jakub Narebski 2008-01-08 10:03 ` Junio C Hamano 2008-02-02 4:35 Junio C Hamano 2008-02-02 11:06 ` Jakub Narebski 2008-02-17 9:16 Junio C Hamano 2008-03-09 10:57 ` Junio C Hamano 2008-04-09 9:44 Junio C Hamano 2008-06-18 23:24 [ANNOUNCE] GIT 1.5.6 Junio C Hamano 2008-06-19 7:24 ` Junio C Hamano 2008-06-19 9:17 ` 'next' will be rewound shortly Junio C Hamano 2008-06-27 16:12 ` Stephan Beyer 2008-06-27 16:34 ` Miklos Vajna 2008-06-27 17:19 ` Stephan Beyer 2008-06-27 19:28 ` Miklos Vajna 2008-06-27 21:28 ` Junio C Hamano 2008-06-27 21:36 ` Miklos Vajna 2008-06-27 23:41 ` Stephan Beyer 2008-06-28 0:05 ` Junio C Hamano 2008-07-14 5:51 ` Junio C Hamano [this message] 2008-06-22 16:54 ` Steffen Prohaska 2008-06-26 6:21 ` [ANNOUNCE] GIT 220.127.116.11 Junio C Hamano 2008-07-01 11:29 ` Steffen Prohaska [not found] <email@example.com> 2008-08-17 23:58 ` Junio C Hamano 2008-12-25 6:48 Junio C Hamano 2009-03-04 19:52 Junio C Hamano 2009-05-07 7:09 Junio C Hamano 2009-05-07 13:40 ` Baz 2009-05-07 16:30 ` Junio C Hamano 2009-07-29 21:15 Junio C Hamano 2010-01-01 0:09 Junio C Hamano 2010-02-13 1:24 Junio C Hamano 2010-07-21 22:18 Junio C Hamano 2010-09-19 1:28 Junio C Hamano 2011-01-31 5:51 Junio C Hamano 2011-04-25 21:05 Junio C Hamano 2011-08-24 23:51 Junio C Hamano 2011-10-05 2:22 Junio C Hamano 2011-10-15 5:47 ` Martin von Zweigbergk 2011-10-16 7:24 ` Junio C Hamano 2011-10-24 15:32 Junio C Hamano [not found] <firstname.lastname@example.org> 2012-01-27 21:41 ` Junio C Hamano 2012-03-06 7:10 Junio C Hamano 2012-06-19 23:53 Junio C Hamano 2012-08-20 3:16 Junio C Hamano 2012-09-18 23:14 Junio C Hamano 2012-10-08 20:08 Junio C Hamano 2012-10-21 22:10 Junio C Hamano 2012-12-10 23:16 Junio C Hamano 2013-01-01 0:27 Junio C Hamano 2013-01-28 20:48 Junio C Hamano 2013-03-13 20:26 Junio C Hamano 2014-11-26 23:09 Junio C Hamano 2015-02-05 22:53 Junio C Hamano 2015-03-06 23:33 Junio C Hamano 2015-03-23 21:38 Junio C Hamano 2015-04-30 19:51 Junio C Hamano 2015-05-08 14:46 ` Christian Couder 2015-05-08 16:25 ` Junio C Hamano 2015-07-15 21:43 Junio C Hamano 2015-08-28 21:12 Junio C Hamano 2015-09-28 23:20 Junio C Hamano 2015-11-05 23:14 Junio C Hamano 2015-11-06 10:50 ` Xue Fuqiao 2015-11-06 17:38 ` Junio C Hamano 2016-01-04 23:44 Junio C Hamano 2016-02-06 0:07 Junio C Hamano 2016-03-28 22:42 Junio C Hamano 2016-04-29 22:04 Junio C Hamano 2016-05-19 17:48 Junio C Hamano 2016-06-13 19:45 Junio C Hamano 2016-07-11 20:14 Junio C Hamano 2016-08-12 19:55 Junio C Hamano 2016-08-12 22:42 ` Eric Wong 2016-08-13 8:10 ` Jeff King 2016-08-13 9:04 ` Eric Wong 2016-08-13 11:14 ` Jeff King 2016-08-14 1:27 ` Eric Wong 2016-08-14 2:12 ` Eric Wong 2016-08-14 12:23 ` Jeff King 2016-08-14 12:19 ` Jeff King 2016-08-14 15:00 ` Philip Oakley 2016-08-14 22:52 ` Eric Wong 2016-09-03 2:17 Junio C Hamano 2016-09-03 10:26 ` Jakub Narębski 2016-09-07 16:16 ` Junio C Hamano 2016-10-03 22:31 Junio C Hamano 2016-11-29 21:24 Junio C Hamano 2017-02-24 19:29 Junio C Hamano 2017-03-20 21:39 Junio C Hamano 2017-03-24 21:19 Junio C Hamano
Reply instructions: You may reply publically to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style List information: http://vger.kernel.org/majordomo-info.html * Reply to all the recipients using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --email@example.com \ --firstname.lastname@example.org \ --email@example.com \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
firstname.lastname@example.org mailing list mirror (one of many) Archives are clonable: git clone --mirror https://public-inbox.org/git git clone --mirror http://ou63pmih66umazou.onion/git git clone --mirror http://czquwvybam4bgbro.onion/git git clone --mirror http://hjrcffqmbrq6wope.onion/git Newsgroups are available over NNTP: nntp://news.public-inbox.org/inbox.comp.version-control.git nntp://ou63pmih66umazou.onion/inbox.comp.version-control.git nntp://czquwvybam4bgbro.onion/inbox.comp.version-control.git nntp://hjrcffqmbrq6wope.onion/inbox.comp.version-control.git nntp://news.gmane.org/gmane.comp.version-control.git note: .onion URLs require Tor: https://www.torproject.org/ or Tor2web: https://www.tor2web.org/ AGPL code for this site: git clone https://public-inbox.org/ public-inbox