문제

많은 Mac 앱에서 "번들"을 사용한다는 것을 알고 있습니다. 애플리케이션에 단일 파일처럼 보이지만 실제로는 내부에 많은 파일이 들어있는 폴더입니다.

버전 관리 시스템이이를 처리하려면 다음을 수행해야합니다.

  • 디렉터리의 모든 파일을 확인하여 앱이 필요에 따라 수정할 수 있도록합니다.
  • 체크인시
    • 수정 된 커밋 파일
    • 응용 프로그램에서 만든 새 파일 추가
    • 앱에서 삭제되었으므로 더 이상 존재하지 않는 삭제 된 파일로 표시
    • 하나의 원자 적 변화로 관리

      기존 버전 관리 시스템으로이를 처리하는 가장 좋은 방법에 대한 아이디어가 있습니까?이 영역에 더 능숙한 버전 관리 시스템이 있습니까?

도움이 되었습니까?

해결책

Git 및 mercurial과 같은 분산 SCM 시스템의 경우 Matthew가 언급 한대로 문제가되지 않아야합니다.

Subversion 또는 CVS와 같은 중앙 집중식 SCM을 사용해야하는 경우 번들을 소스 제어로 확인하기 전에 압축 (아카이브) 할 수 있습니다.이것은 고통 스러울 수 있으며 추가 단계가 필요합니다.Tapestry Central에 이에 대한 좋은 블로그 게시물이 있습니다.

Mac OS X 번들과 Subversion

이 기사는 아카이브를 관리하는 루비 스크립트를 보여줍니다.

다른 팁

디렉토리 구조가 아닌 파일을 기반으로하는 특정 버전의 수은.따라서 본격적인 저장소 인 작업 트리는 각 수준에서 .svn 폴더를 뱉어 내지 않습니다.

또한 애플리케이션이나 다른 번들처럼 교체 된 디렉토리가 개정 관리하에 특정 파일 이름을 가진 콘텐츠를 계속 찾을 수 있음을 의미합니다.파일 이름은 모니터링됩니다. inode 나 그런 멋진 것은 아닙니다!

분명히 새 파일이 번들에 추가되는 경우이를 저장소에 명시 적으로 추가해야합니다.마찬가지로 번들에서 파일을 제거하려면 'hg rm'을 사용해야합니다.

아직 OS X 용 Mercurial GUI는 없지만 추가 / 커밋 / 병합 만하면 명령 줄을 사용하는 것이 그리 어렵지 않습니다.

향후 업데이트 :

내가 기억한다면, SVN에서 번들을 관리하는 문제는 번들을 만들 때마다 모든 .svn 폴더가 지워지는 것입니다.이제 SVN이 루트의 단일 .svn 폴더에 모든 것을 저장하므로 더 이상 문제가되지 않습니다.

2013 년 10 월 iWork (Pages 5.0 등) 이후로이 스레드를 다시 일광으로 되 돌리면 더 이상 '플랫 파일'(압축)에 저장할 수 없지만 번들로만 저장할 수 있습니다.

문제는 그러한 구조 (svn의 경우) 내부에 버전 제어 숨겨진 폴더를 생성하는 것이 아니라 Mark 는 질문에서 다음과 같이 말합니다. (응용 프로그램,이 경우 iWork에 의해) 추가되거나 제거 된 파일의 자동 업데이트를 수동으로 수행 할 필요가 없습니다.

분명히, iWork와 Apple은 iCloud 유용성에만 문제가 있습니다.그러나 Mercurial repo에 .pages, .numbers 및 .keynote를 저장하는 정품 케이스가 있습니다.업데이트 후 모든 것을 날려 버립니다.무엇을해야합니까?

부록 :

나를 위해 트릭을 수행하는 'hg addremove'를 찾았습니다. 라코 디스

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top