X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=docs%2Frepository.html;h=ad7f90b2604e4801fc4fdf31de09c9dddbdca06b;hb=d32e1257c0471cb4f1732d9777b39e77d8f8172e;hp=ed385288eab51da475e4af44b11a818a6b3ea2fa;hpb=8abc860bd46a6cd584f9a64cb4613be76f82db06;p=mesa.git diff --git a/docs/repository.html b/docs/repository.html index ed385288eab..ad7f90b2604 100644 --- a/docs/repository.html +++ b/docs/repository.html @@ -1,23 +1,29 @@ - + + + + + Source Code Repository + + + -Cocd Repository +
+ The Mesa 3D Graphics Library +
- + +
- - -

Code Repository

+

Source Code Repository

-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.

+

The master git repository is hosted on -freedesktop.org. +freedesktop.org.

@@ -29,66 +35,69 @@ You may access the repository either as an

You may also -browse the git repository. +browse the main Mesa git repository and the +Mesa demos and tests git repository.

- -

Anonymous git Access

+

Anonymous git Access

To get the Mesa sources anonymously (read-only):

    -
  1. Install the git software on your computer if needed.

    +
  2. Install the git software on your computer if needed.
  3. Get an initial, local copy of the repository with: -
    -    git clone git://anongit.freedesktop.org/git/mesa/mesa
    -    
    +
    git clone https://gitlab.freedesktop.org/mesa/mesa.git
  4. Later, you can update your tree from the master repository with: -
    -    git pull origin
    -    
    +
    git pull origin
    +
  5. If you also want the Mesa demos/tests repository: +
    git clone https://gitlab.freedesktop.org/mesa/demos.git
-
-

Developer git Access

+

Developer git Access

-Mesa developers need to first have an account on -freedesktop.org. -To get an account, please ask Brian or the other Mesa developers for -permission. -Then, if there are no objections, follow this - -procedure. +If you wish to become a Mesa developer with gitlab merge privilege, please +follow this procedure:

- -

-Once your account is established: -

-
    -
  1. Install the git software on your computer if needed.

    -
  2. Get an initial, local copy of the repository with: -
    -    git clone git+ssh://username@git.freedesktop.org/git/mesa/mesa
    -    
    - Replace username with your actual login name.

    -
  3. Later, you can update your tree from the master repository with: -
    -    git pull origin
    -    
    +
  4. Subscribe to the +mesa-dev +mailing list. +
  5. Start contributing to the project by +submitting patches. Specifically, +
      +
    • Use gitlab to create your merge requests. +
    • Wait for someone to review the code and give you a Reviewed-by +statement. +
    • You'll have to rely on another Mesa developer to push your initial patches +after they've been reviewed. +
    +
  6. After you've demonstrated the ability to write good code and have had +a dozen or so patches accepted, a maintainer may use their discretion to give +you access to merge your own code.
+

Pushing code to your gitlab account via HTTPS

+ +

Useful for people behind strict proxies

+ +You can use personal access tokens +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: +
+git remote set-url --push origin https://USER:TOKEN@gitlab.freedesktop.org/your~user~name/mesa.git
+
-

Windows Users

+

Windows Users

-If you're +If you're using git on Windows you'll want to enable automatic CR/LF conversion in your local copy of the repository:

@@ -103,30 +112,109 @@ and to LF on commit.

Unix users don't need to set this option.

-
- -

Development Branches

+

Development Branches

At any given time, there may be several active branches in Mesa's repository. -Generally, the trunk contains the latest development (unstable) +Generally, master contains the latest development (unstable) code while a branch has the latest stable code.

-The command git-branch will list all available branches. +The command git branch will list all available branches.

Questions about branch status/activity should be posted to the -mesa3d-dev mailing list. +mesa-dev mailing list.

+

Developer Git Tips

+ +
    +
  1. Setting up to edit the master branch +

    +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. +

    +
  2. Small changes to master +

    +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. +

    +

    +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. +

    +
+
- -