equal
deleted
inserted
replaced
7 import hgdemandimport |
7 import hgdemandimport |
8 hgdemandimport.enable() |
8 hgdemandimport.enable() |
9 |
9 |
10 from mercurial.i18n import _ |
10 from mercurial.i18n import _ |
11 from mercurial import ( |
11 from mercurial import ( |
|
12 context, |
12 error, |
13 error, |
13 fancyopts, |
14 fancyopts, |
14 simplemerge, |
15 simplemerge, |
15 ui as uimod, |
16 ui as uimod, |
16 util, |
17 util, |
47 '%s' % desc)) |
48 '%s' % desc)) |
48 opts_len = max([len(opt[0]) for opt in out_opts]) |
49 opts_len = max([len(opt[0]) for opt in out_opts]) |
49 for first, second in out_opts: |
50 for first, second in out_opts: |
50 sys.stdout.write(' %-*s %s\n' % (opts_len, first, second)) |
51 sys.stdout.write(' %-*s %s\n' % (opts_len, first, second)) |
51 |
52 |
52 class filebackedctx(object): |
|
53 """simplemerge requires context-like objects""" |
|
54 def __init__(self, path): |
|
55 self._path = path |
|
56 |
|
57 def decodeddata(self): |
|
58 with open(self._path, "rb") as f: |
|
59 return f.read() |
|
60 |
|
61 def flags(self): |
|
62 return '' |
|
63 |
|
64 def path(self): |
|
65 return self._path |
|
66 |
|
67 def write(self, data, flags): |
|
68 assert not flags |
|
69 with open(self._path, "w") as f: |
|
70 f.write(data) |
|
71 |
|
72 try: |
53 try: |
73 for fp in (sys.stdin, sys.stdout, sys.stderr): |
54 for fp in (sys.stdin, sys.stdout, sys.stderr): |
74 util.setbinary(fp) |
55 util.setbinary(fp) |
75 |
56 |
76 opts = {} |
57 opts = {} |
83 sys.exit(0) |
64 sys.exit(0) |
84 if len(args) != 3: |
65 if len(args) != 3: |
85 raise ParseError(_('wrong number of arguments')) |
66 raise ParseError(_('wrong number of arguments')) |
86 local, base, other = args |
67 local, base, other = args |
87 sys.exit(simplemerge.simplemerge(uimod.ui.load(), |
68 sys.exit(simplemerge.simplemerge(uimod.ui.load(), |
88 filebackedctx(local), |
69 context.arbitraryfilectx(local), |
89 filebackedctx(base), |
70 context.arbitraryfilectx(base), |
90 filebackedctx(other), |
71 context.arbitraryfilectx(other), |
91 **opts)) |
72 **opts)) |
92 except ParseError as e: |
73 except ParseError as e: |
93 sys.stdout.write("%s: %s\n" % (sys.argv[0], e)) |
74 sys.stdout.write("%s: %s\n" % (sys.argv[0], e)) |
94 showhelp() |
75 showhelp() |
95 sys.exit(1) |
76 sys.exit(1) |