To fullfill wishlist bug 124760.

Note: Uses default_branch_path.partition('file://')[2] because .strip('file://') removes the third / as well which breaks any POSIX path. :)

Jasper
# Bazaar merge directive format 2 (Bazaar 0.90)
# revision_id: [EMAIL PROTECTED]
# target_branch: https://code.launchpad.net/~bzr-gtk/bzr-gtk/trunk
# testament_sha1: a56b08915d5b6e8f6e51470c6b2ba1d14f8e996c
# timestamp: 2008-07-25 17:43:47 +0200
# source_branch: https://code.launchpad.net/~bzr-gtk/bzr-gtk/trunk
# base_revision_id: [EMAIL PROTECTED]
# 
# Begin patch
=== modified file '__init__.py'
--- __init__.py	2008-07-04 08:05:17 +0000
+++ __init__.py	2008-07-25 15:42:45 +0000
@@ -22,6 +22,7 @@
 gconflicts        GTK+ conflicts. 
 gdiff             Show differences in working tree in a GTK+ Window. 
 ginit             Initialise a new branch.
+gmerge            GTK+ merge dialog
 gmissing          GTK+ missing revisions dialog. 
 gpreferences      GTK+ preferences dialog. 
 gpush             GTK+ push.
@@ -451,6 +452,29 @@
         dialog.run()
 
 
+class cmd_gmerge(Command):
+    """ GTK+ merge dialog
+    
+    """
+    takes_args = ["merge_from_path?"]
+    def run(self, merge_from_path=None):
+        from bzrlib import workingtree
+        from bzrlib.plugins.gtk.dialog import error_dialog
+        from bzrlib.plugins.gtk.merge import MergeDialog
+        
+        (wt, path) = workingtree.WorkingTree.open_containing('.')
+        old_tree = wt.branch.repository.revision_tree(wt.branch.last_revision())
+        delta = wt.changes_from(old_tree)
+        if len(delta.added) or len(delta.removed) or len(delta.renamed) or len(delta.modified):
+            error_dialog(_i18n('There are local changes in the branch'),
+                         _i18n('Please commit or revert the changes before merging.'))
+        else:
+            parent_branch_path = wt.branch.get_parent()
+            merge = MergeDialog(wt, path, parent_branch_path)
+            response = merge.run()
+            merge.destroy()
+
+
 class cmd_gmissing(Command):
     """ GTK+ missing revisions dialog.
 
@@ -514,6 +538,7 @@
     cmd_gconflicts, 
     cmd_gdiff,
     cmd_ginit,
+    cmd_gmerge,
     cmd_gmissing, 
     cmd_gpreferences, 
     cmd_gpush, 

=== modified file 'merge.py'
--- merge.py	2008-07-18 18:21:26 +0000
+++ merge.py	2008-07-25 15:42:45 +0000
@@ -46,7 +46,10 @@
         self.wt = wt
         self.wtpath = wtpath
         
-        directory = os.path.dirname(self.wt.abspath(self.wtpath))
+        if default_branch_path and os.path.isdir(default_branch_path.partition('file://')[2]):
+            directory = default_branch_path.partition('file://')[2]
+        else:
+            directory = os.path.dirname(self.wt.abspath(self.wtpath))
         
         # Create widgets
         self._hbox = gtk.HBox()

# Begin bundle
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
97A=

Attachment: signature.asc
Description: OpenPGP digital signature

-- 
bzr-gtk mailing list
[email protected]
Modify settings or unsubscribe at: 
https://lists.canonical.com/mailman/listinfo/bzr-gtk

Reply via email to