D378: contrib: make simplemerge script pass context-like objects

2017-08-25 Thread phillco (Phil Cohen)
This revision was automatically updated to reflect the committed changes.
Closed by commit rHGed6f64173121: contrib: make simplemerge script pass 
context-like objects (authored by phillco).

REPOSITORY
  rHG Mercurial

CHANGES SINCE LAST UPDATE
  https://phab.mercurial-scm.org/D378?vs=1277=1284

REVISION DETAIL
  https://phab.mercurial-scm.org/D378

AFFECTED FILES
  contrib/simplemerge

CHANGE DETAILS

diff --git a/contrib/simplemerge b/contrib/simplemerge
--- a/contrib/simplemerge
+++ b/contrib/simplemerge
@@ -49,6 +49,26 @@
 for first, second in out_opts:
 sys.stdout.write(' %-*s  %s\n' % (opts_len, first, second))
 
+class filebackedctx(object):
+"""simplemerge requires context-like objects"""
+def __init__(self, path):
+self._path = path
+
+def decodeddata(self):
+with open(self._path, "rb") as f:
+return f.read()
+
+def flags(self):
+return ''
+
+def path(self):
+return self._path
+
+def write(self, data, flags):
+assert not flags
+with open(self._path, "w") as f:
+f.write(data)
+
 try:
 for fp in (sys.stdin, sys.stdout, sys.stderr):
 util.setbinary(fp)
@@ -63,7 +83,16 @@
 sys.exit(0)
 if len(args) != 3:
 raise ParseError(_('wrong number of arguments'))
-sys.exit(simplemerge.simplemerge(uimod.ui.load(), *args, **opts))
+local, base, other = args
+sys.exit(simplemerge.simplemerge(uimod.ui.load(),
+ local,
+ base,
+ other,
+ filebackedctx(local),
+ filebackedctx(base),
+ filebackedctx(other),
+ filtereddata=True,
+ **opts))
 except ParseError as e:
 sys.stdout.write("%s: %s\n" % (sys.argv[0], e))
 showhelp()



To: phillco, #hg-reviewers
Cc: martinvonz, mercurial-devel
___
Mercurial-devel mailing list
Mercurial-devel@mercurial-scm.org
https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel


D378: contrib: make simplemerge script pass context-like objects

2017-08-24 Thread phillco (Phil Cohen)
phillco updated this revision to Diff 1277.

REPOSITORY
  rHG Mercurial

CHANGES SINCE LAST UPDATE
  https://phab.mercurial-scm.org/D378?vs=1038=1277

REVISION DETAIL
  https://phab.mercurial-scm.org/D378

AFFECTED FILES
  contrib/simplemerge

CHANGE DETAILS

diff --git a/contrib/simplemerge b/contrib/simplemerge
--- a/contrib/simplemerge
+++ b/contrib/simplemerge
@@ -49,6 +49,26 @@
 for first, second in out_opts:
 sys.stdout.write(' %-*s  %s\n' % (opts_len, first, second))
 
+class filebackedctx(object):
+"""simplemerge requires context-like objects"""
+def __init__(self, path):
+self._path = path
+
+def decodeddata(self):
+with open(self._path, "rb") as f:
+return f.read()
+
+def flags(self):
+return ''
+
+def path(self):
+return self._path
+
+def write(self, data, flags):
+assert not flags
+with open(self._path, "w") as f:
+f.write(data)
+
 try:
 for fp in (sys.stdin, sys.stdout, sys.stderr):
 util.setbinary(fp)
@@ -63,7 +83,16 @@
 sys.exit(0)
 if len(args) != 3:
 raise ParseError(_('wrong number of arguments'))
-sys.exit(simplemerge.simplemerge(uimod.ui.load(), *args, **opts))
+local, base, other = args
+sys.exit(simplemerge.simplemerge(uimod.ui.load(),
+ local,
+ base,
+ other,
+ filebackedctx(local),
+ filebackedctx(base),
+ filebackedctx(other),
+ filtereddata=True,
+ **opts))
 except ParseError as e:
 sys.stdout.write("%s: %s\n" % (sys.argv[0], e))
 showhelp()



To: phillco, #hg-reviewers
Cc: martinvonz, mercurial-devel
___
Mercurial-devel mailing list
Mercurial-devel@mercurial-scm.org
https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel


D378: contrib: make simplemerge script pass context-like objects

2017-08-19 Thread phillco (Phil Cohen)
phillco added a subscriber: martinvonz.
phillco added inline comments.

INLINE COMMENTS

> simplemerge:44-63
> +class filebackedctx(object):
> +"""simplemerge requires context-like objects"""
> +def __init__(self, path):
> +self._path = path
> +
> +def decodeddata(self):
> +with open(self._path, "rb") as f:

As @martinvonz noted this could probably be combined with the 
`arbitraryfilectx` I made in 
https://bitbucket.org/phillco/hg-imm/commits/0cc65baa328bbba84629aeb4708ee2fa765a50f0.

REPOSITORY
  rHG Mercurial

REVISION DETAIL
  https://phab.mercurial-scm.org/D378

To: phillco, #hg-reviewers
Cc: martinvonz, mercurial-devel
___
Mercurial-devel mailing list
Mercurial-devel@mercurial-scm.org
https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel


D378: contrib: make simplemerge script pass context-like objects

2017-08-17 Thread phillco (Phil Cohen)
phillco updated this revision to Diff 1038.

REPOSITORY
  rHG Mercurial

CHANGES SINCE LAST UPDATE
  https://phab.mercurial-scm.org/D378?vs=859=1038

REVISION DETAIL
  https://phab.mercurial-scm.org/D378

AFFECTED FILES
  contrib/simplemerge

CHANGE DETAILS

diff --git a/contrib/simplemerge b/contrib/simplemerge
--- a/contrib/simplemerge
+++ b/contrib/simplemerge
@@ -41,6 +41,26 @@
 for first, second in out_opts:
 sys.stdout.write(' %-*s  %s\n' % (opts_len, first, second))
 
+class filebackedctx(object):
+"""simplemerge requires context-like objects"""
+def __init__(self, path):
+self._path = path
+
+def decodeddata(self):
+with open(self._path, "rb") as f:
+return f.read()
+
+def flags(self):
+return ''
+
+def path(self):
+return self._path
+
+def write(self, data, flags):
+assert not flags
+with open(self._path, "w") as f:
+f.write(data)
+
 try:
 for fp in (sys.stdin, sys.stdout, sys.stderr):
 util.setbinary(fp)
@@ -55,7 +75,16 @@
 sys.exit(0)
 if len(args) != 3:
 raise ParseError(_('wrong number of arguments'))
-sys.exit(simplemerge.simplemerge(ui.ui.load(), *args, **opts))
+local, base, other = args
+sys.exit(simplemerge.simplemerge(ui.ui.load(),
+ local,
+ base,
+ other,
+ filebackedctx(local),
+ filebackedctx(base),
+ filebackedctx(other),
+ filtereddata=True,
+ **opts))
 except ParseError as e:
 sys.stdout.write("%s: %s\n" % (sys.argv[0], e))
 showhelp()



To: phillco, #hg-reviewers
Cc: mercurial-devel
___
Mercurial-devel mailing list
Mercurial-devel@mercurial-scm.org
https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel


D378: contrib: make simplemerge script pass context-like objects

2017-08-14 Thread phillco (Phil Cohen)
phillco created this revision.
Herald added a subscriber: mercurial-devel.
Herald added a reviewer: hg-reviewers.

REVISION SUMMARY
  `simplemerge()` will soon require context-like objects to work. Create a 
simple
  context-like object that wraps the requested files and can be passed to the 
new
  API.

REPOSITORY
  rHG Mercurial

REVISION DETAIL
  https://phab.mercurial-scm.org/D378

AFFECTED FILES
  contrib/simplemerge

CHANGE DETAILS

diff --git a/contrib/simplemerge b/contrib/simplemerge
--- a/contrib/simplemerge
+++ b/contrib/simplemerge
@@ -41,6 +41,26 @@
 for first, second in out_opts:
 sys.stdout.write(' %-*s  %s\n' % (opts_len, first, second))
 
+class filebackedctx(object):
+"""simplemerge requires context-like objects"""
+def __init__(self, path):
+self._path = path
+
+def data(self):
+with open(self._path, "rb") as f:
+return f.read()
+
+def flags(self):
+return ''
+
+def path(self):
+return self._path
+
+def write(self, data, flags):
+assert not flags
+with open(self._path, "w") as f:
+f.write(data)
+
 try:
 for fp in (sys.stdin, sys.stdout, sys.stderr):
 util.setbinary(fp)
@@ -55,7 +75,16 @@
 sys.exit(0)
 if len(args) != 3:
 raise ParseError(_('wrong number of arguments'))
-sys.exit(simplemerge.simplemerge(ui.ui.load(), *args, **opts))
+local, base, other = args
+sys.exit(simplemerge.simplemerge(ui.ui.load(),
+ local,
+ base,
+ other,
+ filebackedctx(local),
+ filebackedctx(base),
+ filebackedctx(other),
+ filtereddata=True,
+ **opts))
 except ParseError as e:
 sys.stdout.write("%s: %s\n" % (sys.argv[0], e))
 showhelp()



To: phillco, #hg-reviewers
Cc: mercurial-devel
___
Mercurial-devel mailing list
Mercurial-devel@mercurial-scm.org
https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel