On Mon, 24 Dec 2012 20:51:36 -0800 (PST) shia <zhabgyuan1...@gmail.com> wrote:
> I have used git for a few weeks,and for curiosity I download it's > source code > When look through it,I find that maybe a little difficult for > lacking of an architecture in my mind. > > How can I grasp the main line of such big project. Not that I want to discourage you, but having difficulty understanding Git's architecture might make contributing to Git very hard for you. At first, Git is a set of highly-optimized C programs written by a bunch of brilliant programmers, and this means the expectations about the prospective contributors are also very high. I think you understand what I mean. Next, regarding that "lack of architecture" issue, it might be insightful to read the famous rebuttal of C++ and its adepts [1] given by Linus Torvalds (the original author of Git) when someone tried to blame Git developers for not writing Git in C++. On the other hand, Git includes some technical documentation about its internal APIs and their usage, and you could read through it to get better grasp on Git's internals. This documentation is located in the Documentation/technical directory in the Git sources. You should also read Documentation/SubmittingPatches document before attempting to submit a patch. Moreover, unless your patch is trivial or fixes an obscure bug (say, only exposed on some obscure platform), be sure to first discuss what you want to do on the main Git list (which is git at vger.kernel.org, see [2] for more info). And note that this list is not for discussing Git development, it's for helping Git newbies to solve their problems when *using* Git. 1. http://thread.gmane.org/gmane.comp.version-control.git/57643/focus=57918 2. http://vger.kernel.org/vger-lists.html#git --