<html lang="en">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
- <title>Code Repository</title>
+ <title>Source Code Repository</title>
<link rel="stylesheet" type="text/css" href="mesa.css">
</head>
<body>
<div class="header">
- <h1>The Mesa 3D Graphics Library</h1>
+ The Mesa 3D Graphics Library
</div>
<iframe src="contents.html"></iframe>
<div class="content">
-<h1>Code Repository</h1>
+<h1>Source Code Repository</h1>
<p>
-Mesa uses <a href="http://git-scm.com">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">freedesktop.org</a>.
+<a href="https://www.freedesktop.org">freedesktop.org</a>.
</p>
<p>
<p>
You may also
-<a href="http://cgit.freedesktop.org/mesa/mesa/"
+<a href="https://gitlab.freedesktop.org/mesa/mesa"
>browse the main Mesa git repository</a> and the
-<a href="http://cgit.freedesktop.org/mesa/demos"
+<a href="https://gitlab.freedesktop.org/mesa/demos"
>Mesa demos and tests git repository</a>.
</p>
</p>
<ol>
-<li>Install the git software on your computer if needed.<br><br>
+<li>Install the git software on your computer if needed.
<li>Get an initial, local copy of the repository with:
- <pre>
- git clone git://anongit.freedesktop.org/git/mesa/mesa
- </pre>
+ <pre>git clone https://gitlab.freedesktop.org/mesa/mesa.git</pre>
<li>Later, you can update your tree from the master repository with:
- <pre>
- git pull origin
- </pre>
+ <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>
+ <pre>git clone https://gitlab.freedesktop.org/mesa/demos.git</pre>
</ol>
<h2 id="developer">Developer git Access</h2>
<p>
-If you wish to become a Mesa developer with git-write privilege, please
+If you wish to become a Mesa developer with gitlab merge privilege, please
follow this procedure:
</p>
<ol>
<li>Subscribe to the
-<a href="http://lists.freedesktop.org/mailman/listinfo/mesa-dev">mesa-dev</a>
+<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,
+<a href="submittingpatches.html" target="_parent">submitting patches</a>. Specifically,
<ul>
-<li>Use <code>git send-mail</code> to post your patches to mesa-dev.
+<li>Use <a href="https://gitlab.freedesktop.org/">gitlab</a> to create your merge requests.
<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="http://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.
+a dozen or so patches accepted, a maintainer may use their discretion to give
+you access to merge your own code.
</ol>
-<p>
-Once your account is established:
-</p>
+<h2>Pushing code to your gitlab account via HTTPS</h2>
-<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>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>
+<p>Useful for people behind strict proxies</p>
+You can use <a href="https://gitlab.freedesktop.org/profile/personal_access_tokens">personal access tokens</a>
+to push over HTTPS if ssh will does not suit your needs.
+In this case, create a token, and put it in the url as shown here:
+<pre>
+git remote set-url --push <em>origin</em> https://<em>USER</em>:<em>TOKEN</em>@gitlab.freedesktop.org/your~user~name/mesa.git
+</pre>
<h2>Windows Users</h2>
<p>
-If you're <a href="http://git.wiki.kernel.org/index.php/WindowsInstall">
+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
+git config --global core.autocrlf true
</pre>
<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, <tt>master</tt> contains the latest development (unstable)
+Generally, <code>master</code> 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.
+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.
+mesa-dev mailing list.
</p>
<h2>Developer Git Tips</h2>
and git complains that you have not specified a
branch, try:
<pre>
- git config branch.master.remote origin
- git config branch.master.merge master
+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>
<p>
If it has been awhile since you've done the initial clone, try
<pre>
- git pull
+git pull
</pre>
<p>
to get the latest files before you start working.
<p>
Make your changes and use
<pre>
- git add <files to commit>
- git commit
+git add <files to commit>
+git commit
</pre>
<p>
to get your changes ready to push back into the fd.o repository.
<p>
To avoid this,
<pre>
- git pull --rebase
- git push
+git pull --rebase
+git push
</pre>
<p>
If you are familiar with CVS or similar system, this is similar to doing a
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>
+</p>
+<p>
In any case, your repository now looks like you made your changes after
all the other changes.
</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
+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.
+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>