diff options
Diffstat (limited to 'becommands/diff.py')
-rw-r--r-- | becommands/diff.py | 46 |
1 files changed, 30 insertions, 16 deletions
diff --git a/becommands/diff.py b/becommands/diff.py index 50dea7c..1ab2135 100644 --- a/becommands/diff.py +++ b/becommands/diff.py @@ -33,11 +33,21 @@ def execute(args, manipulate_encodings=True): >>> if bd.rcs.versioned == True: ... execute([original], manipulate_encodings=False) ... else: - ... print "a:cm: Bug A\\nstatus: open -> closed\\n" - Modified bug reports: - a:cm: Bug A - status: open -> closed - <BLANKLINE> + ... print "Modified bugs:\\n a:cm: Bug A\\n Changed bug settings:\\n status: open -> closed" + Modified bugs: + a:cm: Bug A + Changed bug settings: + status: open -> closed + >>> if bd.rcs.versioned == True: + ... execute(["--modified", original], manipulate_encodings=False) + ... else: + ... print "a" + a + >>> if bd.rcs.versioned == False: + ... execute([original], manipulate_encodings=False) + ... else: + ... print "This directory is not revision-controlled." + This directory is not revision-controlled. """ parser = get_parser() options, args = parser.parse_args(args) @@ -53,23 +63,27 @@ def execute(args, manipulate_encodings=True): if bd.rcs.versioned == False: print "This directory is not revision-controlled." else: + if revision == None: # get the most recent revision + revision = bd.rcs.revision_id(-1) old_bd = bd.duplicate_bugdir(revision) - r,m,a = diff.diff(old_bd, bd) - - optbugs = [] + d = diff.Diff(old_bd, bd) + tree = d.report_tree() + + uuids = [] if options.all == True: options.new = options.modified = options.removed = True if options.new == True: - optbugs.extend(a) + uuids.extend([c.name for c in tree.child_by_path("/bugs/new")]) if options.modified == True: - optbugs.extend([new for old,new in m]) + uuids.extend([c.name for c in tree.child_by_path("/bugs/mod")]) if options.removed == True: - optbugs.extend(r) - if len(optbugs) > 0: - for bug in optbugs: - print bug.uuid + uuids.extend([c.name for c in tree.child_by_path("/bugs/rem")]) + if (options.new or options.modified or options.removed) == True: + print "\n".join(uuids) else : - print diff.diff_report((r,m,a), bd).encode(bd.encoding) + rep = tree.report_string() + if rep != None: + print rep bd.remove_duplicate_bugdir() def get_parser(): @@ -85,7 +99,7 @@ def get_parser(): long = "--%s" % s[1] help = s[2] parser.add_option(short, long, action="store_true", - dest=attr, help=help) + default=False, dest=attr, help=help) return parser longhelp=""" |