aboutsummaryrefslogtreecommitdiff
path: root/doc/src/sgml/sourcerepo.sgml
diff options
context:
space:
mode:
Diffstat (limited to 'doc/src/sgml/sourcerepo.sgml')
-rw-r--r--doc/src/sgml/sourcerepo.sgml93
1 files changed, 93 insertions, 0 deletions
diff --git a/doc/src/sgml/sourcerepo.sgml b/doc/src/sgml/sourcerepo.sgml
new file mode 100644
index 00000000000..9c815a82915
--- /dev/null
+++ b/doc/src/sgml/sourcerepo.sgml
@@ -0,0 +1,93 @@
+<!-- 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>