/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: Daniel Schierbeck
  • Date: 2007-12-06 23:37:06 UTC
  • mto: This revision was merged to the branch mainline in revision 417.
  • Revision ID: daniel.schierbeck@gmail.com-20071206233706-eeinks66w86r3gfm
Fixed bug in gmissing.

Show diffs side-by-side

added added

removed removed

Lines of Context:
19
19
gannotate         GTK+ annotate. 
20
20
gbranch           GTK+ branching. 
21
21
gcheckout         GTK+ checkout. 
22
 
gcommit           GTK+ commit dialog 
 
22
gcommit           GTK+ commit dialog.
23
23
gconflicts        GTK+ conflicts. 
24
24
gdiff             Show differences in working tree in a GTK+ Window. 
25
25
ginit             Initialise a new branch.
26
26
gmissing          GTK+ missing revisions dialog. 
27
27
gpreferences      GTK+ preferences dialog. 
28
 
gpush             GTK+ push. 
29
 
gstatus           GTK+ status dialog 
 
28
gpush             GTK+ push.
 
29
gsend             GTK+ send merge directive.
 
30
gstatus           GTK+ status dialog.
30
31
gtags             Manage branch tags.
31
32
visualise         Graphically visualise this branch. 
32
33
"""
33
34
 
 
35
import sys
 
36
 
34
37
import bzrlib
35
38
 
36
 
__version__ = '0.91.0'
37
 
version_info = tuple(int(n) for n in __version__.split('.'))
 
39
version_info = (0, 93, 0, 'dev', 0)
38
40
 
 
41
if version_info[3] == 'final':
 
42
    version_string = '%d.%d.%d' % version_info[:3]
 
43
else:
 
44
    version_string = '%d.%d.%d%s%d' % version_info
 
45
__version__ = version_string
39
46
 
40
47
def check_bzrlib_version(desired):
41
48
    """Check that bzrlib is compatible.
59
66
        from bzrlib.errors import BzrError
60
67
        warning('Installed Bazaar version %s is too old to be used with bzr-gtk'
61
68
                ' %s.' % (bzrlib.__version__, __version__))
62
 
        raise BzrError('Version mismatch: %r' % (version_info,) )
 
69
        raise BzrError('Version mismatch: %r, %r' % (version_info, bzrlib.version_info) )
63
70
    else:
64
71
        warning('bzr-gtk is not up to date with installed bzr version %s.'
65
72
                ' \nThere should be a newer version available, e.g. %i.%i.' 
66
73
                % (bzrlib.__version__, bzrlib_version[0], bzrlib_version[1]))
67
74
 
68
75
 
69
 
check_bzrlib_version(version_info[:2])
 
76
if version_info[2] == "final":
 
77
    check_bzrlib_version(version_info[:2])
70
78
 
71
79
from bzrlib.trace import warning
72
80
if __name__ != 'bzrlib.plugins.gtk':
220
228
    :return: The viz window object.
221
229
    """
222
230
    from viz.branchwin import BranchWindow
223
 
    branch.lock_read()
224
 
    pp = BranchWindow()
225
 
    pp.set_branch(branch, revision, limit)
226
 
    # cleanup locks when the window is closed
227
 
    pp.connect("destroy", lambda w: branch.unlock())
228
 
    return pp
 
231
    return BranchWindow(branch, revision, limit)
229
232
 
230
233
 
231
234
class cmd_visualise(Command):
247
250
    def run(self, location=".", revision=None, limit=None):
248
251
        set_ui_factory()
249
252
        (br, path) = branch.Branch.open_containing(location)
250
 
        br.lock_read()
251
 
        try:
252
 
            if revision is None:
253
 
                revid = br.last_revision()
254
 
                if revid is None:
255
 
                    return
256
 
            else:
257
 
                (revno, revid) = revision[0].in_history(br)
 
253
        if revision is None:
 
254
            revid = br.last_revision()
 
255
            if revid is None:
 
256
                return
 
257
        else:
 
258
            (revno, revid) = revision[0].in_history(br)
258
259
 
259
 
            import gtk
260
 
            pp = start_viz_window(br, revid, limit)
261
 
            pp.connect("destroy", lambda w: gtk.main_quit())
262
 
            pp.show()
263
 
            gtk.main()
264
 
        finally:
265
 
            br.unlock()
 
260
        import gtk
 
261
        pp = start_viz_window(br, revid, limit)
 
262
        pp.connect("destroy", lambda w: gtk.main_quit())
 
263
        pp.show()
 
264
        gtk.main()
266
265
 
267
266
 
268
267
class cmd_gannotate(GTKCommand):
335
334
    """GTK+ commit dialog
336
335
 
337
336
    Graphical user interface for committing revisions"""
338
 
    
 
337
 
339
338
    aliases = [ "gci" ]
340
339
    takes_args = []
341
340
    takes_options = []
354
353
            (wt, path) = workingtree.WorkingTree.open_containing(filename)
355
354
            br = wt.branch
356
355
        except NoWorkingTree, e:
357
 
            path = e.base
358
 
            (br, path) = branch.Branch.open_containing(path)
359
 
 
360
 
        commit = CommitDialog(wt, path, not br)
361
 
        commit.run()
362
 
 
 
356
            from dialog import error_dialog
 
357
            error_dialog(_('Directory does not have a working tree'),
 
358
                         _('Operation aborted.'))
 
359
            return 1 # should this be retval=3?
 
360
 
 
361
        # It is a good habit to keep things locked for the duration, but it
 
362
        # could cause difficulties if someone wants to do things in another
 
363
        # window... We could lock_read() until we actually go to commit
 
364
        # changes... Just a thought.
 
365
        wt.lock_write()
 
366
        try:
 
367
            dlg = CommitDialog(wt)
 
368
            return dlg.run()
 
369
        finally:
 
370
            wt.unlock()
363
371
 
364
372
 
365
373
class cmd_gstatus(GTKCommand):
382
390
        status.run()
383
391
 
384
392
 
 
393
class cmd_gsend(GTKCommand):
 
394
    """GTK+ send merge directive.
 
395
 
 
396
    """
 
397
    def run(self):
 
398
        (br, path) = branch.Branch.open_containing(".")
 
399
        gtk = self.open_display()
 
400
        from bzrlib.plugins.gtk.mergedirective import SendMergeDirectiveDialog
 
401
        from StringIO import StringIO
 
402
        dialog = SendMergeDirectiveDialog(br)
 
403
        if dialog.run() == gtk.RESPONSE_OK:
 
404
            outf = StringIO()
 
405
            outf.writelines(dialog.get_merge_directive().to_lines())
 
406
            mail_client = br.get_config().get_mail_client()
 
407
            mail_client.compose_merge_request(dialog.get_mail_to(), "[MERGE]", 
 
408
                outf.getvalue())
 
409
 
 
410
            
 
411
 
385
412
 
386
413
class cmd_gconflicts(GTKCommand):
387
 
    """ GTK+ conflicts.
 
414
    """GTK+ conflicts.
388
415
    
389
416
    Select files from the list of conflicts and run an external utility to
390
417
    resolve them.
397
424
        dialog.run()
398
425
 
399
426
 
400
 
 
401
427
class cmd_gpreferences(GTKCommand):
402
428
    """ GTK+ preferences dialog.
403
429
 
409
435
        dialog.run()
410
436
 
411
437
 
412
 
 
413
438
class cmd_gmissing(Command):
414
439
    """ GTK+ missing revisions dialog.
415
440
 
466
491
 
467
492
 
468
493
commands = [
 
494
    cmd_gannotate, 
 
495
    cmd_gbranch,
 
496
    cmd_gcheckout, 
 
497
    cmd_gcommit, 
 
498
    cmd_gconflicts, 
 
499
    cmd_gdiff,
 
500
    cmd_ginit,
469
501
    cmd_gmissing, 
470
502
    cmd_gpreferences, 
471
 
    cmd_gconflicts, 
 
503
    cmd_gpush, 
 
504
    cmd_gsend,
472
505
    cmd_gstatus,
473
 
    cmd_gcommit, 
474
 
    cmd_gannotate, 
475
 
    cmd_visualise, 
476
 
    cmd_gdiff,
477
 
    cmd_gpush, 
478
 
    cmd_gcheckout, 
479
 
    cmd_gbranch,
480
 
    cmd_ginit,
481
 
    cmd_gtags
 
506
    cmd_gtags,
 
507
    cmd_visualise
482
508
    ]
483
509
 
484
510
for cmd in commands:
593
619
register_command(cmd_gselftest)
594
620
 
595
621
 
 
622
class cmd_test_gtk(GTKCommand):
 
623
    """Version of selftest that just runs the gtk test suite."""
 
624
 
 
625
    takes_options = ['verbose',
 
626
                     Option('one', short_name='1',
 
627
                            help='Stop when one test fails.'),
 
628
                     Option('benchmark', help='Run the benchmarks.'),
 
629
                     Option('lsprof-timed',
 
630
                     help='Generate lsprof output for benchmarked'
 
631
                          ' sections of code.'),
 
632
                     Option('list-only',
 
633
                     help='List the tests instead of running them.'),
 
634
                     Option('randomize', type=str, argname="SEED",
 
635
                     help='Randomize the order of tests using the given'
 
636
                          ' seed or "now" for the current time.'),
 
637
                    ]
 
638
    takes_args = ['testspecs*']
 
639
 
 
640
    def run(self, verbose=None, one=False, benchmark=None,
 
641
            lsprof_timed=None, list_only=False, randomize=None,
 
642
            testspecs_list=None):
 
643
        from bzrlib import __path__ as bzrlib_path
 
644
        from bzrlib.tests import selftest
 
645
 
 
646
        print '%10s: %s' % ('bzrlib', bzrlib_path[0])
 
647
        if benchmark:
 
648
            print 'No benchmarks yet'
 
649
            return 3
 
650
 
 
651
            test_suite_factory = bench_suite
 
652
            if verbose is None:
 
653
                verbose = True
 
654
            # TODO: should possibly lock the history file...
 
655
            benchfile = open(".perf_history", "at", buffering=1)
 
656
        else:
 
657
            test_suite_factory = test_suite
 
658
            if verbose is None:
 
659
                verbose = False
 
660
            benchfile = None
 
661
 
 
662
        if testspecs_list is not None:
 
663
            pattern = '|'.join(testspecs_list)
 
664
        else:
 
665
            pattern = ".*"
 
666
 
 
667
        try:
 
668
            result = selftest(verbose=verbose,
 
669
                              pattern=pattern,
 
670
                              stop_on_failure=one,
 
671
                              test_suite_factory=test_suite_factory,
 
672
                              lsprof_timed=lsprof_timed,
 
673
                              bench_history=benchfile,
 
674
                              list_only=list_only,
 
675
                              random_seed=randomize,
 
676
                             )
 
677
        finally:
 
678
            if benchfile is not None:
 
679
                benchfile.close()
 
680
 
 
681
register_command(cmd_test_gtk)
 
682
 
 
683
 
596
684
import gettext
597
685
gettext.install('olive-gtk')
598
686
 
611
699
    default_encoding = sys.getdefaultencoding()
612
700
    try:
613
701
        result = TestSuite()
 
702
        try:
 
703
            import_pygtk()
 
704
        except errors.BzrCommandError:
 
705
            return result
614
706
        result.addTest(tests.test_suite())
615
707
    finally:
616
708
        if sys.getdefaultencoding() != default_encoding: