Was ist der genaue Unterschied zwischen SVN-Checkout und SVN-Export?
Soweit ich weiß, enthält der Export nicht das .svn-Verzeichnis, das Metadaten enthält, und das Auschecken enthält dieses .svn-Verzeichnis. Mein Kollege hatte jedoch kürzlich das Problem, dass es ein anderes Verhalten für die aus Quellen kompilierten Inhalte gibt, die auschecken und aus SVN-Repo exportiert werden. Beide wurden korrekt kompiliert, aber der aus svn export
Werken kompilierte, aber der ausgecheckte funktioniert überhaupt nicht.
PS: Das kompilierte Material ist der Linux 2.4-Kernel, der in einem eingebetteten Gerät verwendet wird. Das Bild wird kompiliert und korrekt geladen, aber das ausgecheckte funktioniert nicht. Es verursacht eine Kernel-Panik während Insmod. Warum konnte das überhaupt passieren?
PPS: Wir haben das Prüfsummen- und Diff-Tool ausprobiert, um den Unterschied zwischen den beiden Verzeichnissen zu überprüfen, die aus SVN exportiert und ausgecheckt werden. Beide sind bis auf das .svn-Verzeichnis identisch.
quelle
Antworten:
svn export
extrahiert einfach alle Dateien aus einer Revision und erlaubt keine Revisionskontrolle darauf. Es verschmutzt auch nicht jedes Verzeichnis mit .svn-Verzeichnissen.svn checkout
Ermöglicht die Verwendung der Versionskontrolle in dem erstellten Verzeichnis, z. B. Ihren Standardbefehlen wiesvn update
undsvn commit
.quelle
Wie Sie bereits sagten, enthält eine Kasse die .svn-Verzeichnisse. Somit handelt es sich um eine Arbeitskopie, die über die richtigen Informationen verfügt, um Commits zurückzusenden (sofern Sie die Erlaubnis dazu haben). Wenn Sie einen Export durchführen, nehmen Sie nur eine Kopie des aktuellen Status des Repositorys und haben keine Möglichkeit, Änderungen zurückzuschreiben.
quelle
Führen Sie Ihre Kaufabwicklung erneut aus oder exportieren Sie sie in ein vorhandenes Verzeichnis?
Wenn Sie dies tun, aktualisiert checkout die Arbeitskopie, einschließlich des Löschens aller Dateien.
Beim Export werden jedoch einfach alle Dateien vom Reporsitory zum Ziel übertragen. Wenn das Ziel dasselbe Verzeichnis ist, bedeutet dies, dass alle im Repository gelöschten Dateien NICHT gelöscht werden.
Ihre Exportkopie funktioniert also möglicherweise nur, weil sie auf einer Datei basiert, die im Repository gelöscht wurde?
quelle
Gibt es eine Chance, dass der Erstellungsprozess in die Unterverzeichnisse schaut und etwas enthält, das er nicht sollte? Übrigens können Sie eine legale Prüfung durchführen und dann die .svn und alles, was sie enthält, entfernen. Das sollte Ihnen das gleiche geben wie ein Export. Versuchen Sie, dies vor und nach dem Entfernen der Metadaten sozusagen zu kompilieren.
quelle
(Um Geralds Antwort zu ergänzen ...) Ein weiterer subtiler Unterschied ist der, obwohl der Befehl:
svn checkout ...repos_location/my_dir .
legt die Dateien im
my_dir
aktuellen Verzeichnis ab (mit dem.svn
Ordner)in bestimmten versionen des svn der befehl:
svn export ...repos_location/my_dir .
erstellt einen Ordner mit dem Namen
my_dir
im aktuellen Verzeichnis und legt die exportierten Dateien darin ab.quelle
Verwenden Sie den Export, wenn Sie ein Projekt hochladen (oder jemandem geben) möchten. Wenn Sie mit einem Projekt arbeiten, verwenden Sie die Kasse.
quelle
Zusätzliche Überlegungen. Du hast gesagt, Insmod stürzt ab. Insmod lädt Module. Die Module werden in einer anderen Kompilierungsoperation aus dem Erstellen des Kernels erstellt. Kernel und Module müssen aus denselben Headern usw. erstellt werden. Werden alle Module während des Kernel-Builds erstellt oder sind sie "vorhanden"?
Die andere Idee und etwas, über das ich wenig weiß, ist svn externals, was (falls verwendet) Auswirkungen darauf haben kann, was in Ihrem Projekt ausgecheckt wird. Überprüfen Sie, ob dies beim Exportieren anders ist.
quelle
Sehr einfacher Unterschied: Wenn Sie nur die Struktur Ihres Projekts sehen möchten, gehen Sie zum Export.
Und wenn Sie an Ihren Dateien arbeiten möchten, müssen Sie auschecken, da dieser den Ordner .svn enthält, der die Metadaten enthält, aus denen die Arbeitskopie erstellt wird. Andernfalls wird beim Export der Fehler angezeigt.
Wenn Sie
svn export
einige Dateien bearbeiten und dann festschreiben, wird eine Fehlermeldung angezeigt:quelle
Wenn Sie den Schildkröten-SVN-Client verwenden, wird beim Exportieren ..export / checkout angezeigt. Dies ist verwirrend und wird nur exportiert. Nur View / Read Use Export, um Use festzuschreiben - "Checkout"
quelle