Às vezes, uso o recurso 'Reconciliar trabalho offline ...' encontrado no P4V IDE do Perforce para sincronizar todos os arquivos em que trabalhei enquanto desconectado do depósito P4. Ele abre outra janela que executa uma 'Diferença de pasta'.
Tenho arquivos que nunca quero registrar no controle de origem (como os encontrados na pasta bin, como DLLs, saída gerada por código, etc.) Existe uma maneira de filtrar esses arquivos / pastas para que não apareçam como "novos"? adicionado. Eles tendem a bagunçar a lista de arquivos nos quais estou realmente interessado. O P4 tem o equivalente ao recurso 'ignorar arquivo' do Subversion?
Respostas:
A partir da versão 2012.1, Perforce oferece suporte à
P4IGNORE
variável de ambiente. Atualizei minha resposta a esta pergunta sobre ignorar diretórios com uma explicação de como isso funciona. Então percebi esta resposta, que agora é supérflua, eu acho.Supondo que você tenha um cliente denominado "CLIENTE", um diretório denominado "foo" (localizado na raiz do projeto), e deseja ignorar todos os arquivos .dll nessa árvore de diretório, você pode adicionar as seguintes linhas à visualização do seu espaço de trabalho para realizar isto:
A primeira linha os remove do diretório "foo" e a segunda linha os remove de todos os subdiretórios. Agora, quando você 'Reconciliar trabalho offline ...', todos os arquivos .dll serão movidos para as pastas "Arquivos excluídos" na parte inferior da exibição de diferenças da pasta. Eles estarão fora do seu caminho, mas ainda podem visualizá-los e manipulá-los se você realmente precisar.
Você também pode fazer isso de outra forma, o que irá reduzir sua pasta "Arquivos Excluídos" para apenas um, mas você não poderá manipular nenhum dos arquivos que ela contém porque o caminho estará corrompido (mas se você apenas os quiser do seu caminho, não importa).
fonte
Reconcile Offline Work
caixa de diálogo. Funciona se você abri-lo por dentro,Advanced Reconcile...
mas é inútil porque em 99,9% das vezes você não precisa ou deseja usar o diálogo avançado.Sim mas.
Perforce versão 2012.1 adicionou um recurso conhecido como p4ignore , inspirado no Git. No entanto, os desenvolvedores do Perforce fizeram uma mudança no comportamento, sem justificativa, que tornou o recurso muito menos útil.
Enquanto o Git pega regras de todos os
.gitignore
arquivos, Perforce não sabe onde procurar até que você especifique um nome de arquivo em uma variável de ambienteP4IGNORE
. Essa liberdade é uma maldição. Você não pode hackear dois repositórios que usam nomes diferentes para seus arquivos ignorar.Além disso, o recurso de ignorar do Perforce não funciona. Você pode configurá-lo facilmente, mas outras pessoas não se beneficiam, a menos que optem explicitamente. Um contribuidor que não o fez pode acidentalmente enviar arquivos indesejados (por exemplo, uma
bin
pasta criada por um script de construção).O recurso de ignorar do Git é ótimo porque funciona na caixa. Se os
.gitignore
arquivos forem adicionados ao repositório ( todos fazem isso ), eles funcionarão para todos. Ninguém publicará acidentalmente sua chave privada.Curiosamente, a documentação do Perforce mostra '.p4ignore' como um exemplo de regra para ignorar, que é ao contrário! Se as regras forem úteis, elas devem ser compartilhadas como parte do repositório.
Perforce ainda poderia ser bom no recurso. Escolha uma convenção para os nomes de arquivo, digamos
p4ignore.txt
, para que o recurso funcione perfeitamente. Elimine aP4IGNORE
variável de ambiente, é contraproducente. Edite os documentos para incentivar os desenvolvedores a compartilhar regras úteis. Permita que os usuários escrevam regras pessoais em um arquivo em sua pasta pessoal, como o Git faz .Se você conhece alguém na Perforce, envie esta postagem por e-mail.
fonte
Isso funciona a partir do Perforce 2013.1, o novo mecanismo P4IGNORE foi adicionado pela primeira vez na versão 2012.1, descrito no blog do Perforce aqui:
Conforme descrito atualmente, você define uma variável de ambiente "P4IGNORE" para um nome de arquivo que contém uma lista dos arquivos a serem ignorados.
Então você pode conferir para ver se gosta.
fonte
Se você deseja uma solução que se aplique a todos os espaços de trabalho sem precisar ser copiada, você (ou seu administrador de sistema) pode recusar o envio desses tipos de arquivo usando linhas como a abaixo na tabela de proteção p4:
Lembro-me de fazer isso antes, mas não tenho as permissões necessárias para testar isso aqui. Confira o guia Sysadmin do Perforce e experimente
fonte
Perforce Streams torna mais fácil ignorar arquivos, a partir da versão 2011.1. De acordo com a documentação, você pode ignorar certas extensões ou certos caminhos em seu diretório.
De
p4 help stream
Isso essencialmente faz o que a resposta de @raven especifica, mas é mais fácil com streams, já que se propaga automaticamente para cada espaço de trabalho que usa esse stream. Também se aplica a qualquer fluxo herdado do fluxo no qual você especifica os tipos de ignorar.
Você pode editar o stream
p4 stream //stream_depot/stream_name
ou clicando com o botão direito do mouse no stream na visualização de stream do p4v.E, como observou @svec, a capacidade de especificar ignorar arquivos por espaço de trabalho estará disponível em breve e, na verdade, está no P4 2012.1 beta.
fonte
A sugestão de Will de usar
.p4ignore
apenas parece funcionar com o plugin do WebSphere Studio (P4WSAD). Eu apenas tentei na minha caixa do Windows local e quaisquer arquivos e diretórios que listei não foram ignorados.A sugestão da Raven de modificar as especificações do cliente é a maneira correta no Perforce. A organização adequada de seu código / dados / executáveis e arquivos de saída gerados tornará o processo de exclusão de arquivos do check-in muito mais fácil.
Como uma abordagem mais draconiana, você sempre pode escrever um gatilho de envio que rejeitará o envio de listas de alterações se elas contiverem um determinado arquivo ou arquivos com uma determinada extensão, etc.
fonte
RESPOSTA HISTÓRICA - não está mais correta. Na época em que isso foi escrito originalmente, era verdade;
Você não pode escrever e fazer check-in de um arquivo que o servidor usará para fazer ignorar regras; O padrão geral do arquivo glob ou regexp é ignorado forçosamente.
Outras respostas têm configurações globais de servidor que são globais (e não por pasta). As outras respostas mostram coisas que podem funcionar para você, se você deseja uma linha em sua visualização por pasta vezes o número de extensões que deseja ignorar nessa única pasta, ou que fornecem esse recurso apenas em plug-ins do WebSphere Studio ou fornecem capacidade para o servidor administradores, mas não está disponível para os usuários.
Resumindo, acho o Perforce muito fraco nessa área. Embora eu aprecie que aqueles que usam o plug-in do Eclipse possam usar
.p4ignore
, e eu acho isso ótimo, isso deixa aqueles de nós que não usam , no escuro.ATUALIZAÇÃO: Veja a resposta aceita para o novo recurso P4IGNORE adicionado em meados de 2012.
fonte
Achei mais fácil reconciliar o trabalho offline usando um script BASH como este:
Eu adaptei este artigo da Base de Conhecimento Perforce .
fonte
Estou procurando uma solução como .p4ignore também (e não vinculada a um IDE em particular). Até agora, a coisa mais próxima que encontrei é p4delta. Parece que fará exatamente o que o pôster original estava pedindo, embora por meio de outra camada de indireção.
http://p4delta.sourceforge.net
Infelizmente, embora isso pareça produzir a lista adequada de arquivos, não consigo fazer "p4delta --execute" funcionar ("Não é possível modificar uma string congelada") e o projeto não foi atualizado no ano. Talvez outros tenham mais sorte.
fonte
Se você estiver usando o plug-in Eclipse Perforce, a documentação do plug-in lista várias maneiras de ignorar arquivos.
fonte