Obtenha uma lista de changelists que não foram integradas em um branch específico
-
07-09-2020 - |
Pergunta
Se eu tiver Filial A e Filial B.O Ramo B foi ramificado do Ramo A.Periodicamente, integramos as mudanças da Filial B de volta à Filial A.Existe um comando p4 para listar as listas de alterações da Filial B que ainda não foram integradas à Filial A?Posso pensar em alguns motivos pelos quais isso pode não ser possível, visto que os arquivos de uma lista de alterações não estão necessariamente limitados a um único ramo, mas espero o melhor aqui.
Eu encontrei esta pergunta: É possível listar as changelists que foram integradas a um espaço de trabalho?
...que é o oposto do que eu quero, mas deixa claro que existem maneiras de fazer isso usando vários comandos.Posso pensar em algumas maneiras de usar vários comandos para conseguir o que desejo, mas antes de seguir esse caminho, gostaria de ter certeza de que não há uma maneira simples de fazer isso.
Solução
Você deseja usar o comando 'interchanges'.Atualmente não é suportado (a partir da versão 10.2), mas 'intercâmbios de ajuda p4' fornecerão o uso da linha de comando para a ferramenta (atualmente está disponível apenas na linha de comando).Não me lembro especificamente qual versão este comando foi introduzido.
p4 interchanges -b mybranch
Reportará sobre alterações não integradas conforme definido pela especificação do branch.Use '-r' como faria com 'p4 integ' para reverter o mapeamento de ramificação.As especificações de arquivo também podem ser fornecidas na linha de comando se você não tiver uma especificação de ramificação:
p4 interchanges //depot/main/... //depot/RelA/...
Reportará sobre mudanças não integradas do principal para o RelA
Como acontece com qualquer recurso não documentado/sem suporte, você precisa ter cuidado com a saída.Pode haver algumas situações que façam com que informações imprecisas sejam retornadas.Minha experiência com esse comando, entretanto, tem sido ótima.O comando é brevemente descrito no livro "Practical Perforce" de Laura Wingerd.O que quero dizer é que esse comando provavelmente chegará à ajuda geral muito em breve.
Espero que isto ajude.
Outras dicas
O comando de intercâmbio exibe o resultado como abaixo
Altere o número da #Changelist em #Date por #Person@#Workspace #Description.
Se você precisar exibir colunas seletivas para processamento posterior (Gerando Relatório).você pode tentar algo como abaixo na caixa Linux/Unix.
p4 interchanges //depot/branch1/... //depot/branch2/... | awk '{print $2"|"$4"|"$6"|"substr($0,index($0,$7)) }'