ist 'hg vergessen' das gleiche wie 'git rm --cached'?

8

Ich habe Schwierigkeiten, hg forget zu verstehen. ist es das gleiche wie git rm --cached ? d. h. wird die Datei mit dem nächsten Commit entfernen und die Verfolgung stoppen?

    
knittl 09.11.2010, 15:27
quelle

1 Antwort

9

hg forget weist mercurial an, die Verfolgung einer Datei zu stoppen, ändert jedoch nicht die Datei in Ihrem Arbeitsverzeichnis.

Nach deinem Commit verhält es sich so, als hättest du nie hg add gemacht (obwohl der Verlauf natürlich noch existiert). Neue Klone haben diese Datei nicht in ihrem Arbeitsverzeichnis, aber sie wird nicht in Ihrem Arbeitsverzeichnis gelöscht.

Wenn Sie eine Datei im worlddir / manifest haben wollen, aber zukünftige Änderungen ignorieren möchten, gibt es keinen einfachen Weg (weil es allgemein als eine schlechte Idee angesehen wird), obwohl Sie es fälschen können, indem Sie Dinge zu Alias ​​machen -I auf hg commit .

Der beste Weg, dies zu tun, besteht darin, ein Sample der gewünschten Datei in den Repo zu übertragen, deren Änderungen jedoch ignoriert werden sollen, und dann das Build-System (oder Ihre Anweisungen) an den entsprechenden Speicherort zu kopieren. Zum Beispiel haben Sie eine Datei config-file.sample , die im Repo nachverfolgt wird, und dann haben setup / installation / build ein cp config-file.sample config-file wenn config-file nicht existiert. Fügen Sie config-file in Ihre .hgignore ein, damit sie nicht versehentlich hinzugefügt wird. Dies gibt Ihnen eine nachverfolgte Baseline, riskiert jedoch nicht, Ihre lokalen Anpassungen zu übernehmen und zu pushen. Dies wird sehr häufig für Dinge wie Datenbankpfade getan.

    
Ry4an Brase 09.11.2010, 15:57
quelle

Tags und Links