diff --git a/mercurial/metadata.py b/mercurial/metadata.py --- a/mercurial/metadata.py +++ b/mercurial/metadata.py @@ -682,7 +682,7 @@ ADDED_FLAG = int("001" "00", 2) MERGED_FLAG = int("010" "00", 2) REMOVED_FLAG = int("011" "00", 2) -# `100` is reserved for future use +SALVAGED_FLAG = int("100" "00", 2) TOUCHED_FLAG = int("101" "00", 2) COPIED_MASK = int("11", 2) @@ -695,7 +695,7 @@ def encode_files_sidedata(files): - all_files = set(files.touched - files.salvaged) + all_files = set(files.touched) all_files.update(files.copied_from_p1.values()) all_files.update(files.copied_from_p2.values()) all_files = sorted(all_files) @@ -715,6 +715,8 @@ flag |= MERGED_FLAG elif f in files.removed: flag |= REMOVED_FLAG + elif f in files.salvaged: + flag |= SALVAGED_FLAG elif f in files.touched: flag |= TOUCHED_FLAG @@ -765,6 +767,8 @@ md.mark_merged(filename) elif flag & ACTION_MASK == REMOVED_FLAG: md.mark_removed(filename) + elif flag & ACTION_MASK == SALVAGED_FLAG: + md.mark_salvaged(filename) elif flag & ACTION_MASK == TOUCHED_FLAG: md.mark_touched(filename) diff --git a/tests/test-copies-chain-merge.t b/tests/test-copies-chain-merge.t --- a/tests/test-copies-chain-merge.t +++ b/tests/test-copies-chain-merge.t @@ -1192,19 +1192,23 @@ merged : d, ; ##### revision 30 ##### 1 sidedata entries - entry-0014 size 4 - '\x00\x00\x00\x00' + entry-0014 size 14 + '\x00\x00\x00\x01\x10\x00\x00\x00\x01\x00\x00\x00\x00d' + salvaged : d, ; ##### revision 31 ##### 1 sidedata entries - entry-0014 size 4 - '\x00\x00\x00\x00' + entry-0014 size 14 + '\x00\x00\x00\x01\x10\x00\x00\x00\x01\x00\x00\x00\x00d' + salvaged : d, ; ##### revision 32 ##### 1 sidedata entries - entry-0014 size 4 - '\x00\x00\x00\x00' + entry-0014 size 14 + '\x00\x00\x00\x01\x10\x00\x00\x00\x01\x00\x00\x00\x00d' + salvaged : d, ; ##### revision 33 ##### 1 sidedata entries - entry-0014 size 4 - '\x00\x00\x00\x00' + entry-0014 size 14 + '\x00\x00\x00\x01\x10\x00\x00\x00\x01\x00\x00\x00\x00d' + salvaged : d, ; #endif