~cjwatson/difftacular/py3-unicode

« back to all changes in this revision

Viewing changes to command.py

  • Committer: Aaron Bentley
  • Date: 2010-07-14 16:27:02 UTC
  • Revision ID: aaron@aaronbentley.com-20100714162702-gkrrc5o4xadlui6g
Add diff-ignore-branches.

Show diffs side-by-side

added added

removed removed

Lines of Context:
14
14
# along with this program; if not, write to the Free Software
15
15
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
16
16
 
17
 
from bzrlib import branch, commands, errors
 
17
from bzrlib import branch, commands, errors, option
18
18
from bzrlib.plugins.difftacular import generate_diff
19
19
 
20
20
class cmd_diff_mainline(commands.Command):
25
25
        my_branch = branch.Branch.open_containing('.')[0]
26
26
        my_branch.lock_read()
27
27
        try:
28
 
            if revision is None or len(revision) < 2:
29
 
                raise errors.BzrCommandError('Two revisions must be supplied.')
30
 
            generate_diff.mainline_diff(my_branch,
31
 
                                        revision[0].as_revision_id(my_branch),
32
 
                                        revision[1].as_revision_id(my_branch),
 
28
            if revision is None or len(revision) < 1:
 
29
                raise errors.BzrCommandError(
 
30
                    'One or more revisions must be supplied.')
 
31
            old_revision = revision[0].as_revision_id(my_branch)
 
32
            if len(revision) > 1:
 
33
                new_revision = revision[1].as_revision_id(my_branch)
 
34
            else:
 
35
                new_revision = my_branch.last_revision()
 
36
            generate_diff.mainline_diff(my_branch, old_revision, new_revision,
33
37
                                        self.outf)
34
38
        finally:
35
39
            my_branch.unlock()
 
40
 
 
41
 
 
42
class cmd_diff_ignore_branches(commands.Command):
 
43
 
 
44
    takes_options = ['revision']
 
45
    takes_args = ['branch*']
 
46
 
 
47
    def run(self, revision=None, branch_list=None):
 
48
        if branch_list is None:
 
49
            branch_list = []
 
50
        my_branch = branch.Branch.open_containing('.')[0]
 
51
        my_branch.lock_read()
 
52
        try:
 
53
            if revision is None or len(revision) < 1:
 
54
                raise errors.BzrCommandError(
 
55
                    'One or more revisions must be supplied.')
 
56
            old_revision = revision[0].as_revision_id(my_branch)
 
57
            if len(revision) > 1:
 
58
                new_revision = revision[1].as_revision_id(my_branch)
 
59
            else:
 
60
                new_revision = my_branch.last_revision()
 
61
            branches = [branch.Branch.open_containing(b)[0]
 
62
                        for b in branch_list]
 
63
            writer = option.diff_writer_registry.get()
 
64
            generate_diff.diff_ignore_branches(
 
65
                my_branch, branches, old_revision, new_revision,
 
66
                writer(self.outf))
 
67
        finally:
 
68
            my_branch.unlock()