~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzr.py

  • Committer: mbp at sourcefrog
  • Date: 2005-03-11 23:19:53 UTC
  • Revision ID: mbp@sourcefrog.net-20050311231953-73aeb3a131c3699a
format_date: handle revisions with no timezone offset

Show diffs side-by-side

added added

removed removed

Lines of Context:
63
63
"""
64
64
 
65
65
# not currently working:
 
66
#  bzr check
 
67
#       Run internal consistency checks.
66
68
#  bzr info
67
69
#       Show some information about this branch.
68
70
 
113
115
## TODO: Perhaps make UUIDs predictable in test mode to make it easier
114
116
## to compare output?
115
117
 
116
 
## TODO: Some kind of global code to generate the right Branch object
117
 
## to work on.  Almost, but not quite all, commands need one, and it
118
 
## can be taken either from their parameters or their working
119
 
## directory.
120
 
 
121
 
## TODO: rename command, needed soon: check destination doesn't exist
122
 
## either in working copy or tree; move working copy; update
123
 
## inventory; write out
124
 
 
125
 
## TODO: move command; check destination is a directory and will not
126
 
## clash; move it.
127
 
 
128
 
## TODO: command to show renames, one per line, as to->from
129
 
 
130
 
 
 
118
 
 
119
 
 
120
 
 
121
######################################################################
 
122
# check status
131
123
 
132
124
 
133
125
def cmd_status(all=False):
149
141
    Branch('.').get_revision(revision_id).write_xml(sys.stdout)
150
142
 
151
143
 
 
144
def cmd_get_inventory(inventory_id):
 
145
    """Return inventory in XML by hash"""
 
146
    Branch('.').get_inventory(inventory_hash).write_xml(sys.stdout)
 
147
 
 
148
 
 
149
def cmd_get_revision_inventory(revision_id):
 
150
    """Output inventory for a revision."""
 
151
    b = Branch('.')
 
152
    b.get_revision_inventory(revision_id).write_xml(sys.stdout)
 
153
 
 
154
 
152
155
def cmd_get_file_text(text_id):
153
156
    """Get contents of a file by hash."""
154
157
    sf = Branch('.').text_store[text_id]
591
594
    lookup table, something about the available options, what optargs
592
595
    they take, and which commands will accept them.
593
596
 
594
 
    >>> parse_args('--help'.split())
 
597
    >>> parse_args('bzr --help'.split())
595
598
    ([], {'help': True})
596
 
    >>> parse_args('--version'.split())
 
599
    >>> parse_args('bzr --version'.split())
597
600
    ([], {'version': True})
598
 
    >>> parse_args('status --all'.split())
 
601
    >>> parse_args('bzr status --all'.split())
599
602
    (['status'], {'all': True})
600
 
    >>> parse_args('commit --message=biter'.split())
 
603
    >>> parse_args('bzr commit --message=biter'.split())
601
604
    (['commit'], {'message': u'biter'})
602
605
    """
603
606
    args = []
605
608
 
606
609
    # TODO: Maybe handle '--' to end options?
607
610
 
608
 
    while argv:
609
 
        a = argv.pop(0)
 
611
    it = iter(argv[1:])
 
612
    while it:
 
613
        a = it.next()
610
614
        if a[0] == '-':
611
615
            optarg = None
612
616
            if a[1] == '-':
630
634
            optargfn = OPTIONS[optname]
631
635
            if optargfn:
632
636
                if optarg == None:
633
 
                    if not argv:
 
637
                    if not it:
634
638
                        bailout('option %r needs an argument' % a)
635
639
                    else:
636
 
                        optarg = argv.pop(0)
 
640
                        optarg = it.next()
637
641
                opts[optname] = optargfn(optarg)
638
642
                mutter("    option argument %r" % opts[optname])
639
643
            else:
664
668
    argdict = {}
665
669
    # TODO: Need a way to express 'cp SRC... DEST', where it matches
666
670
    # all but one.
667
 
 
668
671
    for ap in argform:
669
672
        argname = ap[:-1]
670
673
        if ap[-1] == '?':
702
705
    logging and error handling.
703
706
    """
704
707
    try:
705
 
        args, opts = parse_args(argv[1:])
 
708
        args, opts = parse_args(argv)
706
709
        if 'help' in opts:
707
710
            # TODO: pass down other arguments in case they asked for
708
711
            # help on a command name?
746
749
    ## than just a backtrace.
747
750
 
748
751
    try:
749
 
        # TODO: Lift into separate function in trace.py
750
 
        # TODO: Also show contents of /etc/lsb-release, if it can be parsed.
751
 
        #       Perhaps that should eventually go into the platform library?
752
 
        # TODO: If the file doesn't exist, add a note describing it.
753
752
        t = bzrlib.trace._tracefile
754
753
        t.write('-' * 60 + '\n')
755
754
        t.write('bzr invoked at %s\n' % format_date(time.time()))
756
 
        t.write('  by %s on %s\n' % (bzrlib.osutils.username(), socket.getfqdn()))
 
755
        t.write('  by %s on %s\n' % (bzrlib.osutils.username(), socket.gethostname()))
757
756
        t.write('  arguments: %r\n' % argv)
758
757
 
759
758
        starttime = os.times()[4]