D378: contrib: make simplemerge script pass context-like objects
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
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
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
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
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