2014-09-08 3 views
0

다른 CMS와 함께 작업합니다. 종종 우리는 구성 요소를 업그레이드해야합니다. 그렇게 할 때 저작권이 모두 변경 되었기 때문에 거의 모든 파일이 변경된 것으로 나타났습니다. 종종 이것은 500-1000 개의 서로 다른 파일이 될 수 있으며 하나씩 차례로 진행해야합니다. 제가 알아 내려고하는 것은 "만약 하나의 변화 만 있다면 그것은 2013 년에서 2014 년까지 2 행의 변화가 있습니다 - 그러면 자동적으로이 파일을 준비합니다"라고 말할 수있는 방법입니다. 그런 다음 나중에 실제 코드가 변경된 파일의 변경 사항을 확인하기 만하면됩니다.자동 작성 staging

나는 이것이 가능한 방법을 잘 모르지만 나는 물어볼 것이라고 생각했다.

답변

0

파일을 한 번에 하나씩 실행 한 다음 각 파일에 대한 '자식 diff'의 출력을 분석하여 기준과 일치하는지 확인하고 수행 할 단계 만 수행 할 수 있습니다. 힘내 diff는 각 추가 된 파일의 시작 부분에 "+"를 사용하므로이를 확인하고 계산하면 수정할 행 수가 늘어납니다. 한 줄만 수정하고 "저작권"이라는 단어가 있는지 확인하십시오.

for modifiedFile in $(git ls-files --modified) 

do 

    linesModified=$(git diff ${modifiedFile} | grep ^\+\ | wc -l) 

    if [ ${linesModified} -eq 1 ] 
    then 

     copyrightOnly=$(git diff ${modifiedFile} | grep ^\+\ | grep Copyright | wc -1) 

     if [ ${copyrightOnly} -eq 1 ] 
     then 

     git add ${modifiedFile} 
     fi 
    fi 
done