[anjuta] git: Add a cherry-picking interface



commit 250db7517b27269558bc247615c7b7b199127754
Author: James Liggett <jrliggett cox net>
Date:   Sun May 24 00:09:11 2009 -0700

    git: Add a cherry-picking interface
---
 plugins/git/Makefile.am               |    6 +-
 plugins/git/anjuta-git.ui             |  426 +++++++++++++++++++++++----------
 plugins/git/anjuta-git.xml            |    3 +
 plugins/git/git-cherry-pick-command.c |  110 +++++++++
 plugins/git/git-cherry-pick-command.h |   65 +++++
 plugins/git/git-cherry-pick-dialog.c  |  181 ++++++++++++++
 plugins/git/git-cherry-pick-dialog.h  |   35 +++
 plugins/git/plugin.c                  |   17 ++
 8 files changed, 714 insertions(+), 129 deletions(-)

diff --git a/plugins/git/Makefile.am b/plugins/git/Makefile.am
index 5951850..6f05cf0 100644
--- a/plugins/git/Makefile.am
+++ b/plugins/git/Makefile.am
@@ -189,7 +189,11 @@ libanjuta_git_la_SOURCES = \
 	git-apply-mailbox-continue-command.c \
 	git-apply-mailbox-continue-command.h \
 	git-apply-mailbox-dialog.c \
-	git-apply-mailbox-dialog.h
+	git-apply-mailbox-dialog.h \
+	git-cherry-pick-command.c \
+	git-cherry-pick-command.h \
+	git-cherry-pick-dialog.c \
+	git-cherry-pick-dialog.h
 
 libanjuta_git_la_LDFLAGS = $(ANJUTA_PLUGIN_LDFLAGS)
 
diff --git a/plugins/git/anjuta-git.ui b/plugins/git/anjuta-git.ui
index 3f3541a..2e9f6cd 100644
--- a/plugins/git/anjuta-git.ui
+++ b/plugins/git/anjuta-git.ui
@@ -2,7 +2,7 @@
 <interface>
   <requires lib="gtk+" version="2.16"/>
   <requires lib="anjuta" version="2366.5320"/>
-  <!-- interface-naming-policy toplevel-contextual -->
+  <!-- interface-naming-policy project-wide -->
   <object class="GtkListStore" id="log_branch_combo_model">
     <columns>
       <!-- column-name active_icon -->
@@ -391,7 +391,7 @@
         <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
         <property name="spacing">2</property>
         <child>
-          <object class="GtkVBox" id="vbox1">
+          <object class="GtkVBox" id="vbox2">
             <property name="visible">True</property>
             <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
             <property name="spacing">2</property>
@@ -416,7 +416,7 @@
                   </object>
                 </child>
                 <child type="label">
-                  <object class="GtkLabel" id="label1">
+                  <object class="GtkLabel" id="label4">
                     <property name="visible">True</property>
                     <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
                     <property name="label" translatable="yes">&lt;b&gt;Select file to add:&lt;/b&gt;</property>
@@ -453,7 +453,7 @@
                   </object>
                 </child>
                 <child type="label">
-                  <object class="GtkLabel" id="label2">
+                  <object class="GtkLabel" id="label5">
                     <property name="visible">True</property>
                     <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
                     <property name="label" translatable="yes">&lt;b&gt;Options:&lt;/b&gt;</property>
@@ -558,7 +558,7 @@
                   </object>
                 </child>
                 <child type="label">
-                  <object class="GtkLabel" id="label5">
+                  <object class="GtkLabel" id="label1">
                     <property name="visible">True</property>
                     <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
                     <property name="label" translatable="yes">&lt;b&gt;Select file to remove:&lt;/b&gt;</property>
@@ -595,7 +595,7 @@
                   </object>
                 </child>
                 <child type="label">
-                  <object class="GtkLabel" id="label6">
+                  <object class="GtkLabel" id="label7">
                     <property name="visible">True</property>
                     <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
                     <property name="label" translatable="yes">&lt;b&gt;Options:&lt;/b&gt;</property>
@@ -675,7 +675,7 @@
         <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
         <property name="spacing">2</property>
         <child>
-          <object class="GtkVBox" id="vbox2">
+          <object class="GtkVBox" id="vbox4">
             <property name="visible">True</property>
             <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
             <property name="spacing">5</property>
@@ -850,7 +850,7 @@
         <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
         <property name="spacing">2</property>
         <child>
-          <object class="GtkVBox" id="vbox4">
+          <object class="GtkVBox" id="vbox7">
             <property name="visible">True</property>
             <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
             <child>
@@ -880,7 +880,7 @@
                   </object>
                 </child>
                 <child type="label">
-                  <object class="GtkLabel" id="label4">
+                  <object class="GtkLabel" id="label1">
                     <property name="visible">True</property>
                     <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
                     <property name="label" translatable="yes">&lt;b&gt;Branch:&lt;/b&gt;</property>
@@ -906,7 +906,7 @@
                     <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
                     <property name="left_padding">12</property>
                     <child>
-                      <object class="GtkVBox" id="vbox1">
+                      <object class="GtkVBox" id="vbox2">
                         <property name="visible">True</property>
                         <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
                         <child>
@@ -944,7 +944,7 @@
                   </object>
                 </child>
                 <child type="label">
-                  <object class="GtkLabel" id="label7">
+                  <object class="GtkLabel" id="label9">
                     <property name="visible">True</property>
                     <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
                     <property name="label" translatable="yes">&lt;b&gt;Options:&lt;/b&gt;</property>
@@ -969,7 +969,7 @@
                     <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
                     <property name="left_padding">12</property>
                     <child>
-                      <object class="GtkVBox" id="vbox5">
+                      <object class="GtkVBox" id="vbox6">
                         <property name="visible">True</property>
                         <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
                         <child>
@@ -1015,7 +1015,7 @@
                   </object>
                 </child>
                 <child type="label">
-                  <object class="GtkLabel" id="label8">
+                  <object class="GtkLabel" id="label10">
                     <property name="visible">True</property>
                     <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
                     <property name="label" translatable="yes">&lt;b&gt;Log message:&lt;/b&gt;</property>
@@ -1116,7 +1116,7 @@
               </object>
             </child>
             <child type="label">
-              <object class="GtkLabel" id="label9">
+              <object class="GtkLabel" id="label11">
                 <property name="visible">True</property>
                 <property name="label" translatable="yes">&lt;b&gt;Branch to switch to:&lt;/b&gt;</property>
                 <property name="use_markup">True</property>
@@ -1203,7 +1203,7 @@
               </object>
             </child>
             <child type="label">
-              <object class="GtkLabel" id="label11">
+              <object class="GtkLabel" id="label1">
                 <property name="visible">True</property>
                 <property name="label" translatable="yes">&lt;b&gt;Branch name:&lt;/b&gt;</property>
                 <property name="use_markup">True</property>
@@ -1225,7 +1225,7 @@
                 <property name="visible">True</property>
                 <property name="left_padding">12</property>
                 <child>
-                  <object class="GtkVBox" id="vbox6">
+                  <object class="GtkVBox" id="vbox8">
                     <property name="visible">True</property>
                     <child>
                       <object class="GtkRadioButton" id="branch_head_radio">
@@ -1315,7 +1315,7 @@
               </object>
             </child>
             <child type="label">
-              <object class="GtkLabel" id="label12">
+              <object class="GtkLabel" id="label13">
                 <property name="visible">True</property>
                 <property name="label" translatable="yes">&lt;b&gt;Options:&lt;/b&gt;</property>
                 <property name="use_markup">True</property>
@@ -1408,7 +1408,7 @@
               </object>
             </child>
             <child type="label">
-              <object class="GtkLabel" id="label13">
+              <object class="GtkLabel" id="label1">
                 <property name="visible">True</property>
                 <property name="label" translatable="yes">&lt;b&gt;Branch to delete:&lt;/b&gt;</property>
                 <property name="use_markup">True</property>
@@ -1441,7 +1441,7 @@
               </object>
             </child>
             <child type="label">
-              <object class="GtkLabel" id="label14">
+              <object class="GtkLabel" id="label15">
                 <property name="visible">True</property>
                 <property name="label" translatable="yes">&lt;b&gt;Options:&lt;/b&gt;</property>
                 <property name="use_markup">True</property>
@@ -1512,7 +1512,7 @@
         <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
         <property name="spacing">2</property>
         <child>
-          <object class="GtkVBox" id="vbox7">
+          <object class="GtkVBox" id="vbox9">
             <property name="visible">True</property>
             <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
             <property name="spacing">5</property>
@@ -1552,7 +1552,7 @@
                   </object>
                 </child>
                 <child type="label">
-                  <object class="GtkLabel" id="label15">
+                  <object class="GtkLabel" id="label16">
                     <property name="visible">True</property>
                     <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
                     <property name="label" translatable="yes">&lt;b&gt;Select Files to Unstage:&lt;/b&gt;</property>
@@ -1686,7 +1686,7 @@
         <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
         <property name="spacing">2</property>
         <child>
-          <object class="GtkVBox" id="vbox8">
+          <object class="GtkVBox" id="vbox10">
             <property name="visible">True</property>
             <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
             <property name="spacing">5</property>
@@ -1726,7 +1726,7 @@
                   </object>
                 </child>
                 <child type="label">
-                  <object class="GtkLabel" id="label16">
+                  <object class="GtkLabel" id="label17">
                     <property name="visible">True</property>
                     <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
                     <property name="label" translatable="yes">&lt;b&gt;Select Files to Check Out:&lt;/b&gt;</property>
@@ -1862,7 +1862,7 @@
                 <property name="visible">True</property>
                 <property name="left_padding">12</property>
                 <child>
-                  <object class="GtkVBox" id="vbox9">
+                  <object class="GtkVBox" id="vbox11">
                     <property name="visible">True</property>
                     <child>
                       <object class="GtkHBox" id="hbox1">
@@ -1919,7 +1919,7 @@
                                   </packing>
                                 </child>
                                 <child>
-                                  <object class="GtkLabel" id="label17">
+                                  <object class="GtkLabel" id="label2">
                                     <property name="visible">True</property>
                                     <property name="label" translatable="yes">View log</property>
                                   </object>
@@ -1962,7 +1962,7 @@
               </object>
             </child>
             <child type="label">
-              <object class="GtkLabel" id="label10">
+              <object class="GtkLabel" id="label3">
                 <property name="visible">True</property>
                 <property name="label" translatable="yes">&lt;b&gt;View the Log for File/Folder:&lt;/b&gt;</property>
                 <property name="use_markup">True</property>
@@ -1975,12 +1975,12 @@
           </packing>
         </child>
         <child>
-          <object class="GtkFrame" id="frame1">
+          <object class="GtkFrame" id="frame2">
             <property name="visible">True</property>
             <property name="label_xalign">0</property>
             <property name="shadow_type">none</property>
             <child>
-              <object class="GtkAlignment" id="alignment1">
+              <object class="GtkAlignment" id="alignment2">
                 <property name="visible">True</property>
                 <property name="left_padding">12</property>
                 <child>
@@ -2004,7 +2004,7 @@
               </object>
             </child>
             <child type="label">
-              <object class="GtkLabel" id="label1">
+              <object class="GtkLabel" id="label21">
                 <property name="visible">True</property>
                 <property name="label" translatable="yes">&lt;b&gt;Branch:&lt;/b&gt;</property>
                 <property name="use_markup">True</property>
@@ -2093,7 +2093,7 @@
                       </packing>
                     </child>
                     <child>
-                      <object class="GtkTable" id="table1">
+                      <object class="GtkTable" id="table4">
                         <property name="visible">True</property>
                         <property name="n_rows">2</property>
                         <property name="n_columns">2</property>
@@ -2170,7 +2170,7 @@
                       </packing>
                     </child>
                     <child>
-                      <object class="GtkTable" id="table3">
+                      <object class="GtkTable" id="table1">
                         <property name="visible">True</property>
                         <property name="n_rows">2</property>
                         <property name="n_columns">2</property>
@@ -2289,12 +2289,12 @@
             <property name="visible">True</property>
             <property name="homogeneous">True</property>
             <child>
-              <object class="GtkFrame" id="frame17">
+              <object class="GtkFrame" id="frame1">
                 <property name="visible">True</property>
                 <property name="label_xalign">0</property>
                 <property name="shadow_type">none</property>
                 <child>
-                  <object class="GtkAlignment" id="alignment17">
+                  <object class="GtkAlignment" id="alignment1">
                     <property name="visible">True</property>
                     <property name="left_padding">12</property>
                     <child>
@@ -2316,7 +2316,7 @@
                   </object>
                 </child>
                 <child type="label">
-                  <object class="GtkLabel" id="label18">
+                  <object class="GtkLabel" id="label22">
                     <property name="visible">True</property>
                     <property name="label" translatable="yes">&lt;b&gt;Changes:&lt;/b&gt;</property>
                     <property name="use_markup">True</property>
@@ -2328,12 +2328,12 @@
               </packing>
             </child>
             <child>
-              <object class="GtkFrame" id="frame18">
+              <object class="GtkFrame" id="frame20">
                 <property name="visible">True</property>
                 <property name="label_xalign">0</property>
                 <property name="shadow_type">none</property>
                 <child>
-                  <object class="GtkAlignment" id="alignment18">
+                  <object class="GtkAlignment" id="alignment20">
                     <property name="visible">True</property>
                     <property name="left_padding">12</property>
                     <child>
@@ -2355,7 +2355,7 @@
                   </object>
                 </child>
                 <child type="label">
-                  <object class="GtkLabel" id="label19">
+                  <object class="GtkLabel" id="label23">
                     <property name="visible">True</property>
                     <property name="label" translatable="yes">&lt;b&gt;Log Message:&lt;/b&gt;</property>
                     <property name="use_markup">True</property>
@@ -2385,13 +2385,13 @@
         <property name="visible">True</property>
         <property name="spacing">2</property>
         <child>
-          <object class="GtkFrame" id="frame20">
+          <object class="GtkFrame" id="frame1">
             <property name="width_request">250</property>
             <property name="visible">True</property>
             <property name="label_xalign">0</property>
             <property name="shadow_type">none</property>
             <child>
-              <object class="GtkAlignment" id="alignment20">
+              <object class="GtkAlignment" id="alignment1">
                 <property name="visible">True</property>
                 <property name="left_padding">12</property>
                 <child>
@@ -2403,7 +2403,7 @@
               </object>
             </child>
             <child type="label">
-              <object class="GtkLabel" id="label21">
+              <object class="GtkLabel" id="label24">
                 <property name="visible">True</property>
                 <property name="label" translatable="yes">&lt;b&gt;Tag name:&lt;/b&gt;</property>
                 <property name="use_markup">True</property>
@@ -2416,16 +2416,16 @@
           </packing>
         </child>
         <child>
-          <object class="GtkFrame" id="frame21">
+          <object class="GtkFrame" id="frame2">
             <property name="visible">True</property>
             <property name="label_xalign">0</property>
             <property name="shadow_type">none</property>
             <child>
-              <object class="GtkAlignment" id="alignment21">
+              <object class="GtkAlignment" id="alignment2">
                 <property name="visible">True</property>
                 <property name="left_padding">12</property>
                 <child>
-                  <object class="GtkVBox" id="vbox10">
+                  <object class="GtkVBox" id="vbox12">
                     <property name="visible">True</property>
                     <child>
                       <object class="GtkRadioButton" id="tag_head_radio">
@@ -2482,7 +2482,7 @@
               </object>
             </child>
             <child type="label">
-              <object class="GtkLabel" id="label22">
+              <object class="GtkLabel" id="label25">
                 <property name="visible">True</property>
                 <property name="label" translatable="yes">&lt;b&gt;Revision:&lt;/b&gt;</property>
                 <property name="use_markup">True</property>
@@ -2495,16 +2495,16 @@
           </packing>
         </child>
         <child>
-          <object class="GtkFrame" id="frame22">
+          <object class="GtkFrame" id="frame23">
             <property name="visible">True</property>
             <property name="label_xalign">0</property>
             <property name="shadow_type">none</property>
             <child>
-              <object class="GtkAlignment" id="alignment22">
+              <object class="GtkAlignment" id="alignment23">
                 <property name="visible">True</property>
                 <property name="left_padding">12</property>
                 <child>
-                  <object class="GtkVBox" id="vbox11">
+                  <object class="GtkVBox" id="vbox13">
                     <property name="visible">True</property>
                     <child>
                       <object class="GtkCheckButton" id="tag_force_check">
@@ -2566,7 +2566,7 @@
               </object>
             </child>
             <child type="label">
-              <object class="GtkLabel" id="label23">
+              <object class="GtkLabel" id="label26">
                 <property name="visible">True</property>
                 <property name="label" translatable="yes">&lt;b&gt;Options:&lt;/b&gt;</property>
                 <property name="use_markup">True</property>
@@ -2644,7 +2644,7 @@
                 <property name="visible">True</property>
                 <property name="left_padding">12</property>
                 <child>
-                  <object class="GtkVBox" id="vbox12">
+                  <object class="GtkVBox" id="vbox14">
                     <property name="visible">True</property>
                     <child>
                       <object class="GtkRadioButton" id="reset_previous_radio">
@@ -2701,7 +2701,7 @@
               </object>
             </child>
             <child type="label">
-              <object class="GtkLabel" id="label25">
+              <object class="GtkLabel" id="label27">
                 <property name="visible">True</property>
                 <property name="label" translatable="yes">&lt;b&gt;Reset to:&lt;/b&gt;</property>
                 <property name="use_markup">True</property>
@@ -2714,16 +2714,16 @@
           </packing>
         </child>
         <child>
-          <object class="GtkFrame" id="frame23">
+          <object class="GtkFrame" id="frame25">
             <property name="visible">True</property>
             <property name="label_xalign">0</property>
             <property name="shadow_type">none</property>
             <child>
-              <object class="GtkAlignment" id="alignment23">
+              <object class="GtkAlignment" id="alignment25">
                 <property name="visible">True</property>
                 <property name="left_padding">12</property>
                 <child>
-                  <object class="GtkVBox" id="vbox13">
+                  <object class="GtkVBox" id="vbox17">
                     <property name="visible">True</property>
                     <child>
                       <object class="GtkRadioButton" id="reset_mixed_radio">
@@ -2774,7 +2774,7 @@
               </object>
             </child>
             <child type="label">
-              <object class="GtkLabel" id="label24">
+              <object class="GtkLabel" id="label28">
                 <property name="visible">True</property>
                 <property name="label" translatable="yes">&lt;b&gt;Mode:&lt;/b&gt;</property>
                 <property name="use_markup">True</property>
@@ -2845,18 +2845,18 @@
         <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
         <property name="spacing">2</property>
         <child>
-          <object class="GtkVBox" id="vbox14">
+          <object class="GtkVBox" id="vbox18">
             <property name="visible">True</property>
             <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
             <property name="spacing">2</property>
             <child>
-              <object class="GtkFrame" id="frame25">
+              <object class="GtkFrame" id="frame1">
                 <property name="visible">True</property>
                 <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
                 <property name="label_xalign">0</property>
                 <property name="shadow_type">none</property>
                 <child>
-                  <object class="GtkAlignment" id="alignment25">
+                  <object class="GtkAlignment" id="alignment1">
                     <property name="visible">True</property>
                     <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
                     <property name="left_padding">12</property>
@@ -2870,7 +2870,7 @@
                   </object>
                 </child>
                 <child type="label">
-                  <object class="GtkLabel" id="label26">
+                  <object class="GtkLabel" id="label35">
                     <property name="visible">True</property>
                     <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
                     <property name="label" translatable="yes">&lt;b&gt;Commit to revert:&lt;/b&gt;</property>
@@ -2884,13 +2884,13 @@
               </packing>
             </child>
             <child>
-              <object class="GtkFrame" id="frame26">
+              <object class="GtkFrame" id="frame27">
                 <property name="visible">True</property>
                 <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
                 <property name="label_xalign">0</property>
                 <property name="shadow_type">none</property>
                 <child>
-                  <object class="GtkAlignment" id="alignment26">
+                  <object class="GtkAlignment" id="alignment27">
                     <property name="visible">True</property>
                     <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
                     <property name="left_padding">12</property>
@@ -2907,7 +2907,7 @@
                   </object>
                 </child>
                 <child type="label">
-                  <object class="GtkLabel" id="label27">
+                  <object class="GtkLabel" id="label36">
                     <property name="visible">True</property>
                     <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
                     <property name="label" translatable="yes">&lt;b&gt;Options:&lt;/b&gt;</property>
@@ -2985,17 +2985,17 @@
         <property name="visible">True</property>
         <property name="spacing">2</property>
         <child>
-          <object class="GtkFrame" id="frame27">
+          <object class="GtkFrame" id="frame28">
             <property name="width_request">250</property>
             <property name="visible">True</property>
             <property name="label_xalign">0</property>
             <property name="shadow_type">none</property>
             <child>
-              <object class="GtkAlignment" id="alignment27">
+              <object class="GtkAlignment" id="alignment29">
                 <property name="visible">True</property>
                 <property name="left_padding">12</property>
                 <child>
-                  <object class="GtkVBox" id="vbox1">
+                  <object class="GtkVBox" id="vbox19">
                     <property name="visible">True</property>
                     <property name="orientation">vertical</property>
                     <child>
@@ -3032,7 +3032,7 @@
               </object>
             </child>
             <child type="label">
-              <object class="GtkLabel" id="label28">
+              <object class="GtkLabel" id="label39">
                 <property name="visible">True</property>
                 <property name="label" translatable="yes">&lt;b&gt;Remote branch to rebase from:&lt;/b&gt;</property>
                 <property name="use_markup">True</property>
@@ -3101,16 +3101,16 @@
         <property name="visible">True</property>
         <property name="spacing">2</property>
         <child>
-          <object class="GtkFrame" id="frame28">
+          <object class="GtkFrame" id="frame1">
             <property name="visible">True</property>
             <property name="label_xalign">0</property>
             <property name="shadow_type">none</property>
             <child>
-              <object class="GtkAlignment" id="alignment29">
+              <object class="GtkAlignment" id="alignment1">
                 <property name="visible">True</property>
                 <property name="left_padding">12</property>
                 <child>
-                  <object class="GtkVBox" id="vbox17">
+                  <object class="GtkVBox" id="vbox20">
                     <property name="visible">True</property>
                     <child>
                       <object class="GtkRadioButton" id="bisect_start_head_radio">
@@ -3163,7 +3163,7 @@
               </object>
             </child>
             <child type="label">
-              <object class="GtkLabel" id="label35">
+              <object class="GtkLabel" id="label40">
                 <property name="visible">True</property>
                 <property name="label" translatable="yes">&lt;b&gt;Bad revision:&lt;/b&gt;</property>
                 <property name="use_markup">True</property>
@@ -3177,12 +3177,12 @@
           </packing>
         </child>
         <child>
-          <object class="GtkFrame" id="frame29">
+          <object class="GtkFrame" id="frame31">
             <property name="visible">True</property>
             <property name="label_xalign">0</property>
             <property name="shadow_type">none</property>
             <child>
-              <object class="GtkAlignment" id="alignment31">
+              <object class="GtkAlignment" id="alignment33">
                 <property name="visible">True</property>
                 <property name="left_padding">12</property>
                 <child>
@@ -3195,7 +3195,7 @@
               </object>
             </child>
             <child type="label">
-              <object class="GtkLabel" id="label36">
+              <object class="GtkLabel" id="label41">
                 <property name="visible">True</property>
                 <property name="label" translatable="yes">&lt;b&gt;Good revision:&lt;/b&gt;</property>
                 <property name="use_markup">True</property>
@@ -3267,18 +3267,18 @@
         <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
         <property name="spacing">2</property>
         <child>
-          <object class="GtkVBox" id="vbox18">
+          <object class="GtkVBox" id="vbox21">
             <property name="visible">True</property>
             <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
             <property name="spacing">5</property>
             <child>
-              <object class="GtkFrame" id="frame31">
+              <object class="GtkFrame" id="frame33">
                 <property name="visible">True</property>
                 <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
                 <property name="label_xalign">0</property>
                 <property name="shadow_type">none</property>
                 <child>
-                  <object class="GtkAlignment" id="alignment33">
+                  <object class="GtkAlignment" id="alignment34">
                     <property name="visible">True</property>
                     <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
                     <property name="left_padding">12</property>
@@ -3308,7 +3308,7 @@
                   </object>
                 </child>
                 <child type="label">
-                  <object class="GtkLabel" id="label39">
+                  <object class="GtkLabel" id="label42">
                     <property name="visible">True</property>
                     <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
                     <property name="label" translatable="yes">&lt;b&gt;Select Files to Ignore:&lt;/b&gt;</property>
@@ -3440,13 +3440,13 @@
         <property name="visible">True</property>
         <property name="spacing">2</property>
         <child>
-          <object class="GtkFrame" id="frame33">
+          <object class="GtkFrame" id="frame1">
             <property name="width_request">250</property>
             <property name="visible">True</property>
             <property name="label_xalign">0</property>
             <property name="shadow_type">none</property>
             <child>
-              <object class="GtkAlignment" id="alignment34">
+              <object class="GtkAlignment" id="alignment1">
                 <property name="visible">True</property>
                 <property name="left_padding">12</property>
                 <child>
@@ -3458,7 +3458,7 @@
               </object>
             </child>
             <child type="label">
-              <object class="GtkLabel" id="label40">
+              <object class="GtkLabel" id="label43">
                 <property name="visible">True</property>
                 <property name="label" translatable="yes">&lt;b&gt;Branch name:&lt;/b&gt;</property>
                 <property name="use_markup">True</property>
@@ -3471,12 +3471,12 @@
           </packing>
         </child>
         <child>
-          <object class="GtkFrame" id="frame35">
+          <object class="GtkFrame" id="frame2">
             <property name="visible">True</property>
             <property name="label_xalign">0</property>
             <property name="shadow_type">none</property>
             <child>
-              <object class="GtkAlignment" id="alignment35">
+              <object class="GtkAlignment" id="alignment2">
                 <property name="visible">True</property>
                 <property name="left_padding">12</property>
                 <child>
@@ -3489,7 +3489,7 @@
               </object>
             </child>
             <child type="label">
-              <object class="GtkLabel" id="label41">
+              <object class="GtkLabel" id="label44">
                 <property name="visible">True</property>
                 <property name="label" translatable="yes">&lt;b&gt;URL:&lt;/b&gt;</property>
                 <property name="use_markup">True</property>
@@ -3502,12 +3502,12 @@
           </packing>
         </child>
         <child>
-          <object class="GtkFrame" id="frame36">
+          <object class="GtkFrame" id="frame37">
             <property name="visible">True</property>
             <property name="label_xalign">0</property>
             <property name="shadow_type">none</property>
             <child>
-              <object class="GtkAlignment" id="alignment36">
+              <object class="GtkAlignment" id="alignment37">
                 <property name="visible">True</property>
                 <property name="left_padding">12</property>
                 <child>
@@ -3522,7 +3522,7 @@
               </object>
             </child>
             <child type="label">
-              <object class="GtkLabel" id="label42">
+              <object class="GtkLabel" id="label45">
                 <property name="visible">True</property>
                 <property name="label" translatable="yes">&lt;b&gt;Options:&lt;/b&gt;</property>
                 <property name="use_markup">True</property>
@@ -3591,13 +3591,13 @@
         <property name="visible">True</property>
         <property name="spacing">2</property>
         <child>
-          <object class="GtkFrame" id="frame37">
+          <object class="GtkFrame" id="frame38">
             <property name="width_request">250</property>
             <property name="visible">True</property>
             <property name="label_xalign">0</property>
             <property name="shadow_type">none</property>
             <child>
-              <object class="GtkAlignment" id="alignment37">
+              <object class="GtkAlignment" id="alignment38">
                 <property name="visible">True</property>
                 <property name="left_padding">12</property>
                 <child>
@@ -3615,7 +3615,7 @@
               </object>
             </child>
             <child type="label">
-              <object class="GtkLabel" id="label43">
+              <object class="GtkLabel" id="label47">
                 <property name="visible">True</property>
                 <property name="label" translatable="yes">&lt;b&gt;Remote to delete:&lt;/b&gt;</property>
                 <property name="use_markup">True</property>
@@ -3687,7 +3687,7 @@
         <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
         <property name="spacing">2</property>
         <child>
-          <object class="GtkVBox" id="vbox19">
+          <object class="GtkVBox" id="vbox23">
             <property name="visible">True</property>
             <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
             <property name="spacing">2</property>
@@ -3701,7 +3701,7 @@
                     <property name="visible">True</property>
                     <property name="left_padding">12</property>
                     <child>
-                      <object class="GtkVBox" id="vbox1">
+                      <object class="GtkVBox" id="vbox22">
                         <property name="visible">True</property>
                         <property name="orientation">vertical</property>
                         <child>
@@ -3738,7 +3738,7 @@
                   </object>
                 </child>
                 <child type="label">
-                  <object class="GtkLabel" id="label47">
+                  <object class="GtkLabel" id="label49">
                     <property name="visible">True</property>
                     <property name="label" translatable="yes">&lt;b&gt;Generate patches relative to:&lt;/b&gt;</property>
                     <property name="use_markup">True</property>
@@ -3751,13 +3751,13 @@
               </packing>
             </child>
             <child>
-              <object class="GtkFrame" id="frame38">
+              <object class="GtkFrame" id="frame1">
                 <property name="visible">True</property>
                 <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
                 <property name="label_xalign">0</property>
                 <property name="shadow_type">none</property>
                 <child>
-                  <object class="GtkAlignment" id="alignment38">
+                  <object class="GtkAlignment" id="alignment1">
                     <property name="visible">True</property>
                     <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
                     <property name="left_padding">12</property>
@@ -3773,7 +3773,7 @@
                   </object>
                 </child>
                 <child type="label">
-                  <object class="GtkLabel" id="label44">
+                  <object class="GtkLabel" id="label51">
                     <property name="visible">True</property>
                     <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
                     <property name="label" translatable="yes">&lt;b&gt;Folder to create patches in:&lt;/b&gt;</property>
@@ -3787,13 +3787,13 @@
               </packing>
             </child>
             <child>
-              <object class="GtkFrame" id="frame39">
+              <object class="GtkFrame" id="frame41">
                 <property name="visible">True</property>
                 <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
                 <property name="label_xalign">0</property>
                 <property name="shadow_type">none</property>
                 <child>
-                  <object class="GtkAlignment" id="alignment39">
+                  <object class="GtkAlignment" id="alignment41">
                     <property name="visible">True</property>
                     <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
                     <property name="left_padding">12</property>
@@ -3810,7 +3810,7 @@
                   </object>
                 </child>
                 <child type="label">
-                  <object class="GtkLabel" id="label45">
+                  <object class="GtkLabel" id="label52">
                     <property name="visible">True</property>
                     <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
                     <property name="label" translatable="yes">&lt;b&gt;Options:&lt;/b&gt;</property>
@@ -3890,22 +3890,22 @@
         <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
         <property name="spacing">2</property>
         <child>
-          <object class="GtkVBox" id="vbox20">
+          <object class="GtkVBox" id="vbox26">
             <property name="visible">True</property>
             <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
             <child>
-              <object class="GtkFrame" id="frame41">
+              <object class="GtkFrame" id="frame1">
                 <property name="visible">True</property>
                 <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
                 <property name="label_xalign">0</property>
                 <property name="shadow_type">none</property>
                 <child>
-                  <object class="GtkAlignment" id="alignment41">
+                  <object class="GtkAlignment" id="alignment1">
                     <property name="visible">True</property>
                     <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
                     <property name="left_padding">12</property>
                     <child>
-                      <object class="GtkVBox" id="vbox1">
+                      <object class="GtkVBox" id="vbox24">
                         <property name="visible">True</property>
                         <property name="orientation">vertical</property>
                         <child>
@@ -3938,7 +3938,7 @@
                   </object>
                 </child>
                 <child type="label">
-                  <object class="GtkLabel" id="label49">
+                  <object class="GtkLabel" id="label53">
                     <property name="visible">True</property>
                     <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
                     <property name="label" translatable="yes">&lt;b&gt;Repository to pull from:&lt;/b&gt;</property>
@@ -3953,18 +3953,18 @@
               </packing>
             </child>
             <child>
-              <object class="GtkFrame" id="frame42">
+              <object class="GtkFrame" id="frame43">
                 <property name="visible">True</property>
                 <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
                 <property name="label_xalign">0</property>
                 <property name="shadow_type">none</property>
                 <child>
-                  <object class="GtkAlignment" id="alignment42">
+                  <object class="GtkAlignment" id="alignment43">
                     <property name="visible">True</property>
                     <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
                     <property name="left_padding">12</property>
                     <child>
-                      <object class="GtkVBox" id="vbox21">
+                      <object class="GtkVBox" id="vbox25">
                         <property name="visible">True</property>
                         <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
                         <child>
@@ -4063,7 +4063,7 @@
                   </object>
                 </child>
                 <child type="label">
-                  <object class="GtkLabel" id="label51">
+                  <object class="GtkLabel" id="label54">
                     <property name="visible">True</property>
                     <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
                     <property name="label" translatable="yes">&lt;b&gt;Options:&lt;/b&gt;</property>
@@ -4143,23 +4143,23 @@
         <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
         <property name="spacing">2</property>
         <child>
-          <object class="GtkVBox" id="vbox3">
+          <object class="GtkVBox" id="vbox30">
             <property name="visible">True</property>
             <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
             <property name="spacing">2</property>
             <child>
-              <object class="GtkFrame" id="frame5">
+              <object class="GtkFrame" id="frame44">
                 <property name="visible">True</property>
                 <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
                 <property name="label_xalign">0</property>
                 <property name="shadow_type">none</property>
                 <child>
-                  <object class="GtkAlignment" id="alignment5">
+                  <object class="GtkAlignment" id="alignment44">
                     <property name="visible">True</property>
                     <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
                     <property name="left_padding">12</property>
                     <child>
-                      <object class="GtkVBox" id="vbox2">
+                      <object class="GtkVBox" id="vbox27">
                         <property name="visible">True</property>
                         <property name="orientation">vertical</property>
                         <child>
@@ -4190,7 +4190,7 @@
                   </object>
                 </child>
                 <child type="label">
-                  <object class="GtkLabel" id="label5">
+                  <object class="GtkLabel" id="label55">
                     <property name="visible">True</property>
                     <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
                     <property name="label" translatable="yes">&lt;b&gt;Repository to push to:&lt;/b&gt;</property>
@@ -4204,18 +4204,18 @@
               </packing>
             </child>
             <child>
-              <object class="GtkFrame" id="frame6">
+              <object class="GtkFrame" id="frame45">
                 <property name="visible">True</property>
                 <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
                 <property name="label_xalign">0</property>
                 <property name="shadow_type">none</property>
                 <child>
-                  <object class="GtkAlignment" id="alignment6">
+                  <object class="GtkAlignment" id="alignment45">
                     <property name="visible">True</property>
                     <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
                     <property name="left_padding">12</property>
                     <child>
-                      <object class="GtkVBox" id="vbox1">
+                      <object class="GtkVBox" id="vbox29">
                         <property name="visible">True</property>
                         <child>
                           <object class="GtkCheckButton" id="push_all_check">
@@ -4247,7 +4247,7 @@
                   </object>
                 </child>
                 <child type="label">
-                  <object class="GtkLabel" id="label6">
+                  <object class="GtkLabel" id="label56">
                     <property name="visible">True</property>
                     <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
                     <property name="label" translatable="yes">&lt;b&gt;Options:&lt;/b&gt;</property>
@@ -4266,12 +4266,12 @@
           </packing>
         </child>
         <child internal-child="action_area">
-          <object class="GtkHButtonBox" id="dialog-action_area22">
+          <object class="GtkHButtonBox" id="dialog-action_area23">
             <property name="visible">True</property>
             <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
             <property name="layout_style">end</property>
             <child>
-              <object class="GtkButton" id="button5">
+              <object class="GtkButton" id="button32">
                 <property name="label">gtk-cancel</property>
                 <property name="visible">True</property>
                 <property name="can_focus">True</property>
@@ -4286,7 +4286,7 @@
               </packing>
             </child>
             <child>
-              <object class="GtkButton" id="button6">
+              <object class="GtkButton" id="button33">
                 <property name="label">gtk-ok</property>
                 <property name="visible">True</property>
                 <property name="can_focus">True</property>
@@ -4310,8 +4310,8 @@
       </object>
     </child>
     <action-widgets>
-      <action-widget response="-6">button5</action-widget>
-      <action-widget response="-5">button6</action-widget>
+      <action-widget response="-6">button32</action-widget>
+      <action-widget response="-5">button33</action-widget>
     </action-widgets>
   </object>
   <object class="GtkDialog" id="apply_mailbox_dialog">
@@ -4326,16 +4326,16 @@
         <property name="orientation">vertical</property>
         <property name="spacing">2</property>
         <child>
-          <object class="GtkVBox" id="vbox1">
+          <object class="GtkVBox" id="vbox31">
             <property name="visible">True</property>
             <property name="orientation">vertical</property>
             <child>
-              <object class="GtkFrame" id="frame1">
+              <object class="GtkFrame" id="frame46">
                 <property name="visible">True</property>
                 <property name="label_xalign">0</property>
                 <property name="shadow_type">none</property>
                 <child>
-                  <object class="GtkAlignment" id="alignment1">
+                  <object class="GtkAlignment" id="alignment46">
                     <property name="visible">True</property>
                     <property name="left_padding">12</property>
                     <child>
@@ -4348,7 +4348,7 @@
                   </object>
                 </child>
                 <child type="label">
-                  <object class="GtkLabel" id="label1">
+                  <object class="GtkLabel" id="label57">
                     <property name="visible">True</property>
                     <property name="label" translatable="yes">&lt;b&gt;Mailbox file containing patches:&lt;/b&gt;</property>
                     <property name="use_markup">True</property>
@@ -4362,12 +4362,12 @@
               </packing>
             </child>
             <child>
-              <object class="GtkFrame" id="frame2">
+              <object class="GtkFrame" id="frame47">
                 <property name="visible">True</property>
                 <property name="label_xalign">0</property>
                 <property name="shadow_type">none</property>
                 <child>
-                  <object class="GtkAlignment" id="alignment2">
+                  <object class="GtkAlignment" id="alignment47">
                     <property name="visible">True</property>
                     <property name="left_padding">12</property>
                     <child>
@@ -4382,7 +4382,7 @@
                   </object>
                 </child>
                 <child type="label">
-                  <object class="GtkLabel" id="label2">
+                  <object class="GtkLabel" id="label58">
                     <property name="visible">True</property>
                     <property name="label" translatable="yes">&lt;b&gt;Options&lt;/b&gt;</property>
                     <property name="use_markup">True</property>
@@ -4401,7 +4401,177 @@
           </packing>
         </child>
         <child internal-child="action_area">
-          <object class="GtkHButtonBox" id="dialog-action_area22">
+          <object class="GtkHButtonBox" id="dialog-action_area25">
+            <property name="visible">True</property>
+            <property name="layout_style">end</property>
+            <child>
+              <object class="GtkButton" id="button34">
+                <property name="label" translatable="yes">gtk-cancel</property>
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="receives_default">True</property>
+                <property name="use_stock">True</property>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">False</property>
+                <property name="position">0</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkButton" id="button35">
+                <property name="label" translatable="yes">gtk-ok</property>
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="receives_default">True</property>
+                <property name="use_stock">True</property>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">False</property>
+                <property name="position">1</property>
+              </packing>
+            </child>
+          </object>
+          <packing>
+            <property name="expand">False</property>
+            <property name="pack_type">end</property>
+            <property name="position">0</property>
+          </packing>
+        </child>
+      </object>
+    </child>
+    <action-widgets>
+      <action-widget response="-6">button34</action-widget>
+      <action-widget response="-5">button35</action-widget>
+    </action-widgets>
+  </object>
+  <object class="GtkDialog" id="cherry_pick_dialog">
+    <property name="border_width">5</property>
+    <property name="title" translatable="yes">Cherry Pick</property>
+    <property name="window_position">center</property>
+    <property name="type_hint">normal</property>
+    <property name="has_separator">False</property>
+    <child internal-child="vbox">
+      <object class="GtkVBox" id="dialog-vbox23">
+        <property name="visible">True</property>
+        <property name="orientation">vertical</property>
+        <property name="spacing">2</property>
+        <child>
+          <object class="GtkVBox" id="vbox1">
+            <property name="visible">True</property>
+            <property name="orientation">vertical</property>
+            <child>
+              <object class="GtkFrame" id="frame1">
+                <property name="visible">True</property>
+                <property name="label_xalign">0</property>
+                <property name="shadow_type">none</property>
+                <child>
+                  <object class="GtkAlignment" id="alignment1">
+                    <property name="visible">True</property>
+                    <property name="left_padding">12</property>
+                    <child>
+                      <object class="GtkEntry" id="cherry_pick_revision_entry">
+                        <property name="visible">True</property>
+                        <property name="can_focus">True</property>
+                        <property name="invisible_char">&#x25CF;</property>
+                        <property name="width_chars">40</property>
+                      </object>
+                    </child>
+                  </object>
+                </child>
+                <child type="label">
+                  <object class="GtkLabel" id="label1">
+                    <property name="visible">True</property>
+                    <property name="label" translatable="yes">&lt;b&gt;Commit to Cherry Pick:&lt;/b&gt;</property>
+                    <property name="use_markup">True</property>
+                  </object>
+                </child>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">False</property>
+                <property name="position">0</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkFrame" id="frame2">
+                <property name="visible">True</property>
+                <property name="label_xalign">0</property>
+                <property name="shadow_type">none</property>
+                <child>
+                  <object class="GtkAlignment" id="alignment2">
+                    <property name="visible">True</property>
+                    <property name="left_padding">12</property>
+                    <child>
+                      <object class="GtkVBox" id="vbox2">
+                        <property name="visible">True</property>
+                        <property name="orientation">vertical</property>
+                        <child>
+                          <object class="GtkCheckButton" id="cherry_pick_no_commit_check">
+                            <property name="label" translatable="yes">Do not commit</property>
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="receives_default">False</property>
+                            <property name="draw_indicator">True</property>
+                          </object>
+                          <packing>
+                            <property name="expand">False</property>
+                            <property name="fill">False</property>
+                            <property name="position">0</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkCheckButton" id="cherry_pick_show_source_check">
+                            <property name="label" translatable="yes">Show source revision in log message</property>
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="receives_default">False</property>
+                            <property name="draw_indicator">True</property>
+                          </object>
+                          <packing>
+                            <property name="expand">False</property>
+                            <property name="fill">False</property>
+                            <property name="position">1</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkCheckButton" id="cherry_pick_signoff_check">
+                            <property name="label" translatable="yes">Add signed-off by line</property>
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="receives_default">False</property>
+                            <property name="draw_indicator">True</property>
+                          </object>
+                          <packing>
+                            <property name="expand">False</property>
+                            <property name="fill">False</property>
+                            <property name="position">2</property>
+                          </packing>
+                        </child>
+                      </object>
+                    </child>
+                  </object>
+                </child>
+                <child type="label">
+                  <object class="GtkLabel" id="label2">
+                    <property name="visible">True</property>
+                    <property name="label" translatable="yes">&lt;b&gt;Options:&lt;/b&gt;</property>
+                    <property name="use_markup">True</property>
+                  </object>
+                </child>
+              </object>
+              <packing>
+                <property name="position">1</property>
+              </packing>
+            </child>
+          </object>
+          <packing>
+            <property name="position">1</property>
+          </packing>
+        </child>
+        <child internal-child="action_area">
+          <object class="GtkHButtonBox" id="dialog-action_area27">
             <property name="visible">True</property>
             <property name="layout_style">end</property>
             <child>
diff --git a/plugins/git/anjuta-git.xml b/plugins/git/anjuta-git.xml
index cab203e..fc9b2cd 100644
--- a/plugins/git/anjuta-git.xml
+++ b/plugins/git/anjuta-git.xml
@@ -48,6 +48,7 @@
 				  		<menuitem name="Delete branch..." action="ActionGitDeleteBranch" />
 				  		<menuitem name="Switch to another branch..." action="ActionGitSwitch" />
 				  		<menuitem name="Merge..." action="ActionGitMerge" />
+				  		<menuitem name="Cherry pick..." action="ActionGitCherryPick" />
 				  		<placeholder name="PlaceholderRemoteMenu">
 							<menu name="Remote branches" action="ActionMenuGitRemoteBranches">
 						  		<menuitem name="Add..." action="ActionGitRemoteAdd" />
@@ -88,6 +89,8 @@
 		<menuitem name="Reset tree..." action="ActionGitLogReset" />
 		<menuitem name="Revert commit..." action="ActionGitLogRevert" />
 		<separator />
+		<menuitem name="Cherry pick..." action="ActionGitLogCherryPick" />
+		<separator />
 		<placeholder name="PlaceholderLogBisectMenu">
 			<menu name="Bisect" action="ActionMenuGitLogBisect">
 				<menuitem name="Set good revision" action="ActionGitLogBisectGood" />
diff --git a/plugins/git/git-cherry-pick-command.c b/plugins/git/git-cherry-pick-command.c
new file mode 100644
index 0000000..30789d4
--- /dev/null
+++ b/plugins/git/git-cherry-pick-command.c
@@ -0,0 +1,110 @@
+/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 4; tab-width: 4 -*- */
+/*
+ * anjuta
+ * Copyright (C) James Liggett 2008 <jrliggett cox net>
+ * 
+ * anjuta is free software.
+ * 
+ * You may redistribute it and/or modify it under the terms of the
+ * GNU General Public License, as published by the Free Software
+ * Foundation; either version 2 of the License, or (at your option)
+ * any later version.
+ * 
+ * anjuta is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ * See the GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with anjuta.  If not, write to:
+ * 	The Free Software Foundation, Inc.,
+ * 	51 Franklin Street, Fifth Floor
+ * 	Boston, MA  02110-1301, USA.
+ */
+
+#include "git-cherry-pick-command.h"
+
+struct _GitCherryPickCommandPriv
+{
+	gchar *revision;
+	gboolean no_commit;
+	gboolean show_source;
+	gboolean add_signoff;
+};
+
+G_DEFINE_TYPE (GitCherryPickCommand, git_cherry_pick_command, GIT_TYPE_COMMAND);
+
+static void
+git_cherry_pick_command_init (GitCherryPickCommand *self)
+{
+	self->priv = g_new0 (GitCherryPickCommandPriv, 1);
+}
+
+static void
+git_cherry_pick_command_finalize (GObject *object)
+{
+	GitCherryPickCommand *self;
+	
+	self = GIT_CHERRY_PICK_COMMAND (object);
+	
+	g_free (self->priv->revision);
+	g_free (self->priv);
+
+	G_OBJECT_CLASS (git_cherry_pick_command_parent_class)->finalize (object);
+}
+
+static guint
+git_cherry_pick_command_run (AnjutaCommand *command)
+{
+	GitCherryPickCommand *self;
+	
+	self = GIT_CHERRY_PICK_COMMAND (command);
+	
+	git_command_add_arg (GIT_COMMAND (command), "cherry-pick");
+	
+	if (self->priv->no_commit)
+		git_command_add_arg (GIT_COMMAND (command), "-n");
+
+	if (self->priv->show_source)
+		git_command_add_arg (GIT_COMMAND (command), "-x");
+
+	if (self->priv->add_signoff)
+		git_command_add_arg (GIT_COMMAND (command), "-s");
+	
+	git_command_add_arg (GIT_COMMAND (command), self->priv->revision);
+	
+	return 0;
+}
+
+static void
+git_cherry_pick_command_class_init (GitCherryPickCommandClass *klass)
+{
+	GObjectClass* object_class = G_OBJECT_CLASS (klass);
+	GitCommandClass* parent_class = GIT_COMMAND_CLASS (klass);
+	AnjutaCommandClass* command_class = ANJUTA_COMMAND_CLASS (klass);
+
+	object_class->finalize = git_cherry_pick_command_finalize;
+	parent_class->output_handler = git_command_send_output_to_info;
+	command_class->run = git_cherry_pick_command_run;
+}
+
+
+GitCherryPickCommand *
+git_cherry_pick_command_new (const gchar *working_directory, 
+                             const gchar *revision, gboolean no_commit,
+                             gboolean show_source, gboolean add_signoff)
+{
+	GitCherryPickCommand *self;
+	
+	self = g_object_new (GIT_TYPE_CHERRY_PICK_COMMAND,
+						 "working-directory", working_directory,
+						 "single-line-output", TRUE,
+						 NULL);
+	
+	self->priv->revision = g_strdup (revision);
+	self->priv->no_commit = no_commit;
+	self->priv->show_source = show_source;
+	self->priv->add_signoff = add_signoff;
+	
+	return self;
+}
diff --git a/plugins/git/git-cherry-pick-command.h b/plugins/git/git-cherry-pick-command.h
new file mode 100644
index 0000000..6119c6b
--- /dev/null
+++ b/plugins/git/git-cherry-pick-command.h
@@ -0,0 +1,65 @@
+/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 4; tab-width: 4 -*- */
+/*
+ * anjuta
+ * Copyright (C) James Liggett 2008 <jrliggett cox net>
+ * 
+ * anjuta is free software.
+ * 
+ * You may redistribute it and/or modify it under the terms of the
+ * GNU General Public License, as published by the Free Software
+ * Foundation; either version 2 of the License, or (at your option)
+ * any later version.
+ * 
+ * anjuta is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ * See the GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with anjuta.  If not, write to:
+ * 	The Free Software Foundation, Inc.,
+ * 	51 Franklin Street, Fifth Floor
+ * 	Boston, MA  02110-1301, USA.
+ */
+
+#ifndef _GIT_CHERRY_PICK_COMMAND_H_
+#define _GIT_CHERRY_PICK_COMMAND_H_
+
+#include <glib-object.h>
+#include "git-command.h"
+
+G_BEGIN_DECLS
+
+#define GIT_TYPE_CHERRY_PICK_COMMAND             (git_cherry_pick_command_get_type ())
+#define GIT_CHERRY_PICK_COMMAND(obj)             (G_TYPE_CHECK_INSTANCE_CAST ((obj), GIT_TYPE_CHERRY_PICK_COMMAND, GitCherryPickCommand))
+#define GIT_CHERRY_PICK_COMMAND_CLASS(klass)     (G_TYPE_CHECK_CLASS_CAST ((klass), GIT_TYPE_CHERRY_PICK_COMMAND, GitCherryPickCommandClass))
+#define GIT_IS_CHERRY_PICK_COMMAND(obj)          (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GIT_TYPE_CHERRY_PICK_COMMAND))
+#define GIT_IS_CHERRY_PICK_COMMAND_CLASS(klass)  (G_TYPE_CHECK_CLASS_TYPE ((klass), GIT_TYPE_CHERRY_PICK_COMMAND))
+#define GIT_CHERRY_PICK_COMMAND_GET_CLASS(obj)   (G_TYPE_INSTANCE_GET_CLASS ((obj), GIT_TYPE_CHERRY_PICK_COMMAND, GitCherryPickCommandClass))
+
+typedef struct _GitCherryPickCommandClass GitCherryPickCommandClass;
+typedef struct _GitCherryPickCommand GitCherryPickCommand;
+typedef struct _GitCherryPickCommandPriv GitCherryPickCommandPriv;
+
+struct _GitCherryPickCommandClass
+{
+	GitCommandClass parent_class;
+};
+
+struct _GitCherryPickCommand
+{
+	GitCommand parent_instance;
+	
+	GitCherryPickCommandPriv *priv;
+};
+
+GType git_cherry_pick_command_get_type (void) G_GNUC_CONST;
+GitCherryPickCommand *git_cherry_pick_command_new (const gchar *working_directory, 
+                                                   const gchar *revision, 
+                                                   gboolean no_commit,
+                                                   gboolean show_source,
+                                                   gboolean add_signoff);
+
+G_END_DECLS
+
+#endif /* _GIT_REVERT_COMMAND_H_ */
diff --git a/plugins/git/git-cherry-pick-dialog.c b/plugins/git/git-cherry-pick-dialog.c
new file mode 100644
index 0000000..72d8de3
--- /dev/null
+++ b/plugins/git/git-cherry-pick-dialog.c
@@ -0,0 +1,181 @@
+/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 4; tab-width: 4 -*- */
+/*
+ * anjuta
+ * Copyright (C) James Liggett 2008 <jrliggett cox net>
+ * 
+ * anjuta is free software.
+ * 
+ * You may redistribute it and/or modify it under the terms of the
+ * GNU General Public License, as published by the Free Software
+ * Foundation; either version 2 of the License, or (at your option)
+ * any later version.
+ * 
+ * anjuta is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ * See the GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with anjuta.  If not, write to:
+ * 	The Free Software Foundation, Inc.,
+ * 	51 Franklin Street, Fifth Floor
+ * 	Boston, MA  02110-1301, USA.
+ */
+
+#include "git-cherry-pick-dialog.h"
+
+static void
+on_cherry_pick_dialog_response (GtkDialog *dialog, gint response_id, 
+                                GitUIData *data)
+{
+	GtkWidget *cherry_pick_revision_entry;
+	GtkWidget *cherry_pick_no_commit_check;
+	GtkWidget *cherry_pick_show_source_check;
+	GtkWidget *cherry_pick_signoff_check;
+	gchar *revision;
+	GitCherryPickCommand *cherry_pick_command;
+	
+	if (response_id == GTK_RESPONSE_OK)
+	{
+		cherry_pick_revision_entry = GTK_WIDGET (gtk_builder_get_object (data->bxml, 
+		                                                                 "cherry_pick_revision_entry"));
+		cherry_pick_no_commit_check = GTK_WIDGET (gtk_builder_get_object (data->bxml, 
+		                                                                  "cherry_pick_no_commit_check"));
+		cherry_pick_show_source_check = GTK_WIDGET (gtk_builder_get_object (data->bxml,
+		                                                                    "cherry_pick_show_source_check"));
+		cherry_pick_signoff_check = GTK_WIDGET (gtk_builder_get_object (data->bxml,
+		                                                                "cherry_pick_signoff_check"));
+		revision = gtk_editable_get_chars (GTK_EDITABLE (cherry_pick_revision_entry),
+										   0, -1);
+		
+		if (git_check_input (GTK_WIDGET (dialog), cherry_pick_revision_entry, revision, 
+							 _("Please enter a revision.")))
+		{
+			cherry_pick_command = git_cherry_pick_command_new (data->plugin->project_root_directory,
+			                                                   revision,
+			                                                   gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (cherry_pick_no_commit_check)),
+			                                                   gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (cherry_pick_show_source_check)),
+			                                                   gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (cherry_pick_signoff_check)));
+												
+			
+			g_free (revision);
+			
+			git_create_message_view (data->plugin);
+			
+			g_signal_connect (G_OBJECT (cherry_pick_command), "command-finished",
+							  G_CALLBACK (on_git_command_finished),
+							  data->plugin);
+			
+			g_signal_connect (G_OBJECT (cherry_pick_command), "data-arrived",
+							  G_CALLBACK (on_git_command_info_arrived),
+							  data->plugin);
+			
+			anjuta_command_start (ANJUTA_COMMAND (cherry_pick_command));
+		}
+		else
+		{
+			g_free (revision);
+			return;
+		}
+	}
+	
+	gtk_widget_destroy (GTK_WIDGET (dialog));
+	git_ui_data_free (data);
+}
+
+static void
+on_cherry_pick_no_commit_check_toggled (GtkToggleButton *toggle_button,
+                                        GitUIData *data)
+{
+	GtkWidget *cherry_pick_show_source_check;
+	GtkWidget *cherry_pick_signoff_check;
+	gboolean active;
+
+	cherry_pick_show_source_check = GTK_WIDGET (gtk_builder_get_object (data->bxml,
+		                                                                    "cherry_pick_show_source_check"));
+	cherry_pick_signoff_check = GTK_WIDGET (gtk_builder_get_object (data->bxml,
+	                                                                "cherry_pick_signoff_check"));
+	active = gtk_toggle_button_get_active (toggle_button);
+
+	/* It doesn't make much sense to show a source revision or add a signed off
+	 * line when there's no commit to be made. */
+	if (active)
+	{
+		gtk_widget_set_sensitive (cherry_pick_show_source_check, FALSE);
+		gtk_widget_set_sensitive (cherry_pick_signoff_check, FALSE);
+		gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (cherry_pick_show_source_check), FALSE);
+		gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (cherry_pick_signoff_check), FALSE);
+		
+	}
+	else
+	{
+		gtk_widget_set_sensitive (cherry_pick_show_source_check, TRUE);
+		gtk_widget_set_sensitive (cherry_pick_signoff_check, TRUE);
+	}
+}
+
+static void
+cherry_pick_dialog (Git *plugin, const gchar *revision)
+{
+	GtkBuilder *bxml;
+	gchar *objects[] = {"cherry_pick_dialog", NULL};
+	GError *error;
+	GtkWidget *dialog;
+	GtkWidget *cherry_pick_revision_entry;
+	GtkWidget *cherry_pick_no_commit_check;
+	GitUIData *data;
+	
+	bxml = gtk_builder_new ();
+	error = NULL;
+
+	if (!gtk_builder_add_objects_from_file (bxml, BUILDER_FILE, objects, 
+	                                        &error))
+	{
+		g_warning ("Couldn't load builder file: %s", error->message);
+		g_error_free (error);
+	}
+	
+	dialog = GTK_WIDGET (gtk_builder_get_object (bxml, "cherry_pick_dialog"));
+	cherry_pick_revision_entry = GTK_WIDGET (gtk_builder_get_object (bxml, 
+	                                                                 "cherry_pick_revision_entry"));
+	cherry_pick_no_commit_check = GTK_WIDGET (gtk_builder_get_object (bxml, 
+	                                                                  "cherry_pick_no_commit_check"));
+	
+	data = git_ui_data_new (plugin, bxml);
+	
+	if (revision)
+		gtk_entry_set_text (GTK_ENTRY (cherry_pick_revision_entry), revision);
+	
+	g_signal_connect (G_OBJECT (dialog), "response", 
+					  G_CALLBACK (on_cherry_pick_dialog_response), 
+					  data);
+
+	g_signal_connect (G_OBJECT (cherry_pick_no_commit_check), "toggled",
+	                  G_CALLBACK (on_cherry_pick_no_commit_check_toggled),
+	                  data);
+	
+	gtk_widget_show_all (dialog);
+}
+
+void
+on_menu_git_cherry_pick (GtkAction *action, Git *plugin)
+{
+	cherry_pick_dialog (plugin, NULL);
+}
+
+void
+on_log_menu_git_cherry_pick (GtkAction *action, Git *plugin)
+{
+	GitRevision *revision;
+	gchar *sha;
+	
+	revision = git_log_get_selected_revision (plugin);
+	
+	if (revision)
+	{
+		sha = git_revision_get_sha (revision);
+		
+		cherry_pick_dialog (plugin, sha);
+		g_free (sha);
+	}
+}
diff --git a/plugins/git/git-cherry-pick-dialog.h b/plugins/git/git-cherry-pick-dialog.h
new file mode 100644
index 0000000..39b7ed8
--- /dev/null
+++ b/plugins/git/git-cherry-pick-dialog.h
@@ -0,0 +1,35 @@
+/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 4; tab-width: 4 -*- */
+/*
+ * anjuta
+ * Copyright (C) James Liggett 2008 <jrliggett cox net>
+ * 
+ * anjuta is free software.
+ * 
+ * You may redistribute it and/or modify it under the terms of the
+ * GNU General Public License, as published by the Free Software
+ * Foundation; either version 2 of the License, or (at your option)
+ * any later version.
+ * 
+ * anjuta is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ * See the GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with anjuta.  If not, write to:
+ * 	The Free Software Foundation, Inc.,
+ * 	51 Franklin Street, Fifth Floor
+ * 	Boston, MA  02110-1301, USA.
+ */
+
+#ifndef _GIT_CHERRY_PICK_DIALOG_H
+#define _GIT_CHERRY_PICK_DIALOG_H
+
+#include "git-cherry-pick-command.h"
+#include "git-log-dialog.h"
+#include "git-ui-utils.h"
+
+void on_menu_git_cherry_pick (GtkAction *action, Git *plugin);
+void on_log_menu_git_cherry_pick (GtkAction *action, Git *plugin);
+
+#endif
diff --git a/plugins/git/plugin.c b/plugins/git/plugin.c
index 328ac75..7d63dda 100644
--- a/plugins/git/plugin.c
+++ b/plugins/git/plugin.c
@@ -47,6 +47,7 @@
 #include "git-cat-file-menu.h"
 #include "git-push-dialog.h"
 #include "git-apply-mailbox-dialog.h"
+#include "git-cherry-pick-dialog.h"
 
 #define UI_FILE PACKAGE_DATA_DIR"/ui/anjuta-git.xml"
 
@@ -287,6 +288,14 @@ static GtkActionEntry actions_git[] =
 		G_CALLBACK (on_menu_git_merge)    /* action callback */
 	},
 	{
+		"ActionGitCherryPick",                       /* Action name */
+		NULL,                            /* Stock icon, if any */
+		N_("_Cherry pick..."),                     /* Display label */
+		NULL,                                     /* short-cut */
+		NULL,                      /* Tooltip */
+		G_CALLBACK (on_menu_git_cherry_pick)    /* action callback */
+	},
+	{
 		"ActionMenuGitRemoteBranches",                       /* Action name */
 		GTK_STOCK_NETWORK,                            /* Stock icon, if any */
 		N_("_Remote branches"),                     /* Display label */
@@ -435,6 +444,14 @@ static GtkActionEntry actions_log[] =
 		G_CALLBACK (on_log_menu_git_revert)    /* action callback */
 	},
 	{
+		"ActionGitLogCherryPick",                       /* Action name */
+		NULL,                            /* Stock icon, if any */
+		N_("_Cherry pick..."),                     /* Display label */
+		NULL,                                     /* short-cut */
+		NULL,                      /* Tooltip */
+		G_CALLBACK (on_log_menu_git_cherry_pick)    /* action callback */
+	},
+	{
 		"ActionMenuGitLogBisect",                       /* Action name */
 		NULL,                            /* Stock icon, if any */
 		N_("_Bisect"),                     /* Display label */



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]