Pergunta

Eu tenho um arquivo que eu preciso para mover que já está sob forçosamente. Depois mudou-se ele precisa de alguma edição - atualização do pacote, etc - adequada à sua nova localização. Devo enviar o changespec movimento e reabri-lo para editar ou eu posso fazer isso de uma só vez? Se sim, qual é a seqüência apropriada de eventos?

Foi útil?

Solução

Eu tenho feito isso antes de uma só vez, mas dependendo do seu processo de criação, eu recomendo contra ela. O que eu geralmente faço é esta:

  1. Mover o arquivo.
  2. Se o movimento precisa de uma mudança, a fim de compilação, abri-lo para editar e fazer essas mudanças.
  3. Enviar as mudanças, dizendo forçosamente para reabrir os arquivos para edição.
  4. Faça as alterações para caminho, etc., que não causam erros de compilação, mas deve ser atualizado.
  5. Enviar essas mudanças com uma descrição apropriada.

Se você quiser, no entanto, você poderia apenas fazer todas as alterações no passo (2) acima. Perforce pode mudar a bandeira para o novo arquivo de integrar a acrescentar, mas ele ainda se lembra o caminho de origem para o arquivo.

Editar: método melhor

Percebi que muitas vezes usam um método diferente, mas a ideia de "movimento" do arquivo me distrair. Então, eu recomendaria estes passos em vez disso:

  1. Integrar o arquivo para o novo caminho / nome, deixando o arquivo anterior lá. Estou assumindo que isso não vai quebrar o seu processo de criação.
  2. Enviar o novo arquivo, verificando-lo novamente para editar após a apresentação.
  3. Faça as alterações necessárias para o novo arquivo, e para o projeto de modo que você está usando o novo arquivo.
  4. Enviar as edições para o novo arquivo.
  5. [Opcional] Pode ser necessário verificar através especificações do ramo para ver se você precisa mapear o arquivo antigo para o novo, em todas as filiais.
  6. Criar uma lista de alterações para apagar o arquivo antigo, e submetê-lo algum tempo depois.

Este método permite que as edições a ser limpa separada da renomeação / movimento, sem nunca sair do projeto em um estado que não irá compilar.

Além disso, por que esperar para a etapa 6? Às vezes, especialmente em projetos maiores, você pode querer mover um arquivo que outra pessoa está editando. Perforce vai prestativamente dizer-lhe isto. Ao esperar para excluir o arquivo, você permitir que o seu colega de trabalho (s) para concluir as edições e submeter sem a necessidade de mover o seu trabalho manualmente. Após as edições são submetidos, eles podem ser integrados no novo arquivo e, em seguida, o antigo pode ser excluído com segurança.

Outras dicas

Enviar a mudança movimento e reabra para editar (você pode usar a opção de reabrir também). Isso é muito mais legível para o usuário no histórico de alterações.

Além disso, as versões recentes do Perforce fazer executar verificações de alterações em arquivos após resolução. Então, pode haver queixas edição de arquivos após algumas operações resolver foram concluídos.

Eu diria sempre enviar primeiro e depois editar. É muito mais limpo e torna o que é mais óbvias que acontecem em seu repositório. Em seguida, basta fazer o checkout o arquivo no novo local e fazer quaisquer mudanças. Isso também faz com que seja muito mais óbvio que as mudanças foram feitas no novo local e tudo o que ao trabalho depois de renomear.

Sim, pode. Basta reabrir para editar o arquivo ramificada (ou seja, o novo). Em P4Win, há um menu de contexto para isso ( "re-aberto para editar").

"com segurança" é provavelmente um ponto importante aqui. Depois de renomear ou mover o arquivo, ele vai ter um número de revisão de "1" que se parece com um novo arquivo para o seu cliente Perforce. Claro, os administradores serão capazes de obter a sua história antes, mas se o histórico de edição / versão do arquivo é importante para você que é um pouco mais difícil de obter a revisão mais antiga.

Update:. Graças a Commodore Jaeger e Greg Whitfield para esclarecer comentários

Isto não foi fácil para rastrear sobre o que o One True Resposta é, mesmo de apoio Perforce, então eu percebi que eu atualizar todos sobre o que encontramos:

  • Perforce armazena todas as versões de cada documento na base de dados.
  • Se for salvar o arquivo como tipo "" ou "", em seguida, ele armazena os diffs de uma versão do arquivo para outro e não o arquivo inteiro.
  • Se você verificar um arquivo, não fazer alterações a ele, e então re-enviar, ele irá salvar como uma nova versão com 0 diffs. Esta é configurável e P4 pode ser configurado para ignorar itens changelists sem quaisquer diffs reais. Você pode forçar esse comportamento, selecionando "arquivos inalterados Reverter ..." antes de submeter uma lista de alterações.
  • Use "Rename / Move ..." para mover arquivos em P4 para que ele possa rastreá-los. Não copiá-los utilizando o Windows Explorer e, em seguida, re-adicioná-los em P4.
  • Se você usar o "Rename / Move ..." função a partir do menu de contexto, o "novo" arquivo mostrará um número de revisão de "1" como se fosse um novo arquivo.
  • No entanto, desde P4 salva cada função executada em um arquivo, você pode realmente chegar a qualquer revisão anterior (e até mesmo recuperar "apagado" arquivos) com o comando CLI "p4 filelog -i"
  • Se você quiser chegar ao histórico de revisão de um arquivo movido ou renomeado e você não for um administrador, você pode clicar com o botão direito e selecione o seu "gráfico de revisões", que mostra a cada versão de um arquivo, mesmo quando mudou-se entre os ramos .

De acordo com suporte Perforce, mais fácil de rastreamento de histórico de revisão através de filiais ou de pasta move é um recurso frequentemente solicitado e está em seu roteiro atual.

A resposta de Perforce:. No momento, não há uma maneira de mover / renomear / integrar arquivos e ainda manter a história exato do arquivo

No entanto, se você tivesse que escolher "Integrar ..." clicando com o botão direito sobre a pasta que você deseja compartilhar, as versões dos arquivos da pasta recém-ramificada e arquivos subjacentes terá início a partir de revisão # 1, mas a história da integração entre a pasta ramificada e arquivos subjacentes ea pasta original e arquivos subjacentes permanecerá através do qual você pode rastrear o histórico de revisão dos arquivos.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top