/b-gtk/fix-viz

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/b-gtk/fix-viz

« back to all changes in this revision

Viewing changes to __init__.py

  • Committer: Scott James Remnant
  • Date: 2005-10-17 04:26:00 UTC
  • Revision ID: scott@netsplit.com-20051017042600-b3a3265abfffdf53
Split the display in two with a pane, we'll use the bottom half to show
information about the current revision.  Add a Back and Forward button
which figure out which revision is logically the next of previous and
moves the cursor to it.  Handle the cursor-changed event to enable/disable
the buttons (and soon update the bottom pane).

Further split up graph.py so we can stash the internal lists to do the
above; also it may allow us in future to produce partial graphs.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#!/usr/bin/python
 
2
# -*- coding: UTF-8 -*-
 
3
"""GTK+ Branch Visualisation.
 
4
 
 
5
This is a bzr plugin that adds a new 'visualise' (alias: 'viz') command
 
6
which opens a GTK+ window to allow you to see the history of the branch
 
7
and relationships between revisions in a visual manner.
 
8
 
 
9
It's somewhat based on a screenshot I was handed of gitk.  The top half
 
10
of the window shows the revisions in a list with a graph drawn down the
 
11
left hand side that joins them up and shows how they relate to each other.
 
12
The bottom hald of the window shows the details for the selected revision.
 
13
"""
 
14
 
 
15
__copyright__ = "Copyright © 2005 Canonical Ltd."
 
16
__author__    = "Scott James Remnant <scott@ubuntu.com>"
 
17
 
 
18
 
 
19
import bzrlib
 
20
import bzrlib.commands
 
21
 
 
22
from bzrlib.branch import Branch
 
23
 
 
24
from bzrkapp import BzrkApp
 
25
 
 
26
 
 
27
class cmd_visualise(bzrlib.commands.Command):
 
28
    """Graphically visualise this branch.
 
29
 
 
30
    Opens a graphical window to allow you to see the history of the branch
 
31
    and relationships between revisions in a visual manner,
 
32
 
 
33
    The default starting point is latest revision on the branch, you can
 
34
    specify a starting point with -r revision.
 
35
    """
 
36
    takes_options = [ "revision" ]
 
37
    takes_args = [ "location?" ]
 
38
    aliases = [ "viz" ]
 
39
 
 
40
    def run(self, location=".", revision=None):
 
41
        branch = Branch.open_containing(location)
 
42
        if revision is None:
 
43
            revid = branch.last_revision()
 
44
            if revid is None:
 
45
                return
 
46
        else:
 
47
            (revno, revid) = revision[0].in_history(branch)
 
48
 
 
49
        app = BzrkApp()
 
50
        app.show(branch, revid)
 
51
        app.main()
 
52
 
 
53
 
 
54
bzrlib.commands.register_command(cmd_visualise)