Difference between revisions of "Development/Tutorials/Git/Recipes"

Jump to: navigation, search
 
(3 intermediate revisions by 2 users not shown)
Line 7: Line 7:
  
 
When you issue:
 
When you issue:
<code>git branch -a</code>
+
<syntaxhighlight lang="bash">git branch -a</syntaxhighlight>
 
you get
 
you get
<code>
+
<syntaxhighlight lang="bash">
 
* master
 
* master
 
   remotes/origin/4.6
 
   remotes/origin/4.6
Line 23: Line 23:
 
   remotes/origin/kdepim/enterprise-4.1
 
   remotes/origin/kdepim/enterprise-4.1
 
   remotes/origin/master
 
   remotes/origin/master
</code>
+
</syntaxhighlight>
 
The red-colored lines are showing you the branches that are living into the main repository (you must have enabled git colors before this).  
 
The red-colored lines are showing you the branches that are living into the main repository (you must have enabled git colors before this).  
  
 
You need to backport to the last released version, which lives in the remotes/origin/KDE/4.6:
 
You need to backport to the last released version, which lives in the remotes/origin/KDE/4.6:
  
<code>
+
<syntaxhighlight lang="bash">
 
git checkout -b KDE/4.6 origin/KDE/4.6
 
git checkout -b KDE/4.6 origin/KDE/4.6
</code>
+
</syntaxhighlight>
 
This will get get you on the backport branch. Verify the diff between this old branch and the origin branch where you commited your fix :
 
This will get get you on the backport branch. Verify the diff between this old branch and the origin branch where you commited your fix :
<code>
+
<syntaxhighlight lang="bash">
 
git diff origin <fileYouModified>
 
git diff origin <fileYouModified>
</code>
+
</syntaxhighlight>
  
 
To apply your fix, do this:
 
To apply your fix, do this:
<code>
+
<syntaxhighlight lang="bash">
 
git cherry-pick 0f601b3d28
 
git cherry-pick 0f601b3d28
</code>
+
</syntaxhighlight>
 
You just applied your fix (well, if you get merging errors, just fix them as usual). See it by yourself:
 
You just applied your fix (well, if you get merging errors, just fix them as usual). See it by yourself:
<code>git log</code>
+
<syntaxhighlight lang="bash">git log</syntaxhighlight>
  
 
Now push your changes:
 
Now push your changes:
<code>
+
<syntaxhighlight lang="bash">
 
git push
 
git push
</code>
+
</syntaxhighlight>
 
Don't forget to get back on the main branch:
 
Don't forget to get back on the main branch:
<code>git checkout master</code>
+
<syntaxhighlight lang="bash">git checkout master</syntaxhighlight>

Latest revision as of 20:38, 24 March 2012

noframe
 
Warning
This page is yet to be reviewed for changes required by the migration to Git. Information and commands on this page may no longer be valid and should be used with care. Please see the KDE Git hub page for more details.


[edit] GIT/KDE useful recipes

[edit] Backporting fixes

Let's say you just fixed a bug in kde-apps and you commited it to the master and git reported it as commit id 0f601b3d28. You want now to get it backported to the latest released version.

When you issue:

git branch -a

you get

* master
  remotes/origin/4.6
  remotes/origin/HEAD -> origin/master
  remotes/origin/KDE/4.0
  remotes/origin/KDE/4.1
  remotes/origin/KDE/4.2
  remotes/origin/KDE/4.3
  remotes/origin/KDE/4.4
  remotes/origin/KDE/4.5
  remotes/origin/KDE/4.6
  remotes/origin/kdepim/enterprise-4.0.83
  remotes/origin/kdepim/enterprise-4.1
  remotes/origin/master

The red-colored lines are showing you the branches that are living into the main repository (you must have enabled git colors before this).

You need to backport to the last released version, which lives in the remotes/origin/KDE/4.6:

git checkout -b KDE/4.6 origin/KDE/4.6

This will get get you on the backport branch. Verify the diff between this old branch and the origin branch where you commited your fix :

git diff origin <fileYouModified>

To apply your fix, do this:

git cherry-pick 0f601b3d28

You just applied your fix (well, if you get merging errors, just fix them as usual). See it by yourself:

git log

Now push your changes:

git push

Don't forget to get back on the main branch:

git checkout master

This page was last modified on 24 March 2012, at 20:38. This page has been accessed 3,027 times. Content is available under Creative Commons License SA 3.0 as well as the GNU Free Documentation License 1.2.
KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V.Legal