Qual é a diferença entre "Rollback ..." e "Back Out Submit Changelist #####" no Perforce P4V

198

Quero reverter as alterações de um dos meus checkins. No menu de contexto do botão direito do mouse da lista de alterações específica, existem duas opções:

  • Reversão ...
  • Lista de Mudanças Enviada

Qual é a diferença entre esses dois? Em que situações devo usar qualquer um?

Dave Andersen
fonte
3
Nesse caso, 'Changelist de backup enviado' era a opção certa para minha situação (apenas desejando reverter as alterações do check-in). Obrigado pelas ótimas respostas.
Dave Andersen

Respostas:

222

Ambas as operações restauram um conjunto de arquivos para um estado anterior e são maneiras mais rápidas e seguras de desfazer erros do que usar o p4 obliteratecomando (e você não precisa de acesso de administrador para usá-los).

No caso de "Reversão ...", pode haver qualquer número de arquivos, até mesmo um depósito inteiro. Você pode pedir para reverter para uma revisão, lista de alterações ou rótulo específico. Os arquivos são restaurados para o estado em que estavam no momento da criação dessa revisão, lista de alterações ou rótulo.

No caso de "Lista de alterações enviada para saída #####", a operação de restauração é restrita aos arquivos que foram enviados na lista de alterações #####. Esses arquivos são restaurados para o estado em que estavam antes de você enviar a lista de alterações, desde que nenhuma alteração tenha sido feita nesses arquivos desde então. Se alterações subsequentes tiverem sido feitas em algum desses arquivos, o Perforce informará que esses arquivos estão desatualizados. Você precisará sincronizar com a revisão principal e resolver as diferenças. Dessa forma, você inadvertidamente não descarta as alterações que realmente deseja manter.

Ambas as operações funcionam enviando essencialmente revisões antigas como novas. Ao executar uma "Reversão ...", você está restaurando os arquivos para o estado em que estavam em um momento específico , independentemente do que aconteceu com eles desde então. Quando você executa um "Sair ...", está tentando desfazer as alterações feitas em um momento específico , mantendo as alterações que ocorreram desde então.

Raven
fonte
18
Eu acho que a "Lista de alterações enviadas para backup #####" tentará manter as alterações feitas nos mesmos arquivos após a lista de alterações especificada.
22811 Ian Ringrose
1
@Ian: Boa observação. Quando escrevi isso, pensei na correção imediata de um erro. Como geralmente é o caso, se você perceber que deseja desfazer algo muito mais tarde , fica mais complicado. Eu refinei minha resposta.
Raven #
@IanRingrose Acabei de fazer uma operação de "backout" e parece que não tenta manter as alterações feitas posteriormente. Eu tive que fazer uma sincronização e depois resolver para recuperar as alterações nas quais foram enviadas após o backout.
Gdw2
@ gdw2, eu acho que se você fez uma "reversão" você então não terá a opção de "resolver a fim de obter as alterações de volta em que foram apresentados após o ..."
Ian Ringrose
1
Embora os arquivos sejam restaurados para o estado em que estavam, os metadados não. Tentar reverter uma integração de outra ramificação não permitirá que você faça essa integração novamente, porque os metadados afirmam que já estão integrados.
Will Brode
17

Inverter um envio da lista de alterações

Você não pode desfazer um envio bem-sucedido da lista de alterações, mas pode reverter as alterações enviadas anteriormente de duas maneiras:

A reversão restaura um arquivo ou conjunto de arquivos para uma lista de alterações, data ou revisão especificada. Quaisquer alterações feitas após esse momento não são mantidas. A retirada remove alterações específicas feitas em uma determinada lista de alterações, data ou revisão, mas permite que o usuário mantenha as alterações feitas nas revisões subsequentes.

Para obter detalhes, consulte https://www.perforce.com/perforce/r13.1/manuals/p4v/Working_with_changelists.html

Smartmarkey
fonte
8

A restauração restaura ou desfaz nossas alterações. A maneira como faz isso é que, P4 desfaz as alterações em uma lista de alterações (padrão ou nova) em nossa área de trabalho local. Em seguida, temos que enviar / confirmar esta lista de alterações de backup, assim como fazemos outras listas de alterações. A segunda parte é importante aqui, como ela não faz o backup automático da lista de alterações no servidor, temos que enviar a lista de alterações (o que faz sentido depois que você faz isso, mas eu estava inicialmente assumindo que ele faz isso automaticamente).

Conforme apontado por outras pessoas, a reversão tem maiores poderes - pode restaurar alterações em uma data específica, lista de alterações ou revisão #

user841717
fonte
4

Retroceder ... solicitará que você selecione uma pasta para retroceder, ou seja, funcionará em pastas específicas e poderá retroceder para rótulos, listas de reprodução ou datas. O backup funciona nos arquivos em listas de alterações específicas.

akf
fonte
4

Explico isso aos usuários comparando as listas de alterações do Perforce com uma pilha (das estruturas de dados).

O backup remove um item de qualquer lugar da pilha.

A reversão remove n itens da parte superior da pilha.

gmaghera
fonte
0

No mais simples, a diferença é de pluralidade:

  • O backup é retirado de uma única lista de alterações (seja a mais recente ou não). isto é, desfaz uma única lista de alterações.
  • A reversão reverte as alterações o quanto for necessário para chegar a uma lista de alterações anterior. isto é, desfaz várias listas de alterações.

Eu costumava esquecer qual é qual e acabava tendo que procurar muitas vezes. Para corrigir esse problema, imagine reverter várias rotações e, esperançosamente, o fato de a reversão ser plural ajudará você (e eu!) A lembrar qual é qual. O backout parece 'menos plural' do que o rollback para mim. Imagine recuar em um único espaço de estacionamento.

Então, o mnemônico é:

  • Reversão → rotações múltiplas
  • Backout → sair de um único espaço de estacionamento

Eu espero que isso ajude!

darrenp
fonte