Quiero que mercurial elimine varios archivos del estado actual del repositorio. Sin embargo, quiero que los archivos existan en el historial anterior.
¿De qué manera forget
y remove
son diferentes, y pueden hacer lo que quiero?
version-control
mercurial
Paul Nathan
fuente
fuente
Respuestas:
"
hg forget
es solo una abreviatura dehg remove -Af
". De la 'hg remove
' ayuda:En pocas palabras: '
remove
' elimina el archivo de su copia de trabajo en el disco (a menos que lo use-Af
) y 'forget
' no lo hace.fuente
La mejor manera de poner es que
hg forget
es idéntica ahg remove
excepto que deja detrás de los archivos en su copia de trabajo. Los archivos se dejan atrás como archivos sin seguimiento y ahora se pueden ignorar opcionalmente con un patrón en.hgignore
.En otras palabras, no puedo decir si lo usaste
hg forget
ohg remove
cuándo me aparté de ti. Un archivo que se ejecutóhg forget
en se borrará cuando actualice a ese conjunto de cambios - al igual que si se hubiera usadohg remove
en su lugar.fuente
De la documentación, aparentemente puede usar cualquiera de los comandos para mantener el archivo en el historial del proyecto. Parece que desea eliminar, ya que también elimina el archivo del directorio de trabajo.
Del libro de Mercurial en http://hgbook.red-bean.com/read/ :
La página de manual hg (1) dice esto sobre olvidar:
Y esto sobre eliminar:
fuente
Si utiliza
"hg remove b"
un archivo con el estado "A", lo que significa que se agregó pero no se confirmó, Mercurial responderá:Esta respuesta es una explicación muy clara de la diferencia entre eliminar y olvidar.
Tengo entendido que
"hg forget"
es para deshacer un archivo agregado pero no confirmado para que el control de versiones no lo rastree; mientras"hg remove"
es para sacar un archivo comprometido del control de versiones.Este hilo tiene un ejemplo para usar
hg remove
contra archivos de 7 tipos diferentes de estado.fuente
fuente