CVS와 GIT 모두에서 프로젝트를 추적하고 있습니다. CVS가 .git 폴더를 무시하면 GIT는 모든 CVS 하위 폴더를 무시합니다. GIT 저장소가 git cvsimport
으로 생성되었으므로 둘 다 동일한 기록을 사용합니다. 제외 꽤 잘병렬로 키워드 확장을 처리하는 방법 GIT + CVS 프로젝트
작품 :
일부 파일은 cvs update
에 확장 얻을 CVS 스타일의 키워드를 가지고있다. 그런 다음 GIT가 변경 사항으로 표시됩니다.
키워드 확장을 삭제하면 (cvsimport는 -k
으로 끝났으므로 GIT 저장소에서 확장되지 않음) 더 이상 git에 대한 변경 사항을 표시하지 않고 대신 CVS와 비교할 때 변경 사항으로 표시됩니다.
CVS에서 확장 된 상태로 유지하는 방법이 있습니까? 그러나 GIT에서 변경되지 않은 상태로 확장되지 않는 방법이 있습니까?
내 부분 용액 : 제가
.gitattributes
*.txt filter=ignId
.git/설정 지정 필터를 설정 .gitattributes 및 .git/구성을 사용
[filter "ignId"]
clean = ./ignId.sh %f
smudge = cat
ignId.sh
변경으로#!/bin/bash
sed -e "[email protected]\\\$Id:[^\\\$]*@\\\[email protected]" $1
하고 git diff
에서 작동하며 아마도 git commit
에 (하나 아직 시도하지 않은), 그러나 git status
는 여전히 파일을 보여줍니다.
git status
변경 사항을 무시하려면 어떻게해야합니까?
업데이트 : 는 여기 Why does 'git status' ignore the .gitattributes clean filter?이 git status
는 필터링 된 출력을 표시 할 수 없다는 점을 참조하십시오. git add
다음에 올바른 준비 파일 만 표시됩니다. 그러나 이것을 틀린 것으로 자유롭게 느껴보십시오.
만약 당신이 그들을 자식에게 커밋을 확장? AFAIR "Id"는 파일에서 다른 것이 변경된 경우에만 변경되어야합니다. 경미한 소음은 있지만 치명적이지는 않습니다. – max630
파일 변경 -> git으로 체크인 -> cvs로 체크인 -> 키워드 확장 -> git AGAIN으로 체크인하십시오. 자식은 커밋 된 커밋을 더 많이 가질 것이므로 처음부터 자주 호출됩니다. 거의 모든 파일 변경은 하나가 아닌 2 개의 커밋을 생성합니다. –