Andreas Boll | ecd5c7c | 2012-06-12 09:05:03 +0200 | [diff] [blame] | 1 | <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> |
| 2 | <html lang="en"> |
| 3 | <head> |
| 4 | <meta http-equiv="content-type" content="text/html; charset=utf-8"> |
| 5 | <title>Code Repository</title> |
| 6 | <link rel="stylesheet" type="text/css" href="mesa.css"> |
| 7 | </head> |
| 8 | <body> |
Brian | 464e363 | 2006-12-05 16:14:14 -0700 | [diff] [blame] | 9 | |
Andreas Boll | b5da52a | 2012-09-18 18:57:02 +0200 | [diff] [blame] | 10 | <div class="header"> |
| 11 | <h1>The Mesa 3D Graphics Library</h1> |
| 12 | </div> |
| 13 | |
| 14 | <iframe src="contents.html"></iframe> |
| 15 | <div class="content"> |
| 16 | |
Brian | 464e363 | 2006-12-05 16:14:14 -0700 | [diff] [blame] | 17 | <h1>Code Repository</h1> |
| 18 | |
| 19 | <p> |
Andreas Boll | a73c59b | 2012-09-18 19:31:28 +0200 | [diff] [blame] | 20 | Mesa uses <a href="http://git-scm.com">git</a> |
Brian | 464e363 | 2006-12-05 16:14:14 -0700 | [diff] [blame] | 21 | as its source code management system. |
Brian | 464e363 | 2006-12-05 16:14:14 -0700 | [diff] [blame] | 22 | </p> |
| 23 | |
Andreas Boll | df2be22 | 2012-06-12 09:05:22 +0200 | [diff] [blame] | 24 | <p> |
Brian | 464e363 | 2006-12-05 16:14:14 -0700 | [diff] [blame] | 25 | The master git repository is hosted on |
Andreas Boll | a73c59b | 2012-09-18 19:31:28 +0200 | [diff] [blame] | 26 | <a href="http://www.freedesktop.org">freedesktop.org</a>. |
Brian | 464e363 | 2006-12-05 16:14:14 -0700 | [diff] [blame] | 27 | </p> |
| 28 | |
| 29 | <p> |
| 30 | You may access the repository either as an |
| 31 | <a href="#anonymous">anonymous user</a> (read-only) or as a |
| 32 | <a href="#developer">developer</a> |
| 33 | (read/write). |
| 34 | </p> |
| 35 | |
| 36 | <p> |
| 37 | You may also |
Brian Paul | ca1b2da | 2012-02-16 13:35:02 -0700 | [diff] [blame] | 38 | <a href="http://cgit.freedesktop.org/mesa/mesa/" |
Andreas Boll | a73c59b | 2012-09-18 19:31:28 +0200 | [diff] [blame] | 39 | >browse the main Mesa git repository</a> and the |
Brian Paul | 7ba1a87 | 2010-06-04 17:47:06 -0600 | [diff] [blame] | 40 | <a href="http://cgit.freedesktop.org/mesa/demos" |
Andreas Boll | a73c59b | 2012-09-18 19:31:28 +0200 | [diff] [blame] | 41 | >Mesa demos and tests git repository</a>. |
Brian | 464e363 | 2006-12-05 16:14:14 -0700 | [diff] [blame] | 42 | </p> |
| 43 | |
| 44 | |
Andreas Boll | cc41888 | 2012-06-12 09:05:33 +0200 | [diff] [blame] | 45 | <h2 id="anonymous">Anonymous git Access</h2> |
Brian | 464e363 | 2006-12-05 16:14:14 -0700 | [diff] [blame] | 46 | |
| 47 | <p> |
| 48 | To get the Mesa sources anonymously (read-only): |
| 49 | </p> |
| 50 | |
| 51 | <ol> |
| 52 | <li>Install the git software on your computer if needed.<br><br> |
| 53 | <li>Get an initial, local copy of the repository with: |
| 54 | <pre> |
| 55 | git clone git://anongit.freedesktop.org/git/mesa/mesa |
| 56 | </pre> |
| 57 | <li>Later, you can update your tree from the master repository with: |
| 58 | <pre> |
| 59 | git pull origin |
| 60 | </pre> |
Brian Paul | 7ba1a87 | 2010-06-04 17:47:06 -0600 | [diff] [blame] | 61 | <li>If you also want the Mesa demos/tests repository: |
| 62 | <pre> |
| 63 | git clone git://anongit.freedesktop.org/git/mesa/demos |
| 64 | </pre> |
Brian | 464e363 | 2006-12-05 16:14:14 -0700 | [diff] [blame] | 65 | </ol> |
| 66 | |
| 67 | |
Andreas Boll | cc41888 | 2012-06-12 09:05:33 +0200 | [diff] [blame] | 68 | <h2 id="developer">Developer git Access</h2> |
Brian | 464e363 | 2006-12-05 16:14:14 -0700 | [diff] [blame] | 69 | |
| 70 | <p> |
Brian Paul | e915903 | 2016-04-25 10:13:32 -0600 | [diff] [blame] | 71 | If you wish to become a Mesa developer with git-write privilege, please |
| 72 | follow this procedure: |
Brian | 464e363 | 2006-12-05 16:14:14 -0700 | [diff] [blame] | 73 | </p> |
Brian Paul | e915903 | 2016-04-25 10:13:32 -0600 | [diff] [blame] | 74 | <ol> |
| 75 | <li>Subscribe to the |
| 76 | <a href="http://lists.freedesktop.org/mailman/listinfo/mesa-dev">mesa-dev</a> |
| 77 | mailing list. |
Emil Velikov | 49ac732 | 2016-06-29 13:40:03 +0100 | [diff] [blame] | 78 | <li>Start contributing to the project by |
| 79 | <a href="submittingpatches.html" target="_parent">submitting patches</a> to |
Brian Paul | e915903 | 2016-04-25 10:13:32 -0600 | [diff] [blame] | 80 | the mesa-dev list. Specifically, |
| 81 | <ul> |
| 82 | <li>Use <code>git send-mail</code> to post your patches to mesa-dev. |
| 83 | <li>Wait for someone to review the code and give you a <code>Reviewed-by</code> |
| 84 | statement. |
| 85 | <li>You'll have to rely on another Mesa developer to push your initial patches |
| 86 | after they've been reviewed. |
| 87 | </ul> |
| 88 | <li>After you've demonstrated the ability to write good code and have had |
| 89 | a dozen or so patches accepted you can apply for an account. |
| 90 | <li>Occasionally, but rarely, someone may be given a git account sooner, but |
| 91 | only if they're being supervised by another Mesa developer at the same |
| 92 | organization and planning to work in a limited area of the code or on a |
| 93 | separate branch. |
| 94 | <li>To apply for an account, follow |
| 95 | <a href="http://www.freedesktop.org/wiki/AccountRequests">these directions</a>. |
| 96 | It's also appreciated if you briefly describe what you intend to do (work |
| 97 | on a particular driver, add a new extension, etc.) in the bugzilla record. |
| 98 | </ol> |
Brian | 464e363 | 2006-12-05 16:14:14 -0700 | [diff] [blame] | 99 | |
| 100 | <p> |
| 101 | Once your account is established: |
| 102 | </p> |
| 103 | |
| 104 | <ol> |
Brian | 464e363 | 2006-12-05 16:14:14 -0700 | [diff] [blame] | 105 | <li>Get an initial, local copy of the repository with: |
| 106 | <pre> |
| 107 | git clone git+ssh://username@git.freedesktop.org/git/mesa/mesa |
| 108 | </pre> |
| 109 | Replace <em>username</em> with your actual login name.<br><br> |
| 110 | <li>Later, you can update your tree from the master repository with: |
| 111 | <pre> |
| 112 | git pull origin |
| 113 | </pre> |
Brian Paul | 7ba1a87 | 2010-06-04 17:47:06 -0600 | [diff] [blame] | 114 | <li>If you also want the Mesa demos/tests repository: |
| 115 | <pre> |
| 116 | git clone git+ssh://username@git.freedesktop.org/git/mesa/demos |
| 117 | </pre> |
Brian | 464e363 | 2006-12-05 16:14:14 -0700 | [diff] [blame] | 118 | </ol> |
| 119 | |
| 120 | |
Andreas Boll | 210a27d | 2012-06-12 09:05:36 +0200 | [diff] [blame] | 121 | <h2>Windows Users</h2> |
Brian | ddbfa8c | 2008-02-28 08:03:04 -0700 | [diff] [blame] | 122 | |
| 123 | <p> |
Andreas Boll | a73c59b | 2012-09-18 19:31:28 +0200 | [diff] [blame] | 124 | If you're <a href="http://git.wiki.kernel.org/index.php/WindowsInstall"> |
Brian | ddbfa8c | 2008-02-28 08:03:04 -0700 | [diff] [blame] | 125 | using git on Windows</a> you'll want to enable automatic CR/LF conversion in |
| 126 | your local copy of the repository: |
| 127 | </p> |
| 128 | <pre> |
| 129 | git config --global core.autocrlf true |
| 130 | </pre> |
| 131 | |
| 132 | <p> |
| 133 | This will cause git to convert all text files to CR+LF on checkout, |
| 134 | and to LF on commit. |
| 135 | </p> |
| 136 | <p> |
| 137 | Unix users don't need to set this option. |
| 138 | </p> |
| 139 | <br> |
| 140 | |
| 141 | |
Andreas Boll | cc41888 | 2012-06-12 09:05:33 +0200 | [diff] [blame] | 142 | <h2>Development Branches</h2> |
Brian | 464e363 | 2006-12-05 16:14:14 -0700 | [diff] [blame] | 143 | |
| 144 | <p> |
| 145 | At any given time, there may be several active branches in Mesa's |
| 146 | repository. |
| 147 | Generally, the trunk contains the latest development (unstable) |
| 148 | code while a branch has the latest stable code. |
| 149 | </p> |
| 150 | |
| 151 | <p> |
Brian | 18e9ca5 | 2007-02-20 09:24:06 -0700 | [diff] [blame] | 152 | The command <code>git-branch</code> will list all available branches. |
| 153 | </p> |
| 154 | |
| 155 | <p> |
| 156 | Questions about branch status/activity should be posted to the |
| 157 | mesa3d-dev mailing list. |
Brian | 464e363 | 2006-12-05 16:14:14 -0700 | [diff] [blame] | 158 | </p> |
| 159 | |
Andreas Boll | 210a27d | 2012-06-12 09:05:36 +0200 | [diff] [blame] | 160 | <h2>Developer Git Tips</h2> |
Karl Schultz | 207ad94 | 2010-02-11 10:54:18 -0700 | [diff] [blame] | 161 | |
| 162 | <ol> |
| 163 | <li>Setting up to edit the master branch |
| 164 | <p> |
| 165 | If you try to do a pull by just saying<code> git pull </code> |
| 166 | and git complains that you have not specified a |
| 167 | branch, try: |
| 168 | <pre> |
| 169 | git config branch.master.remote origin |
| 170 | git config branch.master.merge master |
| 171 | </pre> |
Andreas Boll | df2be22 | 2012-06-12 09:05:22 +0200 | [diff] [blame] | 172 | <p> |
Karl Schultz | 207ad94 | 2010-02-11 10:54:18 -0700 | [diff] [blame] | 173 | Otherwise, you have to say<code> git pull origin master </code> |
| 174 | each time you do a pull. |
| 175 | </p> |
| 176 | <li>Small changes to master |
| 177 | <p> |
Nathan Kidd | 0691b37 | 2014-01-03 16:44:00 -0700 | [diff] [blame] | 178 | If you are an experienced git user working on substantial modifications, |
Karl Schultz | 207ad94 | 2010-02-11 10:54:18 -0700 | [diff] [blame] | 179 | you are probably |
| 180 | working on a separate branch and would rebase your branch prior to |
| 181 | merging with master. |
| 182 | But for small changes to the master branch itself, |
| 183 | you also need to use the rebase feature in order to avoid an |
| 184 | unnecessary and distracting branch in master. |
| 185 | </p> |
| 186 | <p> |
| 187 | If it has been awhile since you've done the initial clone, try |
| 188 | <pre> |
| 189 | git pull |
| 190 | </pre> |
Andreas Boll | df2be22 | 2012-06-12 09:05:22 +0200 | [diff] [blame] | 191 | <p> |
Karl Schultz | 207ad94 | 2010-02-11 10:54:18 -0700 | [diff] [blame] | 192 | to get the latest files before you start working. |
| 193 | </p> |
| 194 | <p> |
| 195 | Make your changes and use |
| 196 | <pre> |
| 197 | git add <files to commit> |
| 198 | git commit |
| 199 | </pre> |
Andreas Boll | df2be22 | 2012-06-12 09:05:22 +0200 | [diff] [blame] | 200 | <p> |
Karl Schultz | 207ad94 | 2010-02-11 10:54:18 -0700 | [diff] [blame] | 201 | to get your changes ready to push back into the fd.o repository. |
| 202 | </p> |
| 203 | <p> |
| 204 | It is possible (and likely) that someone has changed master since |
| 205 | you did your last pull. Even if your changes do not conflict with |
| 206 | their changes, git will make a fast-forward |
| 207 | merge branch, branching from the point in time |
| 208 | where you did your last pull and merging it to a point after the other changes. |
| 209 | </p> |
| 210 | <p> |
| 211 | To avoid this, |
| 212 | <pre> |
| 213 | git pull --rebase |
| 214 | git push |
| 215 | </pre> |
Andreas Boll | df2be22 | 2012-06-12 09:05:22 +0200 | [diff] [blame] | 216 | <p> |
Karl Schultz | 207ad94 | 2010-02-11 10:54:18 -0700 | [diff] [blame] | 217 | If you are familiar with CVS or similar system, this is similar to doing a |
| 218 | <code> cvs update </code> in order to update your source tree to |
| 219 | the current repository state, instead of the time you did the last update. |
| 220 | (CVS doesn't work like git in this respect, but this is easiest way |
| 221 | to explain it.) |
Andreas Boll | df2be22 | 2012-06-12 09:05:22 +0200 | [diff] [blame] | 222 | <br> |
Karl Schultz | 207ad94 | 2010-02-11 10:54:18 -0700 | [diff] [blame] | 223 | In any case, your repository now looks like you made your changes after |
| 224 | all the other changes. |
| 225 | </p> |
| 226 | <p> |
| 227 | If the rebase resulted in conflicts or changes that could affect |
| 228 | the proper operation of your changes, you'll need to investigate |
| 229 | those before doing the push. |
| 230 | </p> |
| 231 | <p> |
| 232 | If you want the rebase action to be the default action, then |
| 233 | <pre> |
| 234 | git config branch.master.rebase true |
| 235 | git config --global branch.autosetuprebase=always |
| 236 | </pre> |
| 237 | <p> |
Andreas Boll | a73c59b | 2012-09-18 19:31:28 +0200 | [diff] [blame] | 238 | See <a href="http://www.eecs.harvard.edu/~cduan/technical/git/">Understanding Git Conceptually</a> for a fairly clear explanation about all of this. |
Karl Schultz | 207ad94 | 2010-02-11 10:54:18 -0700 | [diff] [blame] | 239 | </p> |
| 240 | </ol> |
Brian | 464e363 | 2006-12-05 16:14:14 -0700 | [diff] [blame] | 241 | |
Andreas Boll | b5da52a | 2012-09-18 18:57:02 +0200 | [diff] [blame] | 242 | </div> |
Brian | 464e363 | 2006-12-05 16:14:14 -0700 | [diff] [blame] | 243 | </body> |
| 244 | </html> |