15
15
"""GTK+ frontends to Bazaar commands """
17
from bzrlib import errors
17
18
from bzrlib.commands import Command, register_command, display_command
18
19
from bzrlib.errors import NotVersionedError, BzrCommandError, NoSuchFile
19
20
from bzrlib.commands import Command, register_command
38
39
if str(e) == "could not open display":
39
40
raise NoDisplayError
41
from clone import CloneDialog
42
from bzrlib.plugins.gtk.olive.branch import BranchDialog
43
window = CloneDialog()
44
if window.run() == gtk.RESPONSE_OK:
45
bzrdir = BzrDir.open(window.url)
46
bzrdir.sprout(window.dest_path)
44
window = BranchDialog('.')
48
47
register_command(cmd_gbranch)
74
73
tree2 = tree1.basis_tree()
76
from bzrlib.plugins.gtk.viz.diffwin import DiffWindow
75
from viz.diffwin import DiffWindow
78
77
window = DiffWindow()
79
78
window.connect("destroy", lambda w: gtk.main_quit())
80
79
window.set_diff("Working Tree", tree1, tree2)
81
80
if filename is not None:
82
tree_filename = tree1.relpath(filename)
81
tree_filename = wt.relpath(filename)
84
83
window.set_file(tree_filename)
145
144
Option("all", help="show annotations on all lines"),
146
145
Option("plain", help="don't highlight annotation lines"),
147
146
Option("line", type=int, argname="lineno",
148
help="jump to specified line number")
147
help="jump to specified line number"),
150
150
aliases = ["gblame", "gpraise"]
152
def run(self, filename, all=False, plain=False, line='1'):
152
def run(self, filename, all=False, plain=False, line='1', revision=None):
154
154
pygtk.require("2.0")
168
168
from annotate.gannotate import GAnnotateWindow
169
169
from annotate.config import GAnnotateConfig
171
(wt, path) = WorkingTree.open_containing(filename)
172
(tree, path) = WorkingTree.open_containing(filename)
174
except errors.NoWorkingTree:
175
(branch, path) = Branch.open_containing(filename)
176
tree = branch.basis_tree()
174
file_id = wt.path2id(path)
178
file_id = tree.path2id(path)
176
180
if file_id is None:
177
181
raise NotVersionedError(filename)
182
if revision is not None:
183
if len(revision) != 1:
184
raise BzrCommandError("Only 1 revion may be specified.")
185
revision_id = revision[0].in_history(branch).rev_id
186
tree = branch.repository.revision_tree(revision_id)
188
revision_id = getattr(tree, 'get_revision_id', lambda: None)()
179
190
window = GAnnotateWindow(all, plain)
180
191
window.connect("destroy", lambda w: gtk.main_quit())
210
222
if str(e) == "could not open display":
211
223
raise NoDisplayError
213
from commit import GCommitDialog
225
from olive.commit import CommitDialog
214
226
from bzrlib.commit import Commit
215
from bzrlib.errors import (BzrCommandError, PointlessCommit, ConflictsInTree,
218
(wt, path) = WorkingTree.open_containing(filename)
221
file_id = wt.path2id(path)
224
raise NotVersionedError(filename)
226
dialog = GCommitDialog(wt)
227
dialog.set_title(path + " - Commit")
228
if dialog.run() != gtk.RESPONSE_CANCEL:
229
Commit().commit(working_tree=wt,message=dialog.message,
230
specific_files=dialog.specific_files)
227
from bzrlib.errors import (BzrCommandError,
237
(wt, path) = WorkingTree.open_containing(filename)
239
except NotBranchError, e:
241
except NoWorkingTree, e:
244
(branch, path) = Branch.open_containing(path)
245
except NotBranchError, e:
248
dialog = CommitDialog(wt, path, not branch)
250
dialog.window.connect("destroy", lambda w: gtk.main_quit())
232
253
register_command(cmd_gcommit)