In SourceTree, when highlighting a changed file in preparation for a commit, there is a diff displayed in a neighboring pane. In that pane I can stage individual hunks or even individual lines.
However, sometimes the diff engine does a poor job of aligning changes between the last commit and the working directory. So if I attempt to stage/unstage specific lines, they may end up in the wrong place.
Is there a way to set a better diff algorithm?
Regardless of the algorithm, is there a way to manually set which lines correspond to each other, so the diff is more accurate - and allows me to safely separate two (or more) changes into separate commits?