/brz/remove-bazaar

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/brz/remove-bazaar

« back to all changes in this revision

Viewing changes to bzrlib/commands.py

  • Committer: Lalo Martins
  • Date: 2005-09-13 09:52:12 UTC
  • mto: (1185.1.22)
  • mto: This revision was merged to the branch mainline in revision 1390.
  • Revision ID: lalo@exoweb.net-20050913095212-210555d61a893f1e
fixing up users of RevisionSpec, and moving it over to commands.py
(single point)

There are still a few users who could move, but that's a thought for
later... when someone sits down to separate UI from backend code.

Show diffs side-by-side

added added

removed removed

Lines of Context:
35
35
import bzrlib.trace
36
36
from bzrlib.trace import mutter, note, log_error, warning
37
37
from bzrlib.errors import BzrError, BzrCheckError, BzrCommandError
 
38
from bzrlib.revisionspec import RevisionSpec
38
39
from bzrlib import BZRDIR
39
40
 
40
41
plugin_cmds = {}
71
72
    This always returns a list.  The list will have one element for
72
73
    each revision.
73
74
 
74
 
    It supports integers directly, but everything else it
75
 
    defers for passing to RevisionSpec.
76
 
 
77
75
    >>> _parse_revision_str('234')
78
 
    [234]
 
76
    [<RevisionSpec_int 234>]
79
77
    >>> _parse_revision_str('234..567')
80
 
    [234, 567]
 
78
    [<RevisionSpec_int 234>, <RevisionSpec_int 567>]
81
79
    >>> _parse_revision_str('..')
82
 
    [None, None]
 
80
    [<RevisionSpec None>, <RevisionSpec None>]
83
81
    >>> _parse_revision_str('..234')
84
 
    [None, 234]
 
82
    [<RevisionSpec None>, <RevisionSpec_int 234>]
85
83
    >>> _parse_revision_str('234..')
86
 
    [234, None]
 
84
    [<RevisionSpec_int 234>, <RevisionSpec None>]
87
85
    >>> _parse_revision_str('234..456..789') # Maybe this should be an error
88
 
    [234, 456, 789]
 
86
    [<RevisionSpec_int 234>, <RevisionSpec_int 456>, <RevisionSpec_int 789>]
89
87
    >>> _parse_revision_str('234....789') # Error?
90
 
    [234, None, 789]
 
88
    [<RevisionSpec_int 234>, <RevisionSpec None>, <RevisionSpec_int 789>]
91
89
    >>> _parse_revision_str('revid:test@other.com-234234')
92
 
    ['revid:test@other.com-234234']
 
90
    [<RevisionSpec_revid revid:test@other.com-234234>]
93
91
    >>> _parse_revision_str('revid:test@other.com-234234..revid:test@other.com-234235')
94
 
    ['revid:test@other.com-234234', 'revid:test@other.com-234235']
 
92
    [<RevisionSpec_revid revid:test@other.com-234234>, <RevisionSpec_revid revid:test@other.com-234235>]
95
93
    >>> _parse_revision_str('revid:test@other.com-234234..23')
96
 
    ['revid:test@other.com-234234', 23]
 
94
    [<RevisionSpec_revid revid:test@other.com-234234>, <RevisionSpec_int 23>]
97
95
    >>> _parse_revision_str('date:2005-04-12')
98
 
    ['date:2005-04-12']
 
96
    [<RevisionSpec_date date:2005-04-12>]
99
97
    >>> _parse_revision_str('date:2005-04-12 12:24:33')
100
 
    ['date:2005-04-12 12:24:33']
 
98
    [<RevisionSpec_date date:2005-04-12 12:24:33>]
101
99
    >>> _parse_revision_str('date:2005-04-12T12:24:33')
102
 
    ['date:2005-04-12T12:24:33']
 
100
    [<RevisionSpec_date date:2005-04-12T12:24:33>]
103
101
    >>> _parse_revision_str('date:2005-04-12,12:24:33')
104
 
    ['date:2005-04-12,12:24:33']
 
102
    [<RevisionSpec_date date:2005-04-12,12:24:33>]
105
103
    >>> _parse_revision_str('-5..23')
106
 
    [-5, 23]
 
104
    [<RevisionSpec_int -5>, <RevisionSpec_int 23>]
107
105
    >>> _parse_revision_str('-5')
108
 
    [-5]
 
106
    [<RevisionSpec_int -5>]
109
107
    >>> _parse_revision_str('123a')
110
 
    ['123a']
 
108
    Traceback (most recent call last):
 
109
      ...
 
110
    BzrError: No namespace registered for string: '123a'
111
111
    >>> _parse_revision_str('abc')
112
 
    ['abc']
 
112
    Traceback (most recent call last):
 
113
      ...
 
114
    BzrError: No namespace registered for string: 'abc'
113
115
    """
114
116
    import re
115
117
    old_format_re = re.compile('\d*:\d*')
116
118
    m = old_format_re.match(revstr)
 
119
    revs = []
117
120
    if m:
118
121
        warning('Colon separator for revision numbers is deprecated.'
119
122
                ' Use .. instead')
120
 
        revs = []
121
123
        for rev in revstr.split(':'):
122
124
            if rev:
123
 
                revs.append(int(rev))
124
 
            else:
125
 
                revs.append(None)
126
 
        return revs
127
 
    revs = []
128
 
    for x in revstr.split('..'):
129
 
        if not x:
130
 
            revs.append(None)
131
 
        else:
132
 
            try:
133
 
                revs.append(int(x))
134
 
            except ValueError:
135
 
                revs.append(x)
 
125
                revs.append(RevisionSpec(int(rev)))
 
126
            else:
 
127
                revs.append(RevisionSpec(None))
 
128
    else:
 
129
        for x in revstr.split('..'):
 
130
            if not x:
 
131
                revs.append(RevisionSpec(None))
 
132
            else:
 
133
                revs.append(RevisionSpec(x))
136
134
    return revs
137
135
 
138
136
 
417
415
    >>> parse_args('commit --message=biter'.split())
418
416
    (['commit'], {'message': u'biter'})
419
417
    >>> parse_args('log -r 500'.split())
420
 
    (['log'], {'revision': [500]})
 
418
    (['log'], {'revision': [<RevisionSpec_int 500>]})
421
419
    >>> parse_args('log -r500..600'.split())
422
 
    (['log'], {'revision': [500, 600]})
 
420
    (['log'], {'revision': [<RevisionSpec_int 500>, <RevisionSpec_int 600>]})
423
421
    >>> parse_args('log -vr500..600'.split())
424
 
    (['log'], {'verbose': True, 'revision': [500, 600]})
425
 
    >>> parse_args('log -rv500..600'.split()) #the r takes an argument
426
 
    (['log'], {'revision': ['v500', 600]})
 
422
    (['log'], {'verbose': True, 'revision': [<RevisionSpec_int 500>, <RevisionSpec_int 600>]})
 
423
    >>> parse_args('log -rrevno:500..600'.split()) #the r takes an argument
 
424
    (['log'], {'revision': [<RevisionSpec_revno revno:500>, <RevisionSpec_int 600>]})
427
425
    """
428
426
    args = []
429
427
    opts = {}