Quero que o mercurial remova vários arquivos do estado atual do repositório. No entanto, quero que os arquivos existam no histórico anterior.
Como forget
e remove
diferem, e eles podem fazer o que eu quero?
version-control
mercurial
Paul Nathan
fonte
fonte
Respostas:
'
hg forget
' é apenas uma abreviação de 'hg remove -Af
'. Nahg remove
ajuda ' ':Bottom line: '
remove
' exclui o arquivo da sua cópia de trabalho no disco (a menos que você use-Af
) e 'forget
' não.fonte
A melhor maneira de colocar é que
hg forget
é idêntica parahg remove
exceto que ele deixa os arquivos para trás em sua cópia de trabalho. Os arquivos são deixados para trás como arquivos não rastreados e agora podem opcionalmente ser ignorados com um padrão.hgignore
.Em outras palavras, não sei dizer se você usou
hg forget
ouhg remove
quando eu puxo de você. Um arquivo que você correuhg forget
em vão ser apagados quando eu atualizar para que changeset - exatamente como se você tivesse usadohg remove
em seu lugar.fonte
A partir da documentação, você pode aparentemente usar qualquer comando para manter o arquivo no histórico do projeto. Parece que você deseja remover, pois também exclui o arquivo do diretório de trabalho.
Do livro Mercurial em http://hgbook.red-bean.com/read/ :
A página de manual hg (1) diz isso sobre esquecer:
E isso sobre remover:
fonte
Se você usar
"hg remove b"
um arquivo com o status "A", o que significa que ele foi adicionado, mas não confirmado, o Mercurial responderá:Essa resposta é uma explicação muito clara da diferença entre remover e esquecer.
Entendo que
"hg forget"
é para desfazer um arquivo adicionado, mas não confirmado, para que não seja rastreado pelo controle de versão; while"hg remove"
é para retirar um arquivo confirmado do controle de versão.Este encadeamento tem um exemplo para usar
hg remove
em arquivos de 7 tipos diferentes de status.fonte
fonte