changeset 81:b76969f5b9b2

Stay compatible with 00a881581400 and 17cea10c343e changeset: 14260:00a881581400 user: Patrick Mezard <pmezard@gmail.com> summary: patch: make patch()/internalpatch() always update the dirstate changeset: 14370:17cea10c343e tag: tip user: Patrick Mezard <pmezard@gmail.com> files: hgext/record.py mercurial/patch.py tests/test-mq-missingfiles.t description: patch: add a workingbackend dirstate layer on top of fsbackend _updatedir() is no longer used by internalpatch() The change in test-mq-missingfiles.t comes from workingbackend not considering the missing 'b' file as changed, thus not calling addremove() on it.
author Christian Ebert <blacktrash@gmx.net>
date Wed, 18 May 2011 23:48:17 +0200
parents 15cf4a0a5ab6
children 39f1abc89152
files crecord/crecord_core.py
diffstat 1 files changed, 17 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- a/crecord/crecord_core.py
+++ b/crecord/crecord_core.py
@@ -122,14 +122,26 @@
                     ui.debug(fp.getvalue())
                     pfiles = {}
                     try:
-                        patch.internalpatch(fp, ui, 1, repo.root, files=pfiles,
-                                            eolmode=None)
-                    except TypeError:  # backwards compatilibity with hg 1.1
-                        patch.internalpatch(fp, ui, 1, repo.root, files=pfiles)
+                        patch.internalpatch(ui, repo, fp, 1, eolmode=None)
+                    except (TypeError, AttributeError): # pre 17cea10c343e
+                        try:
+                            patch.internalpatch(ui, repo, fp, 1, repo.root,
+                                                eolmode=None)
+                        except (TypeError, AttributeError): # pre 00a881581400
+                            try:
+                                patch.internalpatch(fp, ui, 1, repo.root,
+                                                    files=pfiles, eolmode=None)
+                            except TypeError: # backwards compatible with hg 1.1
+                                patch.internalpatch(fp, ui, 1,
+                                                    repo.root, files=pfiles)
                     try:
                         cmdutil.updatedir(ui, repo, pfiles)
                     except AttributeError:
-                        patch.updatedir(ui, repo, pfiles)
+                        try:
+                            patch.updatedir(ui, repo, pfiles)
+                        except AttributeError:
+                            # from 00a881581400 onwards
+                            pass
                 except patch.PatchError, err:
                     s = str(err)
                     if s: