Ich habe ein Projekt, das einige Konfigurationsdateien benötigt. Ich möchte die Standardkonfiguration filse im Repository behalten. Ich möchte jedoch nicht das Flag -X für jedes Commit angeben müssen, das ich mache. Gibt es eine Standardmethode, um eine Gruppe von revisionierten Dateien so zu markieren, dass sie dauerhaft von den Commits ausgeschlossen sind?Ausschließen von Projektkonfigurationsdateien aus Commits in Mercurial
Antwort
Interessante Frage, ich hoffe, Sie erhalten eine bessere Antwort. Konfrontiert ähnliche Probleme, ich habe folgendes getan:
die Konfigurationsdateien umbenennen, so dass beispielsweise anstelle von
noweb.cfg
Inoweb.cfg.default
haben. Diese Datei wird nur selten geändert und unterliegt der Versionskontrolle.Die eigentliche Konfigurationsdatei
noweb.cfg
kann sich häufig ändern, wird aber in die.hgignore
-Datei geschrieben, so dass sie nie festgeschrieben wird.Bei Bedarf habe ich ein spezielles Makefile-Ziel, das
*.cfg
von*.cfg.default
umbaut.
Diese Lösung ist nicht ideal, weil Änderungen in den .cfg
Dateien verloren gehen, wenn die .cfg.default
Änderungen. Im Prinzip könnte man dieses Problem mit diff3 oder einem etwas komplizierteren Merge-Tool angehen, aber ich war noch nie energisch genug, um dorthin zu gehen.
Sie können den (viel geschmähte) Abschnitt defaults in Ihrer .hgrc verwenden:
[defaults]
commit = -X thefileyouwanttoexclude
Wenn Sie Ihren Finger, um die bevorzugte Art und Weise, mit einem Alias anstatt zu tun umschulen können:
[alias]
cmt = commit -X thefileyouwanttoexclude
dann beginnen Sie mit hg cmt
statt commit.
- 1. Commits von Git-Hooks ausschließen?
- 2. Entwurf commits on mercurial
- 3. Subversion-Verwaltung von Projektkonfigurationsdateien
- 4. Werfen Sie eine Reihe von Commits in Mercurial
- 5. Monoton steigende Versionsnummer basierend auf Mercurial Commits
- 6. Warum möchte NetBeans diese Datei immer von SVN-Commits ausschließen?
- 7. Stuck mit zwei Standardzweigen in Mercurial nach abgebrochenen Zweig commits
- 8. Wie stelle ich mehrere Commits in Mercurial zurück?
- 9. Ausschließen von Dateien aus jslint4java in Eclipse
- 10. Wie verhindert man Mercurial Commits mit String unter Windows?
- 11. Entfernen leere Commits in Git
- 12. mercurial - siehe Änderungen auf dem Zweig ignorieren alle Zusammenführungs-Commits
- 13. Artikel aus DataList ausschließen
- 14. Dateien aus Weblogs ausschließen
- 15. Ordner aus Github ausschließen
- 16. Entfernen von Datei aus Mercurial MQ Patch
- 17. Mercurial - Holen von Änderungen aus anderen Repository
- 18. Ordner aus htpasswd ausschließen
- 19. Aus zipgroupfileset ausschließen?
- 20. Kinder aus Taxonomieausdruck ausschließen
- 21. Ordner aus htaccess ausschließen
- 22. Eigenschaften von Domänenmodellobjekten aus JSON ausschließen
- 23. Linq - Ausschließen von Elementen aus verschiedenen Listentypen
- 24. Ausschließen von Verzeichnissen aus elastic beanstalk deploy
- 25. Ausschließen von Tests aus einer bestimmten Kategorie
- 26. Probleme beim Ausschließen von Ergebnissen aus Unterabfrage
- 27. Ausschließen von Eingaben aus dem jqTransform-Plugin
- 28. Ausschließen von MFC-Leiste aus Dock-Status
- 29. Gradle: Ausschließen von Zip-Verteilungsaufgaben aus Assembly
- 30. Mercurial commit nur Tipp
Warum sagen Sie "viel verleumdet"? Ist es verpönt? Oder einfach nicht bekannt? –
Es funktioniert gut, aber mpm, der Schöpfer von Mercurial, hat [defaults] veraltet. Es ändert per Design die Befehle, die auf unsichtbare Weise ausgeführt werden, sodass Skripts oder Erweiterungen, die diese Befehle verwenden, die Befehle mit Argumenten ausführen, die sie möglicherweise nicht beabsichtigen. Zum Beispiel, wenn ich "[defaults] \ npush = -f", weil ich immer -f verwenden will, ist das in Ordnung, aber wenn ein Skript verwendet "push" ohne -f, weil es sicher stellen möchte, nicht neu zu erstellen Remote-Köpfe, dieses Skript würde -fw/o benutzen, es zu wissen. Aliase sind nur sicherer und erreichen fast das gleiche, vorausgesetzt, man kann sich die Finger neu schulen. –