Christian Ebert avatar Christian Ebert committed b76969f

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.

Comments (0)

Files changed (1)

crecord/crecord_core.py

                     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:
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.