Hi, I've got a use case where I'm not sure it's Mercurial not supporting it, or I'm doing something wrong:
given following changesets: @ changeset: 4:d1bdc2a34719 | tag: tip | parent: 2:e58e6d5376b9 | user: Jan Heylen <jan.hey...@nokia.com> | date: Tue Aug 16 18:31:01 2016 +0200 | summary: something | | diff --git a/src/a b/src/a | --- a/src/a | +++ b/src/a | @@ -0,0 +1,1 @@ | +something | | o changeset: 3:0b12071a20eb |/ user: Jan Heylen <jan.hey...@nokia.com> | date: Tue Aug 16 18:30:09 2016 +0200 | summary: move to files | | diff --git a/src/a b/files/a | rename from src/a | rename to files/a | diff --git a/src/b b/files/b | rename from src/b | rename to files/b | diff --git a/src/c b/files/c | rename from src/c | rename to files/c | o changeset: 2:e58e6d5376b9 | user: Jan Heylen <jan.hey...@nokia.com> | date: Tue Aug 16 18:28:45 2016 +0200 | summary: c | | diff --git a/src/c b/src/c | new file mode 100644 | o changeset: 1:d367a00baf35 | user: Jan Heylen <jan.hey...@nokia.com> | date: Tue Aug 16 18:28:41 2016 +0200 | summary: b | | diff --git a/src/b b/src/b | new file mode 100644 | o changeset: 0:4a6db5e97373 user: Jan Heylen <jan.hey...@nokia.com> date: Tue Aug 16 18:28:36 2016 +0200 summary: a diff --git a/src/a b/src/a new file mode 100644 Now, if I rebase '4' on top of '3', hg rebase understands the file move and applies the changeset properly: rebasing 4:d1bdc2a34719 "something" (tip) Updating from rev. 'd1bdc2a34719 tip' to rev. '0b12071a20eb' Updating from rev. '0b12071a20eb' to rev. '0b12071a20eb' (merge with rev. 'd1bdc2a34719') merging files/a and src/a to files/a saved backup bundle to /home/jheylen/src/file_move2/.hg/strip-backup/d1bdc2a34719-66d6def9-backup.hg First new changeset: a10b8486328eb05f3ada43861580de7b33667db9 after rebase: @ changeset: 4:a10b8486328e | tag: tip | user: Jan Heylen <jan.hey...@nokia.com> | date: Tue Aug 16 18:31:01 2016 +0200 | summary: something | | diff --git a/files/a b/files/a | --- a/files/a | +++ b/files/a | @@ -0,0 +1,1 @@ | +something | o changeset: 3:0b12071a20eb | user: Jan Heylen <jan.hey...@nokia.com> | date: Tue Aug 16 18:30:09 2016 +0200 | summary: move to files | | diff --git a/src/a b/files/a | rename from src/a | rename to files/a | diff --git a/src/b b/files/b | rename from src/b | rename to files/b | diff --git a/src/c b/files/c | rename from src/c | rename to files/c | o changeset: 2:e58e6d5376b9 | user: Jan Heylen <jan.hey...@nokia.com> | date: Tue Aug 16 18:28:45 2016 +0200 | summary: c | | diff --git a/src/c b/src/c | new file mode 100644 | o changeset: 1:d367a00baf35 | user: Jan Heylen <jan.hey...@nokia.com> | date: Tue Aug 16 18:28:41 2016 +0200 | summary: b | | diff --git a/src/b b/src/b | new file mode 100644 | o changeset: 0:4a6db5e97373 user: Jan Heylen <jan.hey...@nokia.com> date: Tue Aug 16 18:28:36 2016 +0200 summary: a diff --git a/src/a b/src/a new file mode 100644 when I now do the opposite and I rebase 4' back to dest '2', hg rebase fails: it doesn't understand the reverse 'file move': rebasing 4:a10b8486328e "something" (tip) Updating from rev. 'a10b8486328e tip' to rev. 'e58e6d5376b9' Updating from rev. 'e58e6d5376b9' to rev. 'e58e6d5376b9' (merge with rev. 'a10b8486328e') remote changed files/a which local deleted use (c)hanged version, leave (d)eleted, or leave (u)nresolved? Is this expected behaviour and/or is there a way to do this properly? fyi, I'm using mercurial version 3.7.3 br, Jan _______________________________________________ Mercurial mailing list Mercurial@mercurial-scm.org https://www.mercurial-scm.org/mailman/listinfo/mercurial