2010-08-05 4 views
10

XML 파일을 diff 및 병합 할 수있는 오픈 소스 버전 제어 도구를 찾고 있습니다.XML로 버전 관리 diff 및 병합

내가 그런 도구를 찾아야하는 어려움은 노드와 라인을 비교하는 XML 파일의 올바른 병합이 필요하다는 것입니다.

아이디어가 있으십니까? 감사합니다.

+0

가능한 솔루션 : [무료 Xml Diff/Merge 도구] (http://stackoverflow.com/questions/1871076), [XML Diff and Merge] (http://stackoverflow.com/questions/430001) –

답변

2

내가 과거에 사용했던 것은 diffxml입니다. svn 또는 git와 같은 VCS에 대해 diff 명령으로 사용할 수 있습니다.

6

불행히도이 문제에 대한 해결책은 하나도 없습니다. XML diffing은 다른 것으로 생각하는 것에 매우 민감합니다. 하나의 경우 자식 노드의 순서가 중요 할 수도 있고 다른 경우에는 (심지어 같은 파일에있을 수도 있음) 무의미 할 수도 있습니다.

XMLUnit을 살펴보십시오. 단위 테스팅을 목표로하고 있지만 완벽한 XML 차이 인식 엔진입니다. 두 노드가 비교 대상인지 결정한 다음 (코드에서) 발견 된 모든 잠재적 차이를 어떻게 처리해야하는지 (즉, 애플리케이션에서 실제인지 아닌지)를 지정해야합니다. 그것은

  • 속성 순서
  • 속성 수는
  • 자식 노드 순서가 명시 적 속성 대
  • 암시 자식 노드의
  • 번호 값
  • 주석을 포함하여 "차이 이벤트"의 완전한 목록을 감지 차이점
  • doctype 차이점
  • namespac e 차이

그리고 더 많이. 이들 중 어느 것도 귀하의 신청서에 중요하거나 중요하지 않을 수 있으며 귀하 만이 결정할 수 있습니다. 볼만한 가치가 있지만, 원하는 것을 얻으려면 약간의 노력이 필요합니다.

1

VCS의 하위 집합 인 diff 도구를 찾고 있습니다. 모든 VCS '는 파일을 diffing하기 위해 외부 프로그램을 사용할 수 있습니다. 외부 diff-tool은 무엇이든 될 수 있기 때문에 두 개의 XML 문서를 파싱하고 비교할 수 있도록 작성된 스크립트 일 수도 있습니다.

내가 찾고있는 것을 쉽게 찾을 수 있는지는 잘 모르겠지만, 잘 모르겠습니다.

-2

다른 사람들은 vcs가 아니라 좋은 diff 도구가 필요하다고 지적했습니다.

불행히도 XML을 지원하는 그래픽 diff 도구에 대해 들어 보지 못했습니다. 그래서 (winmerge 또는 k3diff와 같은) 일반적인 diff 도구를 사용하고 나서 xml이 원하는 xml 유효성 검사 도구를 사용하여 병합 된 결과를 확인합니다.

-1

더미/게으른 사용자의 경우 모두 하나의 도구로 간단해야합니다. API 또는 콘솔 프로그램이 적합하지 않습니다. 오픈 소스 세계에는 존재하지 않는 것처럼 보입니다.

Clearcase는 할 수 있지만 값 비쌉니다. Oxygen은 병합 할 수 있지만 무료가 아닙니다.

+1

아마도 이것을 질문 업데이트 섹션으로 바꾸십시오. 이것은 답이 아닙니다. – firegurafiku

+0

콘솔 프로그램은 하나의 명령 만 수행하면 완벽합니다. – Mike76

2

Project: Merge이 정확한 문제를 해결하기 위해 설계되었습니다. SCM 소프트웨어를 통해 XML 파일을 비교하고 병합합니다.

XML은 무료가 아니지만 XML을 비교하고 병합 할 수 있다고 주장하는 다른 도구보다 훨씬 저렴합니다.