<!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-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">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>

<p>
You may also 
<a href="http://cgit.freedesktop.org/mesa/mesa/"
>browse the main Mesa git repository</a> and the
<a href="http://cgit.freedesktop.org/mesa/demos"
>Mesa demos and tests git repository</a>.
</p>


<h2 id="anonymous">Anonymous git Access</h2>

<p>
To get the Mesa sources anonymously (read-only):
</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://anongit.freedesktop.org/git/mesa/mesa
    </pre>
<li>Later, you can update your tree from the master repository with:
    <pre>
    git pull origin
    </pre>
<li>If you also want the Mesa demos/tests repository:
    <pre>
    git clone git://anongit.freedesktop.org/git/mesa/demos
    </pre>
</ol>


<h2 id="developer">Developer git Access</h2>

<p>
Mesa developers need to first have an account on
<a href="http://www.freedesktop.org">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">
procedure</a>.
</p>

<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
    </pre>
    Replace <em>username</em> with your actual login name.<br><br>
<li>Later, you can update your tree from the master repository with:
    <pre>
    git pull origin
    </pre>
<li>If you also want the Mesa demos/tests repository:
    <pre>
    git clone git+ssh://username@git.freedesktop.org/git/mesa/demos
    </pre>
</ol>


<h2>Windows Users</h2>

<p>
If you're <a href="http://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>
Unix users don't need to set this option.
</p>
<br>


<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)
code while a branch has the latest stable code.
</p>

<p>
The command <code>git-branch</code> will list all available branches.
</p>

<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:
<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>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
<pre>
    git pull
</pre>
<p>
to get the latest files before you start working.
</p>
<p>
Make your changes and use
<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, 
<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
<pre>
    git config branch.master.rebase true
    git config --global branch.autosetuprebase=always
</pre>
<p>
See <a href="http://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>
