94 lines
2.8 KiB
Plaintext
94 lines
2.8 KiB
Plaintext
|
<!-- 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. An public mirror of this
|
||
|
is available and updated within a minute of the master repository.
|
||
|
</para>
|
||
|
|
||
|
<para>
|
||
|
Our wiki, <ulink
|
||
|
url="http://wiki.postgresql.org/wiki/Working_with_Git"></ulink>,
|
||
|
has additional details 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</>
|
||
|
and <application>flex</>. These tools are not needed to build from a
|
||
|
distribution tarball since their output is included in the file.
|
||
|
You will need Perl as well, but otherwise the tool requirements are the
|
||
|
same.
|
||
|
</para>
|
||
|
|
||
|
<sect1 id="git">
|
||
|
<title>Getting The Source Via <productname>Git</></title>
|
||
|
|
||
|
<para>
|
||
|
With <productname>Git</> you will make a copy of the entire code repository
|
||
|
to 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</>, which you can get
|
||
|
from <ulink url="http://git-scm.com"></ulink>. Many systems also have a recent
|
||
|
version of <application>Git</> installed by default, or available in their
|
||
|
package repository system.
|
||
|
</para>
|
||
|
</step>
|
||
|
|
||
|
<step>
|
||
|
<para>
|
||
|
To being using the Git repository, make a clone of the official mirror:
|
||
|
|
||
|
<programlisting>
|
||
|
git clone git://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.
|
||
|
</para>
|
||
|
|
||
|
<para>
|
||
|
The Git mirror can also be reached via the HTTP protocol in case for example
|
||
|
a firewall is blocking access to the Git protocol. Just replace the URL
|
||
|
like:
|
||
|
|
||
|
<programlisting>
|
||
|
git clone http://git.postgresql.org/git/postgresql.git
|
||
|
</programlisting>
|
||
|
|
||
|
The HTTP protocol is less efficient than the Git protocol, so it will be
|
||
|
slower to use.
|
||
|
</para>
|
||
|
</step>
|
||
|
|
||
|
<step>
|
||
|
<para>
|
||
|
Whenever you want to get the latest updates in the system, <command>cd</>
|
||
|
into the repository, and run:
|
||
|
|
||
|
<programlisting>
|
||
|
git fetch
|
||
|
</programlisting>
|
||
|
</para>
|
||
|
</step>
|
||
|
</procedure>
|
||
|
<para>
|
||
|
<productname>Git</> can do a lot more things than just fetch the source. For
|
||
|
more information, consult the man pages for the product, or the website at
|
||
|
<ulink url="http://git-scm.com"></>.
|
||
|
</para>
|
||
|
</sect1>
|
||
|
|
||
|
</appendix>
|