두 가지 버전의 소프트웨어를 비교하고 서로 비교하십시오.

두 가지 버전의 소프트웨어를 비교하고 서로 비교하십시오.

나는 일부 소프트웨어 버전 1.2.0(버전이라고 부르겠습니다 120)을 가지고 있고 동료들이 이 소프트웨어를 변경했습니다(그들은 소스 코드를 변경하여 소프트웨어에 대한 사용자 정의 모듈을 만들었습니다). 우리는 이를 120-fr버전이라고 부릅니다. 그 이후로 소프트웨어 공급업체는 소프트웨어를 변경했으며 현재는 소프트웨어의 최신 버전이 되었습니다 1.2.6. 나는 사용자 정의 모듈을 버전에서 (소프트웨어는 Java로 제작됨) 1.2.0-fr로 마이그레이션하는 임무를 맡았으며 1.2.6버전에서 원본 소스 코드를 얻었습니다 1.2.0.

1.2.0지금부터 내가 한 일: 1. 나는 다음과 같은 차이점을 만들었습니다 1.2.0-fr.

$: diff 1.2.0/ 1.2.0-fr/ > patch-120-fr.patch
$: cat patch-120-fr.patch | wc -l
> 407
  1. 나는 1.2.0다음의 차이점을 만들었습니다 1.2.6.

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

    $: cat-patch-120-126.patch 화장실-l |

    1265

이제 (내가 아는 한) 동료가 소스 코드에서 만든 첫 번째 파일에 변경 사항이 있고 두 번째 파일에는 공급업체 버전 간에 변경 사항이 적용되었습니다. 내 질문은 1.2.6버전 1.2.0에서 너무 많이 이동하지 않고 사용자 정의 모듈을 버전에 연결하기 위해 이러한 파일을 어떻게 비교합니까 ? 나는 이것을 시도했지만 interdiff행운이 없습니다.

답변1

git을 사용하지 않는 이유가 있나요? 이와 같은 변경 사항을 자동으로 병합하는 데 매우 뛰어나며 설계된 목적을 정확하게 수행합니다. 이는 질문에 대한 직접적인 답변이 아니라 대체 솔루션입니다. diff 대신 git을 사용하면 다음과 같습니다.

  # 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

일부 충돌은 수동으로 해결해야 할 수도 있지만 이는 git 분기 및 병합의 기본입니다...

자세한 내용을 확인하실 수 있습니다여기

관련 정보