mirror of
https://we.phorge.it/source/arcanist.git
synced 2024-11-29 18:22:41 +01:00
Build correct corpus in copied or moved files
Summary: This problem shows very far away. One of the symptomps is that the contents of a moved file is displayed as added in Differential but it is not a big deal. The real trouble happens when you try to `arc patch` this diff. It tries to both copy the file and to add a new contents (which fails). Fixes T1709. Test Plan: $ git mv a b $ git commit -m. $ arc diff --only $ git reset --hard HEAD^ $ arc patch --diff # of the created diff $ arc unit src/parser/__tests__ Reviewers: epriestley, btrahan Reviewed By: btrahan CC: aran, Korvin, boris, mroch, slawekbiel Maniphest Tasks: T1709 Differential Revision: https://secure.phabricator.com/D3524
This commit is contained in:
parent
7119f0c4cc
commit
6929f4e57e
1 changed files with 4 additions and 0 deletions
|
@ -997,6 +997,10 @@ EOTEXT
|
||||||
if ($raw_change->getCurrentPath() == $path) {
|
if ($raw_change->getCurrentPath() == $path) {
|
||||||
$change->setFileType($raw_change->getFileType());
|
$change->setFileType($raw_change->getFileType());
|
||||||
foreach ($raw_change->getHunks() as $hunk) {
|
foreach ($raw_change->getHunks() as $hunk) {
|
||||||
|
// Git thinks that this file has been added. But we know that it
|
||||||
|
// has been moved or copied without a change.
|
||||||
|
$hunk->setCorpus(
|
||||||
|
preg_replace('/^\+/m', ' ', $hunk->getCorpus()));
|
||||||
$change->addHunk($hunk);
|
$change->addHunk($hunk);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
Loading…
Reference in a new issue