3.6.2 note
[ikiwiki.git] / docs / developer / TypicalGitUsage.mdwn
index 2503c2c..3e48d4a 100644 (file)
-# Mastering the DragonFly git repository \r
-[[!toc  levels=3]]
-## Clone the repository \r
-\r
-    First you go in your work directory and clone the DragonFly repository. While ***crater*** is the official repo, you are urged to use one of our (generally much faster) mirrors instead. \r
-    > git clone -o chlamydia git://chlamydia.fs.ei.tum.de/dragonfly.git\r
-\r
-\r
-If you are a developer, you should create a ***remote*** entry for pushing to ***crater***:\r
-    \r
-    > git remote add crater ssh://crater.dragonflybsd.org/repository/git/dragonfly.git\r
-\r
-\r
-Clone creates remote-tracking branches for all branches in the parent repo and creates a local  **master**  branch from the remote  **master**  branch.\r
-\r
-    \r
-    > git branch -a\r
+[[!meta title="Mastering the DragonFly git repository"]]
+
+[[!toc  levels=2]]
+
+## Clone the repository 
+
+Look at the [[download]] page on how to clone the DragonFly repository. ***Note***: Please use a git mirror to reduce the bandwidth on the main servers.
+
+## Prepare patches 
+
+If you (as a non-developer) made some changes to the DragonFly source and want to get them included in the main repository, send your patches to `submit@lists.dragonflybsd.org`.
+In order to be able to do that, you need to have yourself and the email address you are using registered with the <http://bugs.dragonflybsd.org/> bug/issue tracker; otherwise, your contribution will get silently dropped.
+
+Git assists you in creating patches which are easy to handle for the developers.
+### Example 
+
+ **Note:**  The change in this example is completely useless, it only serves demonstration purposes!
+
+
+
+At first edit the files you want to change:
+
+    > vim README
+
+Then review your changes with `git diff`:
+
     
-* master\r
-      chlamydia/DragonFly_RELEASE_1_10\r
-      chlamydia/DragonFly_RELEASE_1_12\r
-      chlamydia/DragonFly_RELEASE_1_2\r
-      chlamydia/DragonFly_RELEASE_1_4\r
-      chlamydia/DragonFly_RELEASE_1_6\r
-      chlamydia/DragonFly_RELEASE_1_8\r
-      chlamydia/DragonFly_RELEASE_2_0\r
-      chlamydia/HEAD\r
-      chlamydia/master\r
-      chlamydia/repo/hooks\r
-      chlamydia/vendor/ATHEROS\r
-      [...]\r
-      chlamydia/vendor/ZLIB\r
-\r
-\r
-## Prepare patches \r
-\r
-If you (as a non-developer) made some changes to the DragonFly source and want to get them included in the main repository, send your patches to submit@lists.dragonflybsd.org. git assists you in creating patches which are easy to handle for the developers.\r
-\r
-### Example \r
- **Note:**  The change in this example is completely useless, it only serves demonstration purposes!\r
-\r
-At first edit the files you want to change:\r
-    \r
-    > vim README\r
-\r
-Then review your changes with `git diff`:\r
-    \r
-    > git diff\r
-    diff --git a/README b/README\r
-    index 495a262..6a95d1f 100644\r
-    --- a/README\r
-    +++ b/README\r
-    @@ -59,7 +59,7 @@ lib           System libraries.\r
-     \r
-     libexec                System daemons.\r
-     \r
-    -nrelease       Framework for building the ***live*** CD image.\r
-    +nrelease       Framework for building the ***live CD*** image.\r
-     \r
-     sbin           System commands.\r
-     \r
-\r
-If you are satisfied with your changes, commit them.   **Note:**  The first line of your commit message should describe your change in a small sentence.  Add more details after one newline.\r
-    \r
-    > git commit -a\r
-    ".git/COMMIT_EDITMSG" 10L, 342C written                                                                              \r
-    Created commit cbb871b: Change parentheses\r
-     1 files changed, 1 insertions(+), 1 deletions(-)\r
-\r
-Now you can use `git format-patch` to generate a patch file.  This file is ready for submission to submit@. `git format-patch` will generate one file for every commit you did.\r
-    \r
-    > git format-patch origin\r
-    0001-Change-parentheses.patch\r
-    > cat 0001-Change-parentheses.patch\r
-    From cbb871b4588c695f000bc701b4f3c16a0a518991 Mon Sep 17 00:00:00 2001\r
-    From: Matthias Schmidt <matthiasdragonflybsd.org>\r
-    Date: Tue, 2 Dec 2008 09:54:47 +0100\r
-    Subject: [PATCH] Change parentheses\r
-    \r
-    ---\r
-     README |    2 +-\r
-     1 files changed, 1 insertions(+), 1 deletions(-)\r
-    \r
-    diff --git a/README b/README\r
-    index 495a262..6a95d1f 100644\r
-    --- a/README\r
-    +++ b/README\r
-    @@ -59,7 +59,7 @@ lib           System libraries.\r
-     \r
-     libexec                System daemons.\r
-     \r
-    -nrelease       Framework for building the ***live*** CD image.\r
-    +nrelease       Framework for building the ***live CD*** image.\r
-     \r
-     sbin           System commands.\r
-     \r
-    -- \r
-    1.6.0.2\r
-    \r
-\r
-\r
-Attach the generated files to a mail and submit it.  Write some lines about your intention and why you changed what ...\r
-\r
-## Working with branches \r
-It is  **not**  recommended to work directly in your  **master**  branch, except maybe for one-liners. Branches in git are very cheap, so just keep your  **master**  branch pure, and always work on a different local branch.\r
-\r
-Say you want to work on a simple change. Just create a temporary branch, make the change and commit it.\r
-\r
-    \r
-    > git checkout -b work      # you're now in the work branch\r
-    > vim what/ever.c\r
-    > git commit -a\r
-\r
-\r
-Now, you can switch back to  **master** , merge in the changes in your  **work**  branch and push away:\r
-\r
-    \r
-    > git checkout master      # you're now in the master branch\r
-    > git merge work           # now master has your changes\r
-\r
-\r
-Afterwards, you may (or not, if you want to do further development) want to delete the  **work**  branch by\r
-\r
-    \r
-    > git branch -d work\r
-\r
-\r
-For more complex changes, you probably want to create a longer-lived branch. For example\r
-\r
-    \r
-    > git checkout -b myfeature\r
-\r
-\r
-You can work in the  **myfeature**  branch until your feature is ready. You can commit there as often as you like. If your work goes on for a significant amount of time, you will want to merge with the upstream  **master**  from time to time. It is recommended that you use git rebase, so that the merge points won't show up in the repo history on crater (they don't really add much information). For this, you'd do:\r
-\r
-    \r
-    > git checkout master\r
-    > git pull\r
-    > git checkout myfeature\r
-    > git rebase master\r
-\r
-\r
-## Push your work upstream \r
-When you judge that your code is ready for inclusion in mainline, you can merge it into your local  **master**  branch and push away:\r
-\r
-    \r
-    > git checkout master\r
-    > git merge myfeature\r
-    > git push crater\r
-\r
-\r
-as the command will not push any branch that is not in the remote repository.\r
+
+    > git diff
+    diff --git a/README b/README
+    index 495a262..6a95d1f 100644
+    --- a/README
+    +++ b/README
+    @@ -59,7 +59,7 @@ lib           System libraries
+     
+     libexec                System daemons.
+     
+    -nrelease       Framework for building the ***live*** CD image.
+    +nrelease       Framework for building the ***live CD*** image.
+
+     sbin           System commands.
+
+     
+If you are satisfied with your changes, commit them.   **Note:**  The first line of your commit message should describe your change in a small sentence.  Add more details after one newline.
+
+    
+
+    > git commit -a
+    ".git/COMMIT_EDITMSG" 10L, 342C written                                                                              
+    Created commit cbb871b: Change parentheses
+     1 files changed, 1 insertions(+), 1 deletions(-)
+
+Now you can use `git format-patch` to generate a patch file.  This file is ready for submission to submit@. `git format-patch` will generate one file for every commit you did.
+
+    
+
+    > git format-patch origin/master
+    0001-Change-parentheses.patch
+    > cat 0001-Change-parentheses.patch
+    From cbb871b4588c695f000bc701b4f3c16a0a518991 Mon Sep 17 00:00:00 2001
+    From: Matthias Schmidt <matthiasdragonflybsd.org>
+    Date: Tue, 2 Dec 2008 09:54:47 +0100
+    Subject: [PATCH] Change parentheses
+
+    
+    ---
+     README |    2 +-
+     1 files changed, 1 insertions(+), 1 deletions(-)
+
+    
+
+    diff --git a/README b/README
+    index 495a262..6a95d1f 100644
+    --- a/README
+    +++ b/README
+    @@ -59,7 +59,7 @@ lib           System libraries.
+     
+     libexec                System daemons.
+
+    -nrelease       Framework for building the ***live*** CD image.
+    +nrelease       Framework for building the ***live CD*** image.     
+
+     sbin           System commands.
+    -- 
+    1.6.0.2
+
+    
+
+Attach the generated files to a mail and submit it.  Write some lines about your intention and why you changed what ...
+
+
+
+## Working with branches 
+
+It is  **not**  recommended to work directly in your  **master**  branch, except maybe for one-liners. Branches in git are very cheap, so just keep your  **master**  branch pure, and always work on a different local branch.
+
+Say you want to work on a simple change. Just create a temporary branch, make the change and commit it.
+
+
+    
+    > git checkout -b work      # you're now in the work branch
+    > vim what/ever.c
+    > git commit -a
+
+Now, you can switch back to  **master** , merge in the changes in your  **work**  branch and push away:
+
+
+
+    > git checkout master      # you're now in the master branch
+    > git merge work           # now master has your changes
+
+Afterwards, you may (or not, if you want to do further development) want to delete the  **work**  branch by
+
+
+    > git branch -d work
+
+For more complex changes, you probably want to create a longer-lived branch. For example
+
+
+    > git checkout -b myfeature
+
+You can work in the  **myfeature**  branch until your feature is ready. You can commit there as often as you like. If your work goes on for a significant amount of time, you will want to merge with the upstream  **master**  from time to time. It is recommended that you use git rebase, so that the merge points won't show up in the repo history on crater (they don't really add much information). For this, you'd do:
+
+
+    > git checkout master
+    > git pull
+    > git checkout myfeature
+    > git rebase master
+
+
+## Push your work upstream 
+
+When you judge that your code is ready for inclusion in mainline, you can merge it into your local  **master**  branch and push away:
+
+    
+
+    > git checkout master
+    > git merge myfeature
+    > git push crater
+
+
+as the command will not push any branch that is not in the remote repository.
+