Mercurial > hg
changeset 7718:6fa7b6fb90a9
record: do not lose permission changes on commit
author | Steve Borho <steve@borho.org> |
---|---|
date | Tue, 27 Jan 2009 09:58:48 -0600 |
parents | 9f9bbd33f71e |
children | 5d25b2f59ade |
files | hgext/record.py tests/test-record tests/test-record.out |
diffstat | 3 files changed, 113 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/hgext/record.py Sun Jan 25 20:27:37 2009 +0100 +++ b/hgext/record.py Tue Jan 27 09:58:48 2009 -0600 @@ -475,7 +475,9 @@ try: ui.debug(_('applying patch\n')) ui.debug(fp.getvalue()) - patch.internalpatch(fp, ui, 1, repo.root) + pfiles = {} + patch.internalpatch(fp, ui, 1, repo.root, files=pfiles) + patch.updatedir(ui, repo, pfiles) except patch.PatchError, err: s = str(err) if s:
--- a/tests/test-record Sun Jan 25 20:27:37 2009 +0100 +++ b/tests/test-record Tue Jan 27 09:58:48 2009 -0600 @@ -264,3 +264,35 @@ f EOF echo; hg tip -p + +echo % preserve chmod +x + +chmod +x f1 +echo a >> f1 +hg record -d '20 0' -mz <<EOF +y +y +y +EOF +echo; hg tip --config diff.git=True -p + +echo % preserve execute permission on original + +echo b >> f1 +hg record -d '21 0' -maa <<EOF +y +y +y +EOF +echo; hg tip --config diff.git=True -p + +echo % preserve chmod -x + +chmod -x f1 +echo c >> f1 +hg record -d '22 0' -mab <<EOF +y +y +y +EOF +echo; hg tip --config diff.git=True -p
--- a/tests/test-record.out Sun Jan 25 20:27:37 2009 +0100 +++ b/tests/test-record.out Tue Jan 27 09:58:48 2009 -0600 @@ -494,3 +494,81 @@ a +a +% preserve chmod +x +diff --git a/subdir/f1 b/subdir/f1 +old mode 100644 +new mode 100755 +1 hunks, 1 lines changed +examine changes to 'subdir/f1'? [Ynsfdaq?] @@ -1,2 +1,3 @@ + a + a ++a +record this change to 'subdir/f1'? [Ynsfdaq?] +changeset: 22:a891589cb933 +tag: tip +user: test +date: Thu Jan 01 00:00:20 1970 +0000 +summary: z + +diff --git a/subdir/f1 b/subdir/f1 +old mode 100644 +new mode 100755 +--- a/subdir/f1 ++++ b/subdir/f1 +@@ -1,2 +1,3 @@ + a + a ++a + +% preserve execute permission on original +diff --git a/subdir/f1 b/subdir/f1 +1 hunks, 1 lines changed +examine changes to 'subdir/f1'? [Ynsfdaq?] @@ -1,3 +1,4 @@ + a + a + a ++b +record this change to 'subdir/f1'? [Ynsfdaq?] +changeset: 23:befa0dae6201 +tag: tip +user: test +date: Thu Jan 01 00:00:21 1970 +0000 +summary: aa + +diff --git a/subdir/f1 b/subdir/f1 +--- a/subdir/f1 ++++ b/subdir/f1 +@@ -1,3 +1,4 @@ + a + a + a ++b + +% preserve chmod -x +diff --git a/subdir/f1 b/subdir/f1 +old mode 100755 +new mode 100644 +1 hunks, 1 lines changed +examine changes to 'subdir/f1'? [Ynsfdaq?] @@ -2,3 +2,4 @@ + a + a + b ++c +record this change to 'subdir/f1'? [Ynsfdaq?] +changeset: 24:8fd83ff53ce6 +tag: tip +user: test +date: Thu Jan 01 00:00:22 1970 +0000 +summary: ab + +diff --git a/subdir/f1 b/subdir/f1 +old mode 100755 +new mode 100644 +--- a/subdir/f1 ++++ b/subdir/f1 +@@ -2,3 +2,4 @@ + a + a + b ++c +