summaryrefslogtreecommitdiff
path: root/docs/repository.rst
diff options
context:
space:
mode:
Diffstat (limited to 'docs/repository.rst')
-rw-r--r--docs/repository.rst379
1 files changed, 180 insertions, 199 deletions
diff --git a/docs/repository.rst b/docs/repository.rst
index ea05ba8dd1..8b0cea5d34 100644
--- a/docs/repository.rst
+++ b/docs/repository.rst
@@ -1,228 +1,209 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<html lang="en"><head>
- <meta content="text/html; charset=utf-8" http-equiv="content-type"/>
- <title>Code Repository</title>
- <link href="mesa.css" rel="stylesheet" type="text/css"/>
-</head>
-<body>
+Code Repository
+===============
+Mesa uses `git <https://git-scm.com>`__ as its source code management
+system.
+The master git repository is hosted on
+`freedesktop.org <https://www.freedesktop.org>`__.
+You may access the repository either as an `anonymous
+user <#anonymous>`__ (read-only) or as a `developer <#developer>`__
+(read/write).
+You may also `browse the main Mesa git
+repository <https://cgit.freedesktop.org/mesa/mesa/>`__ and the `Mesa
+demos and tests git
+repository <https://cgit.freedesktop.org/mesa/demos>`__.
+Anonymous git Access
+--------------------
-<h1>Code Repository</h1>
+To get the Mesa sources anonymously (read-only):
-<p>
-Mesa uses <a href="https://git-scm.com">git</a>
-as its source code management system.
-</p>
+#. Install the git software on your computer if needed.
+#. Get an initial, local copy of the repository with:
-<p>
-The master git repository is hosted on
-<a href="https://www.freedesktop.org">freedesktop.org</a>.
-</p>
+ ::
-<p>
-You may access the repository either as an
-<a href="#anonymous">anonymous user</a> (read-only) or as a
-<a href="#developer">developer</a>
-(read/write).
-</p>
+ git clone git://anongit.freedesktop.org/git/mesa/mesa
+
-<p>
-You may also
-<a href="https://cgit.freedesktop.org/mesa/mesa/">browse the main Mesa git repository</a> and the
-<a href="https://cgit.freedesktop.org/mesa/demos">Mesa demos and tests git repository</a>.
-</p>
+#. Later, you can update your tree from the master repository with:
+ ::
-<h2 id="anonymous">Anonymous git Access</h2>
+ git pull origin
+
-<p>
-To get the Mesa sources anonymously (read-only):
-</p>
+#. If you also want the Mesa demos/tests repository:
-<ol>
-<li>Install the git software on your computer if needed.<br/><br/>
-</li><li>Get an initial, local copy of the repository with:
- <pre> git clone git://anongit.freedesktop.org/git/mesa/mesa
- </pre>
-</li><li>Later, you can update your tree from the master repository with:
- <pre> git pull origin
- </pre>
-</li><li>If you also want the Mesa demos/tests repository:
- <pre> git clone git://anongit.freedesktop.org/git/mesa/demos
- </pre>
-</li></ol>
+ ::
+ git clone git://anongit.freedesktop.org/git/mesa/demos
+
-<h2 id="developer">Developer git Access</h2>
+Developer git Access
+--------------------
-<p>
If you wish to become a Mesa developer with git-write privilege, please
follow this procedure:
-</p>
-<ol>
-<li>Subscribe to the
-<a href="https://lists.freedesktop.org/mailman/listinfo/mesa-dev">mesa-dev</a>
-mailing list.
-</li><li>Start contributing to the project by
-<a href="submittingpatches.html" target="_parent">submitting patches</a> to
-the mesa-dev list. Specifically,
-<ul>
-<li>Use <code>git send-mail</code> to post your patches to mesa-dev.
-</li><li>Wait for someone to review the code and give you a <code>Reviewed-by</code>
-statement.
-</li><li>You'll have to rely on another Mesa developer to push your initial patches
-after they've been reviewed.
-</li></ul>
-</li><li>After you've demonstrated the ability to write good code and have had
-a dozen or so patches accepted you can apply for an account.
-</li><li>Occasionally, but rarely, someone may be given a git account sooner, but
-only if they're being supervised by another Mesa developer at the same
-organization and planning to work in a limited area of the code or on a
-separate branch.
-</li><li>To apply for an account, follow
-<a href="https://www.freedesktop.org/wiki/AccountRequests">these directions</a>.
-It's also appreciated if you briefly describe what you intend to do (work
-on a particular driver, add a new extension, etc.) in the bugzilla record.
-</li></ol>
-
-<p>
+
+#. Subscribe to the
+ `mesa-dev <https://lists.freedesktop.org/mailman/listinfo/mesa-dev>`__
+ mailing list.
+#. Start contributing to the project by `submitting
+ patches <submittingpatches.html>`__ to the mesa-dev list.
+ Specifically,
+
+ - Use ``git send-mail`` to post your patches to mesa-dev.
+ - Wait for someone to review the code and give you a ``Reviewed-by``
+ statement.
+ - You'll have to rely on another Mesa developer to push your initial
+ patches after they've been reviewed.
+
+#. After you've demonstrated the ability to write good code and have had
+ a dozen or so patches accepted you can apply for an account.
+#. Occasionally, but rarely, someone may be given a git account sooner,
+ but only if they're being supervised by another Mesa developer at the
+ same organization and planning to work in a limited area of the code
+ or on a separate branch.
+#. To apply for an account, follow `these
+ directions <https://www.freedesktop.org/wiki/AccountRequests>`__.
+ It's also appreciated if you briefly describe what you intend to do
+ (work on a particular driver, add a new extension, etc.) in the
+ bugzilla record.
+
Once your account is established:
-</p>
-
-<ol>
-<li>Get an initial, local copy of the repository with:
- <pre> git clone git+ssh://username@git.freedesktop.org/git/mesa/mesa
- </pre>
- Replace <em>username</em> with your actual login name.<br/><br/>
-</li><li>Later, you can update your tree from the master repository with:
- <pre> git pull origin
- </pre>
-</li><li>If you also want the Mesa demos/tests repository:
- <pre> git clone git+ssh://username@git.freedesktop.org/git/mesa/demos
- </pre>
-</li></ol>
-
-
-<h2>Windows Users</h2>
-
-<p>
-If you're <a href="https://git.wiki.kernel.org/index.php/WindowsInstall">
-using git on Windows</a> you'll want to enable automatic CR/LF conversion in
-your local copy of the repository:
-</p>
-<pre> git config --global core.autocrlf true
-</pre>
-
-<p>
-This will cause git to convert all text files to CR+LF on checkout,
-and to LF on commit.
-</p>
-<p>
+
+#. Get an initial, local copy of the repository with:
+
+ ::
+
+ git clone git+ssh://username@git.freedesktop.org/git/mesa/mesa
+
+
+ | Replace *username* with your actual login name.
+
+#. Later, you can update your tree from the master repository with:
+
+ ::
+
+ git pull origin
+
+
+#. If you also want the Mesa demos/tests repository:
+
+ ::
+
+ git clone git+ssh://username@git.freedesktop.org/git/mesa/demos
+
+
+Windows Users
+-------------
+
+If you're `using git on
+Windows <https://git.wiki.kernel.org/index.php/WindowsInstall>`__ you'll
+want to enable automatic CR/LF conversion in your local copy of the
+repository:
+
+::
+
+ git config --global core.autocrlf true
+
+This will cause git to convert all text files to CR+LF on checkout, and
+to LF on commit.
+
Unix users don't need to set this option.
-</p>
-<br/>
+|
-<h2>Development Branches</h2>
+Development Branches
+--------------------
-<p>
At any given time, there may be several active branches in Mesa's
-repository.
-Generally, <tt>master</tt> contains the latest development (unstable)
-code while a branch has the latest stable code.
-</p>
+repository. Generally, ``master`` contains the latest development
+(unstable) code while a branch has the latest stable code.
-<p>
-The command <code>git-branch</code> will list all available branches.
-</p>
+The command ``git-branch`` will list all available branches.
-<p>
Questions about branch status/activity should be posted to the
mesa3d-dev mailing list.
-</p>
-
-<h2>Developer Git Tips</h2>
-
-<ol>
-<li>Setting up to edit the master branch
-<p>
-If you try to do a pull by just saying<code> git pull </code>
-and git complains that you have not specified a
-branch, try:
-</p><pre> git config branch.master.remote origin
- git config branch.master.merge master
-</pre>
-<p>
-Otherwise, you have to say<code> git pull origin master </code>
-each time you do a pull.
-</p>
-</li><li>Small changes to master
-<p>
-If you are an experienced git user working on substantial modifications,
-you are probably
-working on a separate branch and would rebase your branch prior to
-merging with master.
-But for small changes to the master branch itself,
-you also need to use the rebase feature in order to avoid an
-unnecessary and distracting branch in master.
-</p>
-<p>
-If it has been awhile since you've done the initial clone, try
-</p><pre> git pull
-</pre>
-<p>
-to get the latest files before you start working.
-</p>
-<p>
-Make your changes and use
-</p><pre> git add &lt;files to commit&gt;
- git commit
-</pre>
-<p>
-to get your changes ready to push back into the fd.o repository.
-</p>
-<p>
-It is possible (and likely) that someone has changed master since
-you did your last pull. Even if your changes do not conflict with
-their changes, git will make a fast-forward
-merge branch, branching from the point in time
-where you did your last pull and merging it to a point after the other changes.
-</p>
-<p>
-To avoid this,
-</p><pre> git pull --rebase
- git push
-</pre>
-<p>
-If you are familiar with CVS or similar system, this is similar to doing a
-<code> cvs update </code> in order to update your source tree to
-the current repository state, instead of the time you did the last update.
-(CVS doesn't work like git in this respect, but this is easiest way
-to explain it.)
-<br/>
-In any case, your repository now looks like you made your changes after
-all the other changes.
-</p>
-<p>
-If the rebase resulted in conflicts or changes that could affect
-the proper operation of your changes, you'll need to investigate
-those before doing the push.
-</p>
-<p>
-If you want the rebase action to be the default action, then
-</p><pre> git config branch.master.rebase true
- git config --global branch.autosetuprebase=always
-</pre>
-<p>
-See <a href="https://www.eecs.harvard.edu/~cduan/technical/git/">Understanding Git Conceptually</a> for a fairly clear explanation about all of this.
-</p>
-</li></ol>
-
-
-
-
-</body></html> \ No newline at end of file
+
+Developer Git Tips
+------------------
+
+#. Setting up to edit the master branch
+
+ If you try to do a pull by just saying\ `` git pull `` and git
+ complains that you have not specified a branch, try:
+
+ ::
+
+ git config branch.master.remote origin
+ git config branch.master.merge master
+
+ Otherwise, you have to say\ `` git pull origin master `` each time
+ you do a pull.
+
+#. Small changes to master
+
+ If you are an experienced git user working on substantial
+ modifications, you are probably working on a separate branch and
+ would rebase your branch prior to merging with master. But for small
+ changes to the master branch itself, you also need to use the rebase
+ feature in order to avoid an unnecessary and distracting branch in
+ master.
+
+ If it has been awhile since you've done the initial clone, try
+
+ ::
+
+ git pull
+
+ to get the latest files before you start working.
+
+ Make your changes and use
+
+ ::
+
+ git add <files to commit>
+ git commit
+
+ to get your changes ready to push back into the fd.o repository.
+
+ It is possible (and likely) that someone has changed master since you
+ did your last pull. Even if your changes do not conflict with their
+ changes, git will make a fast-forward merge branch, branching from
+ the point in time where you did your last pull and merging it to a
+ point after the other changes.
+
+ To avoid this,
+
+ ::
+
+ git pull --rebase
+ git push
+
+ | If you are familiar with CVS or similar system, this is similar to
+ doing a `` cvs update `` in order to update your source tree to the
+ current repository state, instead of the time you did the last
+ update. (CVS doesn't work like git in this respect, but this is
+ easiest way to explain it.)
+ | In any case, your repository now looks like you made your changes
+ after all the other changes.
+
+ If the rebase resulted in conflicts or changes that could affect the
+ proper operation of your changes, you'll need to investigate those
+ before doing the push.
+
+ If you want the rebase action to be the default action, then
+
+ ::
+
+ git config branch.master.rebase true
+ git config --global branch.autosetuprebase=always
+
+ See `Understanding Git
+ Conceptually <https://www.eecs.harvard.edu/~cduan/technical/git/>`__
+ for a fairly clear explanation about all of this.