diff options
author | Justin Patrin <papercrane@gmail.com> | 2006-06-03 18:58:18 +0000 |
---|---|---|
committer | OpenEmbedded Project <openembedded-devel@lists.openembedded.org> | 2006-06-03 18:58:18 +0000 |
commit | 3cf56093b9d132a5089a70a12feb73c4be987da8 (patch) | |
tree | 4f23e71f37c5ce0c079cd2b38f46940437b8c9c7 | |
parent | e8cf4dd437a52ab2e3836b939687e4d47dbe885e (diff) |
Add mtnpatch.py, a script to parse and import a full monotone diff
-rw-r--r-- | contrib/mtnpatch.py | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/contrib/mtnpatch.py b/contrib/mtnpatch.py new file mode 100644 index 0000000000..520ebfaff0 --- /dev/null +++ b/contrib/mtnpatch.py @@ -0,0 +1,58 @@ +#!/usr/bin/env python +import sys, os, string, getopt + +mtncmd = "monotone" + +def main(argv = None): + if argv is None: + argv = sys.argv + opts, list = getopt.getopt(sys.argv[1:], ':R') + if len(list) < 1: + print "You must specify a file" + return 2 + reverse = False + for o, a in opts: + if o == "-R": + reverse = True + if os.path.exists(list[0]): + input = open(list[0], 'r') + renameFrom = "" + cmd = "" + if reverse: + print "patch -R -p0 < %s" % list[0] + else: + print "patch -p0 < %s" % list[0] + for line in input: + if len(line) > 0: + if line[0] == '#': + parts = line.split() + if len(parts) > 2: + cmd = parts[1] + # deal with whilespace in filenames (badly) + fileName = parts[2] + i = 3 + while i < len(parts) and fileName.count('"') % 2: + fileName += " %s" % parts[i] + if cmd == "delete_file": + if reverse: + print "%s add %s" % (mtncmd, fileName) + else: + print "%s drop -e %s" % (mtncmd, fileName) + elif cmd == "add_file": + if reverse: + print "%s drop -e %s" % (mtncmd, fileName) + else: + print "%s add %s" % (mtncmd, fileName) + elif cmd == "rename_file": + renameFrom = fileName + elif cmd == "to" and renameFrom != "": + if reverse: + print "%s rename -e %s %s" % (mtncmd, fileName, renameFrom) + else: + print "%s rename -e %s %s" % (mtncmd, renameFrom, fileName) + renameFrom = "" + else: + cmd = "" + +if __name__ == "__main__": + sys.exit(main()) |