From 29b86f9852b2b7ecc31cdfee56679537e40bc6e2 Mon Sep 17 00:00:00 2001
From: marha
-As of December 5, 2006, Mesa is using
-git
+Mesa uses git
as its source code management system.
-CVS was used previously.
-The old CVS repository should no longer be used.
Code Repository
+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.
+
++If you are an experienced git user working on substancial 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 for a fairly clear explanation about all of this. +
+