Forçosamente rastreia deltas exclusivos para um conjunto de alterações ou apenas armazena o arquivo inteiro?

StackOverflow https://stackoverflow.com/questions/4272022

  •  28-09-2019
  •  | 
  •  

Pergunta

Tentei mesclar algum trabalho que um desenvolvedor fez em um branch funcional em um branch estável.Os arquivos a, b e c foram alterados em pelo menos uma dúzia de conjuntos de alterações desde que o ancestral comum das ramificações STABLE e HEAD foi separado.

Eu esperava que, como esse desenvolvedor alterou cinco linhas em cada arquivo a, b e c, quando eu integrasse do HEAD ao branch STABLE, eu receberia suas alterações em meu conjunto de alterações pendente, que eu poderia então revisar e confirmar.

Em vez disso, parece que ele pegou todas as alterações que ocorreram no arquivo A, desde que os dois foram ramificados, e aplicou todas as alterações que também existiam na cópia de trabalho do meu colega.

Em outras palavras, parece não haver nenhum registro em um conjunto de alterações forçoso, do que meu colega realmente mudou, versus o que o arquivo continha anteriormente.

Se eu navegar pelos conjuntos de alterações enviados, posso ver a diferença entre a versão do arquivo do meu colega e a versão imediatamente anterior.Mas então, ao que parece, isso não determina o que acontece na fusão.

Um conjunto de alterações não significa "um conjunto de alterações feitas entre a revisão X e a revisão X + 1 de um arquivo"?Alguém pode me ajudar a entender o que significa "integrar um conjunto de alterações" quando, na verdade, o que parece é que o Perforce não rastreia alterações, ele rastreia arquivos.

É perfeitamente possível que eu esteja fazendo tudo errado, e apreciaria qualquer indicação de como você pode mesclar com precisão e segurança entre ramos de trabalho do Perforce e ramos estáveis, sem coisas que você não deseja integrar ao filial estável sendo integrada.Parece que não importa quão simples sejam as alterações feitas no produto, a mesclagem não funciona para mim.

Foi útil?

Solução

Forçosamente faz salvar mudanças para texto arquivos como deltas (os arquivos binários são salvos integralmente sempre que uma alteração é enviada).Parece que você não está restringindo adequadamente o intervalo de revisões durante sua integração.

Você diz que o ramo de trabalho tem "... foi alterado por pelo menos uma dúzia de conjuntos de mudanças desde o ... ramos foram separados." Vamos chamá-los de changelists 1-12.Se bem entendi, você está tentando integrar as modificações feitas em apenas uma dessas listas de alterações, não em todas.

Durante uma operação de integração simples, o Perforce assumirá que você deseja integrar todas as alterações que foram enviadas desde que a ramificação foi feita.Se você quiser apenas um subconjunto dessas alterações, deverá especificar um intervalo de revisão.Portanto, se você deseja apenas integrar as alterações que ocorreram entre as listas de alterações 11 e 12, você deve especificar esse intervalo de revisão conforme mostrado na captura de tela.(Observação:o intervalo de revisão é inclusivo, portanto, especificar um intervalo de 11 a 12, como faço nesta captura de tela, na verdade incluirá alterações nas listas de alterações 11 e 12.Se você deseja apenas integrar as alterações feitas na lista de alterações 12, insira 12 em ambos os campos do intervalo de revisão.)

Esteja apenas ciente de que os conflitos inevitáveis ​​que surgem podem ser difíceis de resolver, dependendo do grau de divergência entre os ramos e da natureza das mudanças.

alt text

Outras dicas

Você poderia ser mais específico sobre como fez a integração?Meu palpite é que você provavelmente integrou todas as alterações nessa lista de alterações, em vez de apenas nessa lista de alterações.Nesse caso, tudo o que você precisa fazer é especificar a mesma lista de alterações como limite superior e inferior da integração.

É muito fácil fazer isso no cliente visual, mas não tenho certeza da opção exata de linha de comando que você precisa usar.

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