Skip to content

Commit feff521

Browse files
committed
fix: diff handles renames on checkout
1 parent 9a35f64 commit feff521

File tree

1 file changed

+11
-4
lines changed

1 file changed

+11
-4
lines changed

cls/SourceControl/Git/Utils.cls

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1677,11 +1677,18 @@ ClassMethod RunGitCommandWithInput(command As %String, inFile As %String = "", O
16771677
set modification = ##class(SourceControl.Git.Modification).%New()
16781678
set modification.changeType = $piece(file, $c(9), 1)
16791679

1680-
set modification.externalName = $zstrip($piece(file, $c(9),2),"<W")
1681-
if (modification.changeType '= "A"){
1680+
set modification.externalName = $zstrip($piece(file, $c(9), 2),"<W")
1681+
if $extract(modification.changeType) = "R" {
1682+
set modification.changeType = "D"
16821683
set modification.internalName = ##class(SourceControl.Git.Utils).NameToInternalName(modification.externalName,,0)
1683-
}
1684-
else {
1684+
set files($increment(files)) = modification
1685+
set modification = ##class(SourceControl.Git.Modification).%New()
1686+
set modification.changeType = "A"
1687+
set modification.internalName = ""
1688+
set modification.externalName = $zstrip($piece(file, $c(9), 3),"<W")
1689+
} elseif (modification.changeType '= "A"){
1690+
set modification.internalName = ##class(SourceControl.Git.Utils).NameToInternalName(modification.externalName,,0)
1691+
} else {
16851692
set modification.internalName = ""
16861693
}
16871694
set files($increment(files)) = modification

0 commit comments

Comments
 (0)