2013-07-24 1 views
2

현재 프로젝트에서 git을 사용하여 코드를 생성하는 소프트웨어가 사용하는 버전 제어 텍스트 파일을 사용하려고 시도하고 있습니다. 이 문제는 그 자체로는 문제가되지 않습니다. 문제는 코드를 생성 할 때마다 코드가 생성 된 날짜와 내 이름과 같은 속성으로이 파일을 자동으로 업데이트한다는 것입니다.특정 행 집합 이상이 변경되는 경우 git만이 파일을 변경된 것으로 인식하게 할 수 있습니까?

당신은 그것을 이런 식으로 뭔가를 찾고 상상할 수 : 내가 원하는 무엇

SomeHeader{ 
    -SomeProperty : x 
    -NameOfUserThatGenerateCode: myName 
    -DateTimeCodeGenerated: 2013-07-23 06:28 
    -SomeOtherProperty: y 
} 

는, 이름 및 CodeGeneration 시간을 모두 변경해야하는 경우에는 "괜찮이다"라는 말을 자식에게 할 수있는 방법입니다 (예 : 변경 사항은 무시하십시오.)하지만 "SomeProperty"가 "z"라고 변경되면주의하십시오.

두 번째 경우에는 업데이트 된 자동 생성 파일을 사용하여 전체 파일을 커밋합니다.

어쨌든 그럴 수 있습니까? 자식 파일이 "파일"수준에서 변경된다는 것을 알고 있지만, 파일 변경 내용을 비교하려고 할 때만 사용할 수있는 사전 처리 훅이있을 수 있기를 바랍니다.

신경이 쓰이는 사람들을 위해이 기능을 사용하면 제어 rhapsody 파일의 버전을 적절하게 변경할 수 있습니다.

+0

누군가가 이미 질문 : http://stackoverflow.com/questions/12382447/can-git-ignore-specific-lines-matching-a-pattern – Udy

+0

나는 그 stackoverflow 기사를 보았습니다 ... 그렇지 않습니다. 나는 "특별한"속성들을 제거 할 수 없기 때문에 내가 원하는 것을 확실히한다. 나는 VonC의 반응이 효과가 있는지 알아보기 위해 노력할 것입니다. – Aerophilic

답변

2

나는 추천 :

  • 을 (버전하지 의미 개인 파일) 해당 파일의 사본을 유지 : 사람들은 선언 content filter driver로,
  • clean 스크립트를 복사에 소프트웨어 코드를 생성하는 것 .gitattributes file (자세한 내용은 Git Pro book입니다.)

http://git-scm.com/figures/18333fig0703-tn.png

아이디어는 에 해당 스크립트 검출을위한,git add에 : 그

  • 는 'SomeHeader'속성 파일의 내용
  • 은 if 사본 파일을 보관해야하는 방식으로 변경되었습니다 (이 경우 해당 버전의 파일을 해당 복사본의 내용으로 덮어 씁니다)
  • 해당 파일의 복사본이 크게 변경되지 않은 경우 실제 등록 정보 파일을 수정하지 마십시오. 은 "사본을 보관"부분이 git checkout에 자동으로 활성화 smudge 스크립트, 콘텐츠 필터 드라이버로도 자동화 할 수

참고.

+0

Rhapsody가 여러 디렉토리에 많은 파일을 가지고 있기 때문에이 접근 방식이 효과적 일 수 있다고 생각합니다. 구현하는 데 어려움이있는 것처럼 보입니다. 내가 대신 할 것이라고 생각하는 것은 변경된 부분 만 필터를 통해 "삭제"하여 변경되지 않은 부분 만 저장소에 있도록하는 방법을 찾는 것입니다. – Aerophilic

관련 문제