wie man Dateien im Brennofen / mercurial mit tortoise hg "ignoriert, die Teil des Repository sind"

8

Wir verwenden Schildkröten mit Kiln. In meinem vs. 2010 c # -Projekt gibt es einige Dateien, die Teil des Repositorys sind, aber ich möchte gerne, dass hg ignoriert wird, wenn ich einen Commit mache. Zum Beispiel kann ich in einem Anmeldebildschirm die Benutzer-ID, das Passwort zum Testen fest codieren. Ich möchte diese Datei nicht wirklich während eines Commits berücksichtigen. Ich verstehe .hgignore Datei, aber das funktioniert wirklich für Dateien, die nicht Teil des Repo sind. Irgendein Trick in Tortoise hg zu Dateien ignorieren, die Teil des Repo sind ? (damit sie während eines Commits nicht als modifiziert (M) angezeigt werden.) Danke

    
Gullu 08.09.2011, 16:01
quelle

4 Antworten

16

Ich verwende immer eine Kombination von .hgignore und BeforeBuild (in der .csproj-Datei) für solche Dinge.

In einem meiner Lieblingsprojekte habe ich folgendes Setup:

App.config enthält meine echte hartcodierte Benutzer-ID und das Passwort zum Testen.
App.config.example ist identisch, aber mit gefälschten Daten wie "dummy_user" und "dummy_pw".

App.config ist nicht Teil des Repositorys, und wird ignoriert (in .hgignore ).
App.config.example ist Teil des Repositories.

Dann habe ich folgendes in dem BeforeBuild Ziel in der .csproj Datei meiner Lösung:

%Vor%

All dies zusammen hat den folgenden Effekt:

  • Die Konfigurationsdatei mit den echten Daten kann niemals versehentlich in das Repository übertragen werden, da sie ignoriert wird
  • Das Repository enthält nur die Konfigurationsdatei mit den Beispieldaten
  • wenn jemand anderes das Repository auf seinem Rechner klont, wird er nicht die "echte" Konfigurationsdatei haben ... aber wenn es fehlt, wird es automatisch vor dem ersten Build von Visual Studio / MSBuild erstellt, indem einfach der .example datei (und dann kann er einfach seine echten Login-Daten in die neu erstellte App.config -Datei einfügen).
  • Wenn ein App.config mit real fest codierten Benutzerdaten bereits existiert, wird es beim Erstellen nicht überschrieben, da das BeforeBuild-Ereignis nur auftritt, wenn App.config nicht bereits existiert
Christian Specht 08.09.2011, 16:21
quelle
4

Die Antwort von Christian ist die richtige, aber ich möchte erwähnen, dass TortoiseHg unterstützt, was Sie wollen mit Automatische Ausschlussliste .

Ein Problem mit einer Ausschlussliste ist, dass sie nicht mit Merges funktionieren kann: Sie müssen alle Dateien beim Zusammenführen committen und Sie müssen also ein wenig tanzen mit shelve, merge, commit und unshelve.

    
Martin Geisler 08.09.2011 21:43
quelle
1

Wenn Sie einen TortoiseHG-Commit durchführen, gibt es eine Liste mit Dateien mit Kontrollkästchen. Deaktivieren Sie die Dateien, die Sie nicht verwenden möchten.

Oder führen Sie in der Befehlszeile ein Commit der Form hg commit --exclude "pattern" durch, wobei das Muster in der hg man-Seite definiert ist.

    
Paul Nathan 08.09.2011 16:08
quelle
0

Du könntest immer hg vergessen verwenden.

    
Ryan Rinaldi 08.09.2011 16:43
quelle

Tags und Links