Development/Git: Difference between revisions

From KDE TechBase
(Marked this version for translation)
(64 intermediate revisions by 8 users not shown)
Line 1: Line 1:
<languages />
<translate>
<!--T:1-->
This is the hub page for all information about the use of Git by KDE.
This is the hub page for all information about the use of Git by KDE.


This page is a work in progress where all new Git material is being organised.  Most of these sections will eventually be moved to their own pages.  Feel free to add stuff.
== KDE and Git == <!--T:3-->


=External Git Resources=
<!--T:4-->
This section provides details on using the KDE Git infrastructure.  This is intended for use by KDE developers to find out how KDE uses Git and how to set up Git for use with KDE.
 
<!--T:5-->
The [http://community.kde.org/Sysadmin/GitKdeOrgManual KDE Git System Administrators Manual] is a useful resource for more details on the technical implementation of the KDE Git infrastructure.
 
<!--T:91-->
For more information on how the KDE Git Repositories are organized, please see the [[Getting_Started/Sources|Sources]] page or the [https://projects.kde.org/projects KDE Git Projects] page.
 
<!--T:92-->
Please note that some KDE modules are still using SVN, for more details read the [[Getting_Started/Sources/Using_Subversion_with_KDE|Using Subversion with KDE]] page.
 
=== KDE Git Configuration === <!--T:6-->
 
<!--T:7-->
How to configure Git for use with the KDE infrastructure.
 
<!--T:8-->
Please see the [[Special:myLanguage/Development/Git/Configuration|Git Configuration page]].
 
=== KDE Git Policies === <!--T:10-->
 
<!--T:11-->
KDE policies on Git.  More generic development policies go elsewhere.
 
<!--T:93-->
No formal workflow policy currently exists, but a number of draft proposals have been made:
* [[Development/Git/Simple_Workflow]]
* [[Development/Git/Feature_Branch_Workflow]]
* [[Development/Tutorials/Git/Feature_Development_Workflow]]
* http://community.kde.org/Frameworks/Git_Workflow
 
<!--T:94-->
The SVN Commit Policy is being reviewed to be replaced with a new Commit Policy applying to both SVN and Git:
* [[Policies/SVN_Commit_Policy]]
* [[Policies/Draft/Commit_Policy]]
 
=== KDE Git Recipes === <!--T:12-->
 
<!--T:13-->
Short recipes for using Git with the KDE infrastructure.
 
<!--T:14-->
Please see the [[Special:myLanguage/Development/Git/Recipes|Git Recipes page]].
 
=== KDE Git Tutorials === <!--T:16-->
 
<!--T:17-->
More in-depth instructions in using Git.
 
<!--T:18-->
* [[Special:myLanguage/Development/Tutorials/Git/GitQuickStart|A quick step-by-step guide for getting started]]
 
<!--T:19-->
* [[Special:myLanguage/Development/Tutorials/Git/Create a patch|Creating a patch]]
 
<!--T:20-->
Please help filling this section by
* checking the links at the bottom of the page and see which still have valid content
* write tutorials yourself
 
== External Git Resources == <!--T:21-->
 
<!--T:22-->
Links to useful external sites about Git
Links to useful external sites about Git


==Official Documentation==
=== Official Documentation === <!--T:23-->
* http://git-scm.com/documentation


==Git for SVN Users==
<!--T:24-->
* http://git-scm.com/course/svn.html
* [http://git-scm.com/documentation Links to git official documentation]


==Tutorials==
=== Git for SVN Users === <!--T:25-->


==Cheat Sheets==
<!--T:26-->
* http://cheat.errtheblog.com/s/git
* [http://git-scm.com/course/svn.html The git-svn Crash Course]


=Git Policies=
=== Git books === <!--T:27-->
KDE policies on Git.  More generic development policies go elsewhere.


=Git Configuration=
<!--T:28-->
* [http://progit.org/book/ Pro Git] - An easy to understand book on git (CC licensed).


How to set up Git for use in KDE.
<!--T:30-->
* [http://book.git-scm.com/ The git community book], also as a [http://book.git-scm.com/book.pdf pdf]


=== Configuration Levels ===
=== Tutorials === <!--T:32-->


Your Git configuration operates at 3 levels:
<!--T:33-->
* System
* [http://www-cs-students.stanford.edu/~blynn/gitmagic/ Git Magic] - A good intro to git (in several languages!)
* User
* Repository


The System Level sets up global Git configuration defaults for every User and Repository on your system.  We will ignore these for our purposes as they are usually blank.
<!--T:35-->
*[http://tom.preston-werner.com/2009/05/19/the-git-parable.html The Git Parable]
- Essential reading if you want to truly understand git.


The User Level sets up the default configuration for a particular User to apply to all repositories used by that User. Settings made at this level will always override any matching System Level settings. The User Configuration is stored in your ~/.gitconfig file.
<!--T:37-->
* [http://www.gitcasts.com/ Git Screencasts]


The Repository Level sets up the configuration for a particular Repository clone.  Settings made at this level will always override any matching User or System Level settings.  The Repository Configuration is stored in the repository .git/config file.
=== Cheat Sheets === <!--T:38-->


The recommended KDE Git Configuration will set some settings at a user level and some at a repository level. You may wish to change the level some settings apply at however as we will assume you only or mostly use Git for developing KDE.
<!--T:39-->
* [http://cheat.errtheblog.com/s/git Quick reference]


=== URL Renaming ===
<!--T:40-->
* [http://zrusin.blogspot.com/2007/09/git-cheat-sheet.html Illustrated git cheat sheet]
(broken image, get it from [[Media:Zrusin-git-cheat-sheet-medium.png]])


Instead of having to remember and type in the different full git addresses for pulling and pushing, we recommend you add the following to your Git User Configuration (~/.gitconfig):
= Documentation Changes = <!--T:42-->


[url "git://anongit.kde.org/"]
== KDE Documentation Review == <!--T:43-->
    insteadOf = kde:
    pushInsteadOf = kde:


=== RSA Key fingerprint for git.kde.org===
=== Existing Pages For Review === <!--T:44-->
c8:45:ba:89:85:11:78:b5:a4:09:d9:31:f6:7f:7c:79


=Git Recipes=
<!--T:45-->
Brief recipes for common use cases.
Existing KDE pages about Git, SVN, and/or buildinga KDE that need to be revised.  When revising pages try to split the generic development and revision control policies separate from Git specific stuff.  Do not refer to "the KDE Git Repository" but instead the "KDE Code Repository".  Lots of small simple pages that are less daunting to newbies and can be linked to from multiple locations are preferred to massive walls of text.


=== Working with remote branches ===
<!--T:46-->
Keep:


Remote branches are branches created on the main KDE repository.  These may be a stable branch that you need to do bugfixes on, i.e. the 4.6 release, or a feature branch based on master.
<!--T:47-->
* [[Special:myLanguage/Development/Tutorials/Git/Basics|Basics]]


git branch --track <local-branch> <remote-branch>
<!--T:48-->
git checkout <local-branch>
* [[Special:myLanguage/Development/Tutorials/Git/git-svn|Git-svn]]
git push origin <local-branch>:<remote-branch>


=== Working with stable branches ===
<!--T:49-->
* [[Special:myLanguage/Development/Tutorials/Git/kde-qt| Kde-qt]]


For kdelibs, kdepimlibs, kde-runtime, kate, konsole and kde-workspace, the remote stable branches are named as follows:
<!--T:50-->
* [[Special:myLanguage/Getting Started/Sources/Amarok Git Tutorial| The Amarok Git Tutorial]]


origin/KDE/4.6
<!--T:51-->
On community.kde.org:


For these modules, to set up a local stable branch to track the remote stable branch:
<!--T:52-->
* [http://community.kde.org/Sysadmin/GitKdeOrgManual Git-KDE Manual]


git branch --track KDE/4.6 origin/KDE/4.6
<!--T:53-->
git checkout KDE/4.6
* [http://community.kde.org/20110213_GitWorkflowAgenda Git Workflow Agenda]


To then push changes to the remote stable branch:
<!--T:54-->
* [http://community.kde.org/20110213_GitWorkflowAgenda/StevesIdea Git Workflow Agenda, Steve's Idea]


git push origin KDE/4.6:KDE/4.6
<!--T:55-->
On techbase.kde.org:
 
<!--T:56-->
* [[Special:myLanguage/Getting Started|Getting Started]]


In other projects the remote stable branches are named as follows:
<!--T:57-->
* [[Special:myLanguage/Getting Started/Build/KDE4| Build KDE 4]]


origin/4.6
<!--T:58-->
* [[Special:myLanguage/Getting Started/Build/KDE4.x|Build KDE 4.x]]


For these modules, to set up a local stable branch to track the remote stable branch:
<!--T:59-->
* [[Special:myLanguage/Getting Started/Build/KDE4/Prerequisites|Prerequisites]]


git branch --track 4.6 origin/4.6
<!--T:60-->
git checkout 4.6
* [[Special:myLanguage/Getting Started/Build/KDE4/Windows/subversion|Subversion on Windows]]


To then push changes to the remote stable branch:
<!--T:61-->
* [[Special:myLanguage/Getting_Started/Increased_Productivity_in_KDE4_with_Scripts|Increase Productivity with Scripts]]


git push origin 4.6:4.6
<!--T:62-->
* [[Special:myLanguage/Getting_Started/Build/kdesrc-build|Kdesrc-build]]


=== Cherry Picking ===
<!--T:63-->
* [[Special:myLanguage/Getting Started/Sources/Anonymous SVN|Anonymous SVN]]


Cheery picking is a way to copy a single commit from one branch to another.
<!--T:64-->
* [[Special:myLanguage/Getting_Started/Sources/Using_Subversion_with_KDE|Subversion with KDE]]


When cherry picking between stable and unstable branches, use the following form:
<!--T:65-->
* [[Special:myLanguage/Getting_Started/Using_an_IDE_with_KDE4|Using an IDE with KDE 4]]


git cherry-pick -e -x <original-commit>
<!--T:66-->
* [[Special:myLanguage/Policies/SVN_Commit_Policy|SVN Commit Policy]]


==== Common Options ====
<!--T:67-->
* [[Special:myLanguage/Policies/SVN_Guidelines|SVN Guidelines]]


'''-e''' will allow you to edit the commit message to add any extra details and to change the BUG/CCBUG/FIXED-IN messages.
<!--T:68-->
* [[Special:myLanguage/Development/Tools|Development Tools]]


'''-x''' will automatically add the original commit number to the end of the commit message to enable better tracing and to simplify merging.  Only do this if the original commit was already published in a public repository, e.g. your are forward porting or back porting the patch.
<!--T:69-->
* [[Special:myLanguage/Development/Tutorials/Git/Recipes|Git Recipes]]


'''-n''' will cherry-pick the changes but not commit them to the new branch.  This is very use full if you need to do further work on a commit.
<!--T:70-->
* [[Special:myLanguage/Development/Tutorials/Git/decoding-git|Decoding Git]]


=Git Tutorials=
<!--T:71-->
More in-depth instructions in using Git
* [[Special:myLanguage/Projects/rekonq/Git_with_rekonq_HowTo|Git with Rekonq How-to]]


<!--T:72-->
* [[Special:myLanguage/Projects/Related/Subversion|Subversion]]


= Documentation Changes =
<!--T:73-->
* [[Special:myLanguage/Projects/MovetoGit|Move to Git]]


== Existing Pages For Review ==
<!--T:74-->
Existing KDE pages about Git, SVN, and/or building KDE that need to be revised.  When revising pages try to split the generic development and revision control policies separate from Git specific stuff.  Do not refer to "the KDE Git Repository" but instead the "KDE Code Repository".  Lots of small simple pages that are less daunting to newbies and can be linked to from multiple locations are preferred to massive walls of text.
* [[Special:myLanguage/Projects/MoveToGit/StepsToMove|Steps to Move]]


On community.kde.org:
<!--T:75-->
* http://community.kde.org/Sysadmin/GitKdeOrgManual
* [[Special:myLanguage/Contribute/Get a SVN Account|Get a SVN Account]]
* http://community.kde.org/20110213_GitWorkflowAgenda
* http://community.kde.org/20110213_GitWorkflowAgenda/StevesIdea


On techbase.kde.org:
<!--T:76-->
* [[Getting Started]]
* [[Special:myLanguage/Contribute/First Steps with your KDE SVN Account|First Steps with your KDE SVN Account]]
* [[Getting Started/Build/KDE4]]
* [[Getting Started/Build/KDE4.x]]
* [[Getting Started/Build/KDE4/Prerequisites]]
* [[Getting Started/Build/KDE4/Windows/subversion]]
* [[Getting_Started/Increased_Productivity_in_KDE4_with_Scripts]]
* [[Getting_Started/Build/kdesrc-build]]
* [[Getting Started/Sources/Anonymous SVN]]
* [[Getting_Started/Sources/Using_Subversion_with_KDE]]
* [[Getting Started/Sources/Amarok Git Tutorial]]
* [[Getting_Started/Set_up_KDE_4_for_development]]
* [[Getting_Started/Using_an_IDE_with_KDE4]]
* [[Policies/SVN_Commit_Policy]]
* [[Policies/SVN_Guidelines]]
* [[Development/Tools]]
* [[Development/Tutorials/Git]]
* [[Development/Tutorials/Git/BestPractices]]
* [[Development/Tutorials/Git/Intermediate]]
* [[Development/Tutorials/Git/Recipes]]
* [[Development/Tutorials/Git/Create a patch]]
* [[Development/Tutorials/Git/git-svn]]
* [[Development/Tutorials/Git/Basics]]
* [[Development/Tutorials/Git/KdeOnGit]]
* [[Development/Tutorials/Git/kde-qt]]
* [[Development/Tutorials/Git/Pushing]]
* [[Development/Tutorials/Git/decoding-git]]
* [[Projects/rekonq/Git_with_rekonq_HowTo]]
* [[Projects/Related/Subversion]]
* [[Contribute/Get a SVN Account]]
* [[Contribute/First Steps with your KDE SVN Account]]


<!--T:77-->
There are also numerous other pages referring to "the KDE SVN/subversion repositories" which should be replaced with the generic "KDE code repositories".
There are also numerous other pages referring to "the KDE SVN/subversion repositories" which should be replaced with the generic "KDE code repositories".


<!--T:78-->
There are also numerous translated pages which will need to be updated once the original pages are completed.
There are also numerous translated pages which will need to be updated once the original pages are completed.


== New Page Structure ==
=== New Page Structure === <!--T:79-->
 
<!--T:80-->
* [[Special:myLanguage/Getting_Started|Getting Started]]
 
<!--T:81-->
* [[Special:myLanguage/Getting_Started/Build|Getting_Started/Build]]
 
<!--T:82-->
* [[Special:myLanguage/Getting_Started/Build/Environment|Getting_Started/Build/Environment]]
 
<!--T:83-->
* [[Special:myLanguage/Getting_Started/Build/Requirements|Getting_Started/Build/Requirements]]
 
<!--T:84-->
* [[Special:myLanguage/Getting_Started/Build/Qt|Getting_Started/Build/Q]]
 
<!--T:85-->
* [[Special:myLanguage/Getting_Started/Build/KdeSupport|Getting_Started/Build/KdeSupport]]
 
<!--T:86-->
* [[Special:myLanguage/Getting_Started/Build/Windows|Getting_Started/Build/Windows]]
 
<!--T:87-->
* [[Special:myLanguage/Getting_Started/Build/Mac_OS_X|Getting_Started/Build/Mac_OS_X]]


* [[Getting_Started]]
<!--T:88-->
* [[Getting_Started/Build]]
* [[Special:myLanguage/Getting_Started/Run/Shell|Getting_Started/Run/Shell]]
* [[Getting_Started/Build/Environment]]
* [[Getting_Started/Build/Requirements]]
* [[Getting_Started/Build/Qt]]
* [[Getting_Started/Build/KdeSupport]]
* [[Getting_Started/Build/Windows]]
* [[Getting_Started/Build/Mac_OS_X]]
* [[Getting_Started/Run]]
* [[Getting_Started/Run/Shell]]
* [[Getting_Started/Run/Nested_Session]]
* [[Getting_Started/Run/Full_Session]]


== For Deletion ==
<!--T:89-->
* [[Special:myLanguage/Getting_Started/Run/Nested_Session|Getting_Started/Run/Nested_Session]]


The following pages can now be deleted:
<!--T:90-->
* [[Getting_Started/Build/KDE4/Generic]]
* [[Special:myLanguage/Getting_Started/Run/Full_Session|Getting_Started/Run/Full_Session>]]
* [[Build_requirements]]
</translate>
* [[Build/Stories]] and child pages - Belong somewhere else, either distro wiki or community.k.o
* [[Build/KDE4/Errors]]
* [[Getting_Started/Build/FAQ]]
* [[Getting_Started/Build/Coexisting_Versions]]
* [[Development_user]]
* [[Getting_Started/Build/KDE4_Alpha_1]]
* [[Getting_Started/Build/KDE4_Alpha_2]]
* [[Getting_Started/Build/compilationfaq.html]]
* [[Getting_Started/working_kdesrcbuildrc]]
* [[Getting_Started/working_kdesrcbuildrc/4.6]]
* [[Getting_Started/working_kdesrcbuildrc/4.6/Kubuntu_10.04_qt-copy]]
* [[Getting_Started/working_kdesrcbuildrc/4.6/]]
* [[Getting_Started/working_kdesrcbuildrc/4.6//Kubuntu_10.04_qt-copy]]
* [[Getting_Started/Build/KDE4/Mac_OS_X_10.5_issues]]
* [[Getting_Started/Build/KDE4/Cygwin]]
* [[Getting_Started/Distributions/openSUSE_Unstable]]
* http://techbase.kde.org/Growth_hormone_human_prescription_-_buy_hgh_191_-_hgh_injections_in_coppell_texas
* http://techbase.kde.org/History_of_soma_drug_-_shipping_soma_to_louisiana_-_buy_soma_com

Revision as of 09:45, 4 November 2012

This is the hub page for all information about the use of Git by KDE.

KDE and Git

This section provides details on using the KDE Git infrastructure. This is intended for use by KDE developers to find out how KDE uses Git and how to set up Git for use with KDE.

The KDE Git System Administrators Manual is a useful resource for more details on the technical implementation of the KDE Git infrastructure.

For more information on how the KDE Git Repositories are organized, please see the Sources page or the KDE Git Projects page.

Please note that some KDE modules are still using SVN, for more details read the Using Subversion with KDE page.

KDE Git Configuration

How to configure Git for use with the KDE infrastructure.

Please see the Git Configuration page.

KDE Git Policies

KDE policies on Git. More generic development policies go elsewhere.

No formal workflow policy currently exists, but a number of draft proposals have been made:

The SVN Commit Policy is being reviewed to be replaced with a new Commit Policy applying to both SVN and Git:

KDE Git Recipes

Short recipes for using Git with the KDE infrastructure.

Please see the Git Recipes page.

KDE Git Tutorials

More in-depth instructions in using Git.

Please help filling this section by

  • checking the links at the bottom of the page and see which still have valid content
  • write tutorials yourself

External Git Resources

Links to useful external sites about Git

Official Documentation

Git for SVN Users

Git books

  • Pro Git - An easy to understand book on git (CC licensed).

Tutorials

  • Git Magic - A good intro to git (in several languages!)

- Essential reading if you want to truly understand git.

Cheat Sheets

(broken image, get it from Media:Zrusin-git-cheat-sheet-medium.png)

Documentation Changes

KDE Documentation Review

Existing Pages For Review

Existing KDE pages about Git, SVN, and/or buildinga KDE that need to be revised. When revising pages try to split the generic development and revision control policies separate from Git specific stuff. Do not refer to "the KDE Git Repository" but instead the "KDE Code Repository". Lots of small simple pages that are less daunting to newbies and can be linked to from multiple locations are preferred to massive walls of text.

Keep:

On community.kde.org:

On techbase.kde.org:

There are also numerous other pages referring to "the KDE SVN/subversion repositories" which should be replaced with the generic "KDE code repositories".

There are also numerous translated pages which will need to be updated once the original pages are completed.

New Page Structure