Frage

Ist es möglich, Dateien zu Subversion hinzufügen, die angeblich nicht versioniert werden? Zb config-Dateien, die jede einzelne Umgebung anzupassen bearbeitet werden muss. Wenn ein neuer Programmierer für das Projekt verbunden ist, er die ursprüngliche Datei von Subversion erhalten soll, aber es wird nicht verpflichtet werden, nachdem er es bearbeitet und es wird nicht überschrieben werden, wenn er aktualisiert.

Vielleicht einen Tag für das ganze Original-Projekt zu erstellen ist die Lösung? Zuerst den Tag der Herunterladen und dann vom Stamm aktualisieren?

Irgendwelche Ideen?


Klarstellung zu folgenden Erläuterungen: Das Projekt (Sitecore) besteht aus etwa 30k Anzahl verschiedener Dateien. Wir müssen auf die Version über 100 von diesen. Wenn wir alle Dateien in der Versionsverwaltung enthalten sollte dann begehen jede dauert ewig (als Schildkröte durchsucht alle Ordner). Heute haben wir eine Zip-Datei enthält alle unversionierte Ordner erstellen, werden die Ordner wie in svn ignorieren und dann stattdessen die Zip hinzufügen. Das Problem ist, wenn wir eine ändern müssen oder mehrere der Dateien im Zip, dann brauchen wir einen neuen ~ 1 GB-zip zu der Repo zu begehen.

War es hilfreich?

Lösung

ich die unversionierte Dateien auf einem Web- oder Dateiserver hochlegen würde für jedermann zugänglich, das Projekt verwenden, und ein Skript hinzufügen, um automatisch (wget / scp / etc.), Um die Dateien herunterladen (gezippt, wenn nötig) und extrahieren sie svnignored Ordner, so dass sie von Subversion werden nicht abgeholt.

Wenn Sie sind besorgt über diese Dateien zu ändern, dann: sollten sie nicht versioniert werden

svn: externals auch in dieser Situation nützlich sein kann. I denken können sie leicht ignoriert eingerichtet werden, wie die Umstände es zulassen.

Andere Tipps

In einigen Fällen ist es nicht einmal notwendig, ein web.config pro Entwickler zu erstellen, da das .Net Konfigurationsformat überwiegende bestimmte Bereiche Ihrer Konfigurationsdatei über das configSource Attribut ermöglicht.

Das configSource Attribut gibt einen Dateinamen, die (wenn die Datei vorhanden ist) überschreibt den angegebenen Block und wenn es nicht um den Block nicht vorhanden ist wird verwendet, wie sie ist.

<?xml version="1.0"?>
<configuration>
  <connectionStrings configSource="connections.config">
      <add name="LocalSqlServer" 
           connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=true"
           providerName="System.Data.SqlClient" />
  </connectionStrings>
</configuration>

Auf dem Entwickler-System kann man einfach ein connections.config mit den Anschlüssen für ihn hinzufügen, während der Rest der Einstellungen gemeinsam genutzt werden kann.

(So ist das das Problem der Vorlagen nicht lösen, aber es kann Ihnen eine große Vorlage verwalten helfen, wie viele kleine)

Ich würde ein Skript erstellen, das die Konfigurationsdateien erzeugt, wenn lief. Auf diese Weise brauchen Sie nicht über Ihr SCM in die Quere sorgen.

Sie müssen überdenken, wie Sie subverion verwenden. Subversion speichert Versionsinformationen über Dateien; nicht mehr und nicht weniger. Sie können versionierte Dateien in Subversion nicht speichern; keinen Sinn machen. ein 1 GB zip in Subversion zu speichern ist nicht alles entweder gut tun wird.

Sie sollten eine Art und Weise Einblick in der Entwickler-Einstellungen in diesen Dateien über personalisierte Konfigurationsdateien im Home-Verzeichnis des Benutzers oder möglicherweise Umgebungsvariablen außer Kraft setzen kann.

Nur eine Template für diese. Angenommen, Ihre Datei config.txt genannt wird. Schauen Sie sich die Datei und fügen Sie einige Markierungen, wo lokale Einstellungen gehen sollte, benennen Sie sie in configTemplate.txt und verpflichten sie. Dann sollte jeder Entwickler die Datei auschecken, stellen Sie eine Kopie davon, entfernen Sie die Vorlage Teil des Dateinamens (so bekommt jeder die richtige config.txt), und fügen Sie die neue Datei in der Liste ignorieren. Dann entweder lassen Sie alle einfach manuell in den lokalen Einstellungen bearbeiten, wo die Markierungen in der Template-Datei oder verwenden Sie ein Skript, um es für sie zu tun (wenn möglich).

Die Vorlagendatei nie geändert wird (es sei denn, ein Unterschied gibt es in dem Format der Konfigurationsdatei natürlich).

In Antwort auf Ihren bearbeiten (und schreibt):

Bilder, Dokumente und binäre Dateien, die nicht automatisch generiert werden sollen wahrscheinlich alle unter Versionskontrolle gestellt werden. Oder zumindest ich keinen guten Grund sehen sie unversionierte zu halten.

Jeder Programmierer arbeiten an ihren eigenen Zweig lassen und lassen sie ihre Änderungen zusammenführen zurück in den Hauptzweig / trunk. Natürlich müssen Sie Ihre Teamkollegen zu wünschen übrig sein mit Versionskontrolle und der Lage sein, mehr zu verwenden, als nur die Kasse, zu aktualisieren und begehen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top