| <!-- doc/src/sgml/sourcerepo.sgml --> |
| |
| <appendix id="sourcerepo"> |
| <title>The Source Code Repository</title> |
| |
| <para> |
| The <productname>PostgreSQL</productname> source code is stored and managed |
| using the <productname>Git</productname> version control system. A public |
| mirror of the master repository is available; it is updated within a minute |
| of any change to the master repository. |
| </para> |
| |
| <para> |
| Our wiki, <ulink |
| url="https://wiki.postgresql.org/wiki/Working_with_Git"></ulink>, |
| has some discussion on working with Git. |
| </para> |
| |
| <para> |
| Note that building <productname>PostgreSQL</productname> from the source |
| repository requires reasonably up-to-date versions of <application>bison</application>, |
| <application>flex</application>, and <application>Perl</application>. These tools are not needed |
| to build from a distribution tarball, because the files that these tools |
| are used to build are included in the tarball. Other tool requirements |
| are the same as shown in <xref linkend="install-requirements"/>. |
| </para> |
| |
| <sect1 id="git"> |
| <title>Getting the Source via <productname>Git</productname></title> |
| |
| <para> |
| With <productname>Git</productname> you will make a copy of the entire code repository |
| on your local machine, so you will have access to all history and branches |
| offline. This is the fastest and most flexible way to develop or test |
| patches. |
| </para> |
| |
| <procedure> |
| <title>Git</title> |
| |
| <step> |
| <para> |
| You will need an installed version of <productname>Git</productname>, which you can |
| get from <ulink url="https://git-scm.com"></ulink>. Many systems already |
| have a recent version of <application>Git</application> installed by default, or |
| available in their package distribution system. |
| </para> |
| </step> |
| |
| <step> |
| <para> |
| To begin using the Git repository, make a clone of the official mirror: |
| |
| <programlisting> |
| git clone https://git.postgresql.org/git/postgresql.git |
| </programlisting> |
| |
| This will copy the full repository to your local machine, so it may take |
| a while to complete, especially if you have a slow Internet connection. |
| The files will be placed in a new subdirectory <filename>postgresql</filename> of |
| your current directory. |
| </para> |
| |
| <para> |
| The Git mirror can also be reached via the Git protocol. Just change the URL |
| prefix to <literal>git</literal>, as in: |
| |
| <programlisting> |
| git clone git://git.postgresql.org/git/postgresql.git |
| </programlisting> |
| |
| </para> |
| </step> |
| |
| <step> |
| <para> |
| Whenever you want to get the latest updates in the system, <command>cd</command> |
| into the repository, and run: |
| |
| <programlisting> |
| git fetch |
| </programlisting> |
| </para> |
| </step> |
| </procedure> |
| |
| <para> |
| <productname>Git</productname> can do a lot more things than just fetch the source. For |
| more information, consult the <productname>Git</productname> man pages, or see the |
| website at <ulink url="https://git-scm.com"></ulink>. |
| </para> |
| </sect1> |
| |
| </appendix> |