@@ -135,8 +135,13 @@ const compareHashes = ({ addedMap, deletedMap }: AddAndDeleteMaps): StringMapsFo
135
135
if ( addedMap . size && deletedMap . size ) {
136
136
// the remaining deletes didn't match the basename+hash of an add, and vice versa.
137
137
// They *might* match the basename of an add, in which case we *could* have the "move, then edit" case.
138
- const addedBasenameMap = new Map ( [ ...addedMap . entries ( ) ] . map ( hashEntryToBasenameEntry ) ) ;
139
- const deletedBasenameMap = new Map ( [ ...deletedMap . entries ( ) ] . map ( hashEntryToBasenameEntry ) ) ;
138
+ // the entry might be sha,basename OR sha,basename,type,parent
139
+ const addedBasenameMap = new Map (
140
+ [ ...addedMap . entries ( ) ] . filter ( hashEntryHasNoTypeInformation ) . map ( hashEntryToBasenameEntry )
141
+ ) ;
142
+ const deletedBasenameMap = new Map (
143
+ [ ...deletedMap . entries ( ) ] . filter ( hashEntryHasNoTypeInformation ) . map ( hashEntryToBasenameEntry )
144
+ ) ;
140
145
const deleteOnly = new Map < string , string > (
141
146
Array . from ( deletedBasenameMap . entries ( ) )
142
147
. filter ( ( [ k ] ) => addedBasenameMap . has ( k ) )
@@ -289,6 +294,7 @@ const toKey = (input: FilenameBasenameHash): string => `${input.hash}${JOIN_CHAR
289
294
290
295
const hashEntryToBasenameEntry = ( [ k , v ] : [ string , string ] ) : [ string , string ] => [ hashToBasename ( k ) , v ] ;
291
296
const hashToBasename = ( hash : string ) : string => hash . split ( JOIN_CHAR ) [ 1 ] ;
297
+ const hashEntryHasNoTypeInformation = ( [ k ] : [ string , string ] ) : boolean => k . split ( JOIN_CHAR ) . length === 2 ;
292
298
293
299
const getResolverForFilenames =
294
300
( registry : RegistryAccess ) =>
0 commit comments