A Apple introduziu um novo tipo de arquivo relacionado ao projeto no Xcode 5: "xccheckout".
Este arquivo está localizado no diretório ".xcodeproj / project.xcworkspace / xcshareddata /" e parece que está relacionado ao sistema de controle de versão do projeto.
Um arquivo de exemplo está aqui: http://pastebin.com/5EP63iRa
Suponho que esse tipo de arquivo deva ser ignorado no VCS, mas não tenho certeza.
Então, aqui estão as perguntas:
- O "xccheckout" deve ser ignorado?
- Qual é seu propósito?
xcode
git
version-control
xcode5
Artem Abramov
fonte
fonte
Respostas:
Você deve fazer o check-in em um
.xccheckout
arquivo Xcode 5 ; em geral, os arquivosxcshareddata
devem ser confirmados.Um
.xccheckout
arquivo contém metadados sobre quais repositórios são usados em uma área de trabalho. Para um único projeto em um único repositório que não faz muita diferença. Mas se você estiver usando um espaço de trabalho que possui vários projetos de diferentes repositórios, a presença de um.xccheckout
arquivo no espaço de trabalho permite ao Xcode saber quais são todos os componentes que compõem um espaço de trabalho e onde obtê-los.fonte
.xcuserdata
portanto, deveria ser incluído..xccheckout
arquivos estão causando alguns problemas insanos no Xcode 6 beta, e eu decidi removê-los do VCS. Parece estar relacionado a algum bug de cache, e acredito que o Xcode pode regenerá-los automaticamente do VCS, a cada vez.O
*.xccheckout
arquivo contém metadados do VCS e, portanto, não deve ser verificado no VCS.Por outro lado: verificar esse arquivo provavelmente não criará dificuldades de mesclagem ou outros problemas.
Se você deseja ignorar este arquivo (o que eu recomendo), adicione esta linha aos do seu projeto
.gitignore
:A solução da Abizern não funcionará para projetos dentro de um espaço de trabalho. Porque, quando você usa um espaço de trabalho, o caminho para o
*.xccheckout
arquivo será:<workspace-name>.xcworkspace/xcshareddata/<workspace-name>.xcchekout
. E na verdade ignora mais do que você gostaria.Edit: Este arquivo existe para gerenciar o conhecimento do Xcode dos possivelmente muitos sistemas VCS em seu projeto, consulte a resposta de Chris Hanson . Para> 99% dos projetos, o arquivo .xccheckout é um exagero na configuração.
fonte
project.xcworkspace/
. Isso pode estar bem por enquanto, mas eu não contaria com isso para novas versões do Xcode..gitignore
que oferece aos desenvolvedores devem não especificar*.xccheckout
Depende. O arquivo contém referências ao repositório remoto que você está usando. Se você estiver usando um VCS centralizado, como o Perforce ou o Subversion, o repositório remoto de todos será o mesmo e você poderá e deve fazer o check-in do arquivo.
Se você estiver usando um VCS distribuído, como Mercurial ou git, mas usando-o como se fosse um CVCS (em outras palavras, todo mundo clonou de um repositório compartilhado diretamente para o espaço de trabalho pessoal em sua máquina), você ainda pode querer verificá-lo no.
No entanto, se você estiver usando um DVCS com todos com seu próprio clone remoto, por exemplo, usando o GitHub em seu padrão de uso padrão, NÃO deseja fazer o check-in deste arquivo. Se o fez, suas solicitações de recebimento solicitarão as configurações do repositório para ser copiado no arquivo xccheckout de todos os outros, mas as configurações do seu repositório serão diferentes das de todos os outros, porque você está usando repositórios remotos diferentes.
fonte
Sim, o
Project.xccheckout
arquivo deve ser confirmado no seu repositório. O Xcode usa esse arquivo para informar aos outros que abrem a área de trabalho toda a lista de repositórios de controle de origem usados pela área de trabalho e o local da cópia de trabalho em relação à área de trabalho, se esses repositórios são Git, SVN ou ambos.Quando você abre a área de trabalho, o Xcode usa o
Project.xccheckout
arquivo para notificar o usuário de que existem outros repositórios que fazem parte da área de trabalho e pergunta qual deve ser retirado. Ao fazer o check-out de repositórios adicionais, o Xcode coloca as cópias de trabalho na mesma estrutura de pastas relativa ao espaço de trabalho que estava quando oProject.xccheckout
arquivo foi gerado.Como Chris Hanson disse, provavelmente não importa para um espaço de trabalho de um único repositório e projeto, mas para assuntos mais complexos será muito útil.
Você pode descobrir mais sobre isso no vídeo da sessão da WWDC 2013 Entendendo o controle de origem no Xcode ; a parte relevante começa em cerca de 15 minutos.
fonte
É isso que eu tenho no meu .gitignore para o Xcode.
Mantém qualquer coisa relacionada ao estado local da maneira como os projetos me procuram fora do repositório.
O arquivo xccheckout está abaixo aqui, portanto não é rastreado no meu sistema por padrão.
O Xcode ficou melhor e separou o que precisa ser compartilhado e o que precisa ser mantido localmente. Por exemplo; essas linhas ignoram os esquemas de construção padrão, o que é bom, porque você pode marcar esquemas de construção específicos como compartilhados e eles são colocados em um diretório que não é ignorado.
Os pontos de interrupção são ignorados, mas você pode marcar pontos de interrupção específicos como compartilhados entre projetos e eles também são colocados em um diretório que não é ignorado.
fonte