From: Eric S. Raymond Date: Sat, 8 Nov 2014 17:19:53 +0000 (-0500) Subject: Backend diff works. X-Git-Tag: 0.2~12 X-Git-Url: http://thyrsus.com/gitweb/?a=commitdiff_plain;h=9c565b78defde0a6280ff52e5b246594660e1c11;p=src.git Backend diff works. --- diff --git a/src b/src index f6d747c..7ea0918 100755 --- a/src +++ b/src @@ -527,16 +527,15 @@ def diff_method(*args): while args and args[0].startswith("-"): diffopts += " " + args.pop(0) for arg in args: - diffspec = "" + diffspec1 = diffspec2 = "" if revspec is not None: master = History(arg) revspec = master.resolve(revspec) - diffspec += "-r" + master.revno_to_rcs(revspec[0]) + diffspec1 += master.revno_to_rcs(revspec[0]) if len(revspec) > 1: - diffspec += " -r" + master.revno_to_rcs(revspec[1]) + diffspec2 += master.revno_to_rcs(revspec[1]) with lifted(arg): - # The || : suppresses the error return from diff(1) - do_or_die("rcsdiff -q {0} {1} {2} || :".format(diffspec, diffopts, arg),loud=True) + backend.diff(diffspec1, diffspec2, diffopts, arg) def list_tags(*args): (revspec, args) = preamble("tag", args) @@ -778,6 +777,15 @@ class RCS: "Copy a file and its history to a target directory." # Using cp(1) evades cross-filesystem issues do_or_die("cp {0} {1} && cp {2} {3]/{4}".format(arg, target, self.master(arg), target, repodir)) + def diff(diffspec1, diffspec2, diffopts, arg): + "Report a diff." + # The || : suppresses the error return from diff(1) + if diffspec1: + diffspec1 = "-r" + diffspec1 + if diffspec2: + diffspec2 = "-r" + diffspec1 + do_or_die("rcsdiff -q {0} {1} {2} || :".format(diffspec, diffopts, arg),loud=True) + if __name__ == "__main__": command = list(sys.argv[1:])