diffing duas versões do software, e faça o interdiff

0

Eu tenho algum tipo de software na versão 1.2.0 (vamos chamá-lo 120 ), meus colegas fizeram alterações neste software (eles criaram um módulo personalizado para este software alterando o código fonte do software).120-fr version. Desde então, o fornecedor de software fez alterações no software e a versão mais recente do software é 1.2.6 agora. Minha tarefa é migrar o módulo personalizado da versão 1.2.0-fr para 1.2.6 (o software é feito em Java btw.) E eu tenho o código-fonte original de 1.2.0 version.

O que eu fiz desde agora: 1. Criei diff entre 1.2.0 e 1.2.0-fr por:

$: diff 1.2.0/ 1.2.0-fr/ > patch-120-fr.patch
$: cat patch-120-fr.patch | wc -l
> 407
  1. Eu criei o diff entre 1.2.0 e 1.2.6 :

    $: diff 1.2.0 / 1.2.6 / > patch-120-126.patch

    $: cat patch-120-126.patch | wc -l

    1265

Então, agora (pelo que entendi) Eu tenho as primeiras alterações de arquivos que meus colegas fizeram na fonte e no segundo arquivo Eu tenho alterações entre as versões do fornecedor. Minha pergunta é como posso fazer a diferença entre esses arquivos para anexar o módulo personalizado à versão 1.2.6 , mas sem mudar para muitas coisas da versão 1.2.0? Eu tentei fazer interdiff mas sem sorte.

    
por Krystian 25.01.2016 / 05:47

1 resposta

1

Existe alguma razão para não usar o git? É muito bom mesclar mudanças como essas automaticamente, e é exatamente para isso. Isso não é diretamente uma resposta para a pergunta, mas uma solução alternativa. Usando git em vez de diff, seria algo parecido com isto:

  # copy your original code to a new folder
cp -r 1.2.0 mysoftware_git
cd mysoftware_git/
  # make the original source code a git repository
git init
  # add everything to the repo
git add --all
  # make your first commit
git commit -m 'original source code'

  # make a branch for your colleagues' work:
git checkout -b 1.2.0-fr
  # overwrite the source with the appropriate changes
cp ../1.2.0-fr/* .
  # update and commit
git add --all
git commit -m 'new stuff written by Alice and Bob'

  # switch back to the master branch
git checkout master
  # add the 1.2.6 updates to the master
cp ../1.2.6/* .
git add --all
git commit -m 'Changes to the main software branch'

  # merge the changes from 1.2.0-fr into 1.2.6
git merge 1.2.6-fr

Pode haver alguma resolução de conflito para fazer manualmente, mas esses são os princípios básicos do git branch and merge ...

Mais detalhes podem ser encontrados aqui

    
por 25.01.2016 / 06:04