Pergunta

Por acidente cometi duas vezes porque esqueci de adicionar dois arquivos.Posso remover um commit específico do log?

captura de tela do log

Desejo excluir o commit № 4.

Foi útil?

Solução

A resposta simples é "não", porque o Subversion não sabe como resolver o caso quando você adiciona um commit, alguém atualiza o checkout e então você remove o commit do histórico.Pode haver ou não uma resposta complexa envolvendo cirurgia no armazenamento do Subversion.

Outras dicas

  1. AFAICS, você não excluiu r4, mas mesclou com r5, sim?
  2. Em geral, o histórico de commits SVN é imutável, como Sii disse - e se você não tem direitos para excluir / criar repositório - você não pode fazer nada.

Se você pode excluir o repositório atual e criar um novo com o novo histórico, você pode tentar:

  • svnadmin dump para ser legível por humanos (mal, devo dizer) repository-dump, grok format and edit dump, delete repo, svnadmin load para recriar o repo
  • outra ideia é (em vez de editar despejo) outra SCM, que tem uma ponte para SVN (hg + MQ (histedit) + hg-git, por exemplo, irá permitem obter repo e dobrar / excluir changesets).Para substituir repositório antigo - ver p.2 acima

No seu caso, é apenas necessário modificar o comentário do commit associado ao commit nº 4 para refletir as mudanças reais que você fez.Você pode fazer isso com o Subversion, modificando a configuração do repositório SVN.Veja o FAQ do Subversion .

Por quê?Deixe o Subversion manter o histórico - é para isso que serve.Faça check-in com antecedência e com frequência.Não há necessidade de apagar o commit nº 4.

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