2017-02-23 10 views
0

2 가지 버전 (원본과 수정본 중 하나)이있는 SAPUI5 (javascript 및 xml) 프로젝트가 있습니다. 원본 코드를 업그레이드 할 때 이후에 동일한 수정 사항을 다시 적용 할 수 있도록 모든 변경 사항을 문서화/로그 (단어?)해야합니다.동일한 자바 스크립트/XML 프로젝트의 2 가지 버전을 비교하고 문서화해야합니다.

또한 프로젝트는 GIT 저장소 (Bitbucket)에도 있지만 초기 커밋에는 초기 버전이 없으며 이미 수정 된 버전이 있습니다.

이 작업을 수행하는 것이 가장 좋은 방법이라고 생각하십니까?

답변

1

사용 git diff 또는 Beyond Compare 같은 소프트웨어, 감사합니다.

2

git diff <commit hash 1> <commit hash 2>으로 차이점을 볼 수 있습니다.
git cherry-pick으로 변경 사항을 한 커밋에서 다른 커밋으로 적용 할 수 있습니다.

1

나는 당신이 가지고있는 저장소에서 두 버전을 추출합니다.

일단 둘 다 설정하면 diff -c old_version new_version > versions.diff 수 있습니다.

하나 개 자식의 repo에서 그들을이있는 경우, 수 git diff old_commit:path/to/the_file path/to/the_file > versions.diff

그 후, 당신이 할 수있는 patch -o updated_version old_version versions.diff

updated_version 적용 변경이있을 것이다. (diff 파일을 git apply으로 보낼 수도 있습니다.)

이 방법은 업데이트가 필요한 라인 주변에 충분한 컨텍스트가 유지되는 경우 (파일의 다른 부분이 독립적으로 변경 될 수 있음)에 사용됩니다.

보다 일반적인 경우에는 변경 내용을 이해하고 간단한 문자열 비교 이상의 특정 구조를 찾는 지능형 스크립트를 작성해야합니다.

XML의 경우 XSLT 변환은 자연 스럽거나 좋아하는 언어와 XML 처리 기능을 사용하는 것으로 보입니다. 노드 구조 레벨 (예 : XPath 사용)에서 작동하는 스크립트는 diff이 실패하는 XML 형식 변경에 영향을받지 않습니다.

자바 스크립트의 경우 더 어려워서 변경 사항의 특성에 따라 다릅니다. JS 소스 파일과는 달리 JS 코드를 원숭이 패치하는 것이 더 강력한 접근 방법 일 수 있습니다.