나는 우리 웹 사이트의 코드를 유지하기 위해 SVN을 사용하는 팀에서 일하고 있습니다. 이 팀은 2 년 동안 SVN을 사용해 왔지만 최근에 SVN 사례를 철저히 조사했으며 현재는 조금 다른 방식으로 운영됩니다.병합 기록을 삭제하면서 모든 기록을 보존하면서 생생하게 시작할 수 있습니까?
으로 배경 정보 :
trunk
자동 배치 생산하는 것입니다, 이것은 항상을 의미 깨끗합니다. 작은 대부분의 버그 수정, 사소한 조작은, (1 페이지) 기능은 우리는 그들이 모두 XXX-DEV 곳 XXX라는 것, 더 광범위한 기능 개발에 사용되는 여러 다른 지점을 가지고xxx-dev
에 근무하는
dev
가된다 지형지 물의 이름입니다.매일 동기화 병합은
trunk
-> 다른 모든 분기에서 실행됩니다. 이것은 약간 지루하지만 우리 지점을 동기화하여trunk
에있는 것을 유지하면서 동시에 동기화 할 때 해결해야하는 충돌을 최소화합니다. 변경 사항은 다른 사람들이 매일 트렁크에 배포하므로 모든 지점을 최신 상태로 유지해야합니다. 난 거북이를 사용하고 수정되지 않은 모든 수정본이trunk
의 분기로 병합되도록 개정 범위 상자를 공백으로 남겨 둡니다.
위의 정보가 주어지면 모든 병합 기록을 모두 삭제하고 코드 trunk
의 새로운 코드 사본을 사용하여 해당 신선한 trunk
을 복사하여 모든 지점을 다시 만들고 우리가 진행하는대로 진행하는 것이 가장 좋습니다. 하지만 우리가 매일 동기화를하기 시작하기 전의 나쁜 병합 기록은 없습니다.
내 질문 : 내가 설명한대로, 우리는 단지 trunk
디렉토리의 svn : mergeinfo 속성을 재귀 적으로 삭제해야합니까? 그게 문제가 되겠습니까? 나는 trunk
이 저장소의 루트 디렉토리 아래에 있다고 생각하기 때문에 우리는 몇 가지 이유로 우리가 필요했던 이전 병합 기록을 볼 수있을 것입니다.
내가 잘못했거나 SVN 정책에 잘못된 것이있는 경우 알려주세요.
감사합니다.
편집 : 내가보고있어 충돌이 svn:mergeinfo
건물 자체 ...에 될 일이 있음을 언급한다 그래서 나도 몰라 svn:mergeinfo
을 수정했다 나쁜 병합 거기에 어떻게 또는 왜 누구에 팀은 실수로이 디렉토리의 svn:mergeinfo
속성을 삭제했지만 이번에는 모든 문제를 일으키는 것으로 보이는 변경 사항은 삭제 된 svn:mergeinfo
속성입니다.
이 삭제 된 svn:mergeinfo
은 하위 디렉토리에 있지만 분기의 루트 디렉토리에는 없습니다.
MergeInfo를 수정하고 싶습니다. 그러나 무엇이 잘못 되었는 지 100 % 확신하지 못합니다. 나는 내가 만든 변경이 나중에 이상한 병합 문제를 일으키지 않을 것이라고 확신하지 못한다. MergeInfo를 잘못 쓰면 나중에 병합 파일이 병합되거나 변경되지 않습니다. – BumbleShrimp
내 질문을 몇 가지 관련 정보로 업데이트했습니다. 내가하려고하는 병합은 mergeinfo를 삭제하는 리비전을 하위 디렉토리에 병합하려고 시도하는 것입니다. 수정본에 거북이가 이미 병합 된 것으로 표시되어 이상한 점이 있으므로 다시 병합하려고하는 이유를 알 수 없습니다. 또한 우리는 미래에 Mercurial로 전환하여 이러한 병합 문제를 피하는 방법을 모색하고 있습니다. 그러나 지금은 SVN을 사용하고 있습니다. – BumbleShrimp
Hey Michael, 나는 mergeinfo를 재귀 적으로 삭제 한 다음, 백업 된 값을 사용하여 각 브랜치의 최상위 레벨에 다시 추가했습니다.이로 인해 우리의 동기화 병합이 다시 가능 해졌고 올바른 조치였던 것처럼 보였습니다. 그러나 이제는 하위 트리에 병합 된 수정 사항이 더 이상 병합되지 않은 것으로 표시됩니다. 그게 가능한지 아십니까? 또는 하위 트리에 병합하면 최상위 디렉토리에 'mergeinfo'가 추가됩니까? – BumbleShrimp