2009-04-10 7 views
3

우리는 새로운 응용 프로그램에 CakePHP를 사용하고 있으며 Mercurial을 소스 제어 도구로 사용합니다. (의욕은 (임의의 디렉토리에 .cvsignore를 사용 CVS) 예를 들면 달리, 루트 디렉토리에 하나 개 .hgignore 파일을 사용합니다.). CakePHP 응용 프로그램의 .hgignore?

내가 소스 컨트롤에서 app/tmp/ 디렉토리의 내용을 제외하고 싶습니다 (그들은 모두 변경 이후 시간 등) 재생 될 수 있지만, 다음 아래의 표준 디렉토리가 tmp (cachelogssessions, tests, 또한 cache/models, cache/persistent는, ...) 새로운에서 누락 될 때부터, .hgignoreapp/tmp/*를 추가 할 수 없습니다 복제본이 hg clone으로 작성되어 오류가 발생합니다.

현재 내 hgignore에 있습니다

app/tmp/logs/*.log 
app/tmp/cache/persistent/cake_* 
app/tmp/cache/models/cake_* 

모든 프로젝트에 사용될 수있는 "표준"을 가지고 좋은 것입니다. 누군가가 완전한 해결책을 제안 할 수 있습니까?

답변

0

질문을 올바르게 이해하면 tmp에있는 파일을 무시하고 tmp에있는 특정 디렉토리의 파일은 무시하고 싶습니다. 그건 바로 다음의 경우에 나는 당신이 사용 그렇게 할 수 있다고 생각 :

syntax: regexp 
^tmp/(?!(cache|logs|sessions|test)) 

, 테스트 세션을 다음 부분은 캐시하지 않는 한, TMP로 시작 아무것도 무시 로그 말한다. 이러한 파일의 경우 :

$ hg stat 
? .hgignore 
? tmp/cache/afile 

내가 그 케이크는 아마에서 소스 제어에있는 기반 ONT 후계자를 해당 파일을 넣어하지 말라고 말하고,하지만주의 할 것이다 :

여기
. 
`-- tmp 
    |-- cache 
    | `-- afile 
    `-- tmpfile 

hg stat 결과 tmp 디렉토리. 빌드 시스템이 만들어야하는 것이 아니라고 확신합니까? 세션은 특히 일시적으로 들립니다.

4

당신은 당신의 .hgignore 파일에

syntax: glob 
app/tmp/** 

을 추가 할 수 있으며 의욕은 그 시점에서 의욕에 의해 추적 파일의 예외으로 app/tmp/ 아래에있는 모든 파일을 무시합니다. 파일 이름 패턴에 대한 자세한 내용은 hg help patterns을 참조하십시오.

는 당신이

% touch app/tmp/cache/.empty 
% touch app/tmp/logs/.empty 
% hg add app/tmp/cache/.empty 
% hg add app/tmp/logs/.empty 

을하고 복제를 만들 그렇다면, 그 디렉토리에 app/tmp/cacheapp/tmp/logs를 만들 수됩니다 디렉토리와 새 파일이 무시됩니다. 그게 니가 원하는 것 같아?

이것은 대부분의 파일을 기본적으로 무시하고 명시 적으로 추가 된 파일 만 추적하기 때문에 $HOME과 같은 내용을 추적하는 데 유용합니다.

+0

정확히 CakePHP를 사용할 때하는 일이지만 Git과 Mercurial은 사용하지 않습니다. 이렇게하면 폴더 구조는 유지되지만 디렉토리의 실제 내용은 저장되지 않습니다. – RFelix

0

내 자신의 체크 아웃 (SVN에서)에서 사이트를 배포 할 때 ./tmp/ 디렉토리에 특정 권한이 있어야했습니다.

전적으로 버전 제어에서 제거했으며 배포 스크립트는 필요에 따라 디렉토리를 만들었습니다.