-<HTML>
-
-<TITLE>Code Repository</TITLE>
-
-<link rel="stylesheet" type="text/css" href="mesa.css"></head>
-
-<BODY>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+ <meta http-equiv="content-type" content="text/html; charset=utf-8">
+ <title>Code Repository</title>
+ <link rel="stylesheet" type="text/css" href="mesa.css">
+</head>
+<body>
+
+<div class="header">
+ <h1>The Mesa 3D Graphics Library</h1>
+</div>
+
+<iframe src="contents.html"></iframe>
+<div class="content">
<h1>Code Repository</h1>
<p>
-Mesa uses <a href="http://git.or.cz/"target="_parent">git</a>
+Mesa uses <a href="https://git-scm.com">git</a>
as its source code management system.
</p>
+<p>
The master git repository is hosted on
-<a href="http://www.freedesktop.org" target="_parent">freedesktop.org</a>.
+<a href="https://www.freedesktop.org">freedesktop.org</a>.
</p>
<p>
<p>
You may also
-<a href="http://gitweb.freedesktop.org/?p=mesa/mesa.git"
-target="_parent">browse the main Mesa git repository</a> and the
-<a href="http://cgit.freedesktop.org/mesa/demos"
-target="_parent">Mesa demos and tests git repository</a>.
+<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>
-<a name="anonymous">
-<H2>Anonymous git Access</H2>
+<h2 id="anonymous">Anonymous git Access</h2>
<p>
To get the Mesa sources anonymously (read-only):
</ol>
-<a name="developer">
-<H2>Developer git Access</H2>
+<h2 id="developer">Developer git Access</h2>
<p>
-Mesa developers need to first have an account on
-<a href="http://www.freedesktop.org" target="_parent">freedesktop.org</a>.
-To get an account, please ask Brian or the other Mesa developers for
-permission.
-Then, if there are no objections, follow this
-<a href="http://www.freedesktop.org/wiki/AccountRequests" target="_parent">
-procedure</a>.
+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>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>Wait for someone to review the code and give you a <code>Reviewed-by</code>
+statement.
+<li>You'll have to rely on another Mesa developer to push your initial patches
+after they've been reviewed.
+</ul>
+<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>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>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.
+</ol>
<p>
Once your account is established:
</p>
<ol>
-<li>Install the git software on your computer if needed.<br><br>
<li>Get an initial, local copy of the repository with:
<pre>
git clone git+ssh://username@git.freedesktop.org/git/mesa/mesa
</ol>
-<H2>Windows Users</H2>
+<h2>Windows Users</h2>
<p>
-If you're <a href="http://git.or.cz/gitwiki/WindowsInstall" target="_parent">
+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>
<br>
-<a name="developer">
-<H2>Development Branches</H2>
+<h2>Development Branches</h2>
<p>
At any given time, there may be several active branches in Mesa's
repository.
-Generally, the trunk contains the latest development (unstable)
+Generally, <tt>master</tt> contains the latest development (unstable)
code while a branch has the latest stable code.
</p>
mesa3d-dev mailing list.
</p>
-<H2>Developer Git Tips</H2>
+<h2>Developer Git Tips</h2>
<ol>
<li>Setting up to edit the master branch
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>Small changes to master
<p>
-If you are an experienced git user working on substancial modifications,
+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.
<pre>
git pull
</pre>
+<p>
to get the latest files before you start working.
</p>
<p>
git add <files to commit>
git commit
</pre>
+<p>
to get your changes ready to push back into the fd.o repository.
</p>
<p>
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>
+<br>
In any case, your repository now looks like you made your changes after
all the other changes.
</p>
git config --global branch.autosetuprebase=always
</pre>
<p>
-See <a href="http://www.eecs.harvard.edu/~cduan/technical/git/" target="_parent">Understanding Git Conceptually</a> for a fairly clear explanation about all of this.
+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>
</ol>
+</div>
</body>
</html>
-
-