Eu tenho dois arquivos - fileWithMyFix.c e fileCustUpdated.c. Fiz minhas correções no filewithmyfix, mas não sabia que um cliente estava atualizando o mesmo arquivo para fazer outras (alterações não relacionadas).
Eu preciso empurrar minhas alterações em seu arquivo. Um patch plano não parece estar funcionando, pois existem diferenças em ambos os arquivos. Se eu diferenciá-los e aplicar esse patch, ele tenta reverter fileCustUpdated.c para corresponder a fileWithMyFix, mas acaba criando uma bagunça.
Existe uma maneira de identificar partes específicas do arquivo para corrigir? Eu tenho que comparar fileWithMyFix.c contra um arquivo intocado fresco do svn, e então aplicar o patch dessa maneira? Eu acho que os números de linha não se alinharão e haverá problemas lá também.
Edit - Eu posso estar fazendo o diff ao contrário, mas deixei ele fazer a reversão e ele aplicou o patch corretamente. Nova pergunta - de que maneira faço o diff para evitar isso?
Você tem que comparar seu arquivo modificado com a versão não modificada. Se houver diferentes opções para o formato de saída do diff, crie um diff unificado ou um diff de contexto. Esses formatos contêm algumas linhas de contexto ao redor das linhas modificadas. A
patch
ferramenta normalmente encontrará as linhas a serem modificadas, mesmo que os números das linhas tenham sido alterados.Se o arquivo estiver em SVN, você pode usar dois espaços de trabalho e confirmar a versão do cliente em um espaço de trabalho e, em seguida, atualizar o espaço de trabalho que contém sua versão modificada. Isso deve mesclar as alterações do cliente em seu arquivo e (depois de possivelmente resolver os conflitos) finalmente você pode confirmar seu arquivo. que agora deve ter todas as modificações nele.