2017-06-18 3 views
1

Ich habe ein Git-Repository mit mehreren Submodulen und bekam schreckliche Leistung auf meinem Windows 10 Build 15063, während auf meiner Linux Mint 18 Sarah alles schnell wie das Speedlight ist. BeideWarum Branch Checkout unter Windows ist so langsam, aber unter Linux so schnell?

unter Windows und Linux mit dem Smartgit Client, wo ich Kasse auf einem test Zweig tun, aber nimmt wie 3 Minuten, um den Prozess auf dem Windows-Rechner zu beenden:

Check Out Branch 
    D:\SublimeText\Data\Packages> git.exe checkout test 
    Switched to branch 'test' 
    D:\SublimeText\Data\Packages\Default Syntax> git.exe fetch --progress --prune --recurse-submodules=no origin 
    D:\SublimeText\Data\Packages\Force Rewrite Sublime Settings> git.exe fetch --progress --prune --recurse-submodules=no origin 
    D:\SublimeText\Data\Packages\Side-by-Side Settings> git.exe fetch --progress --prune --recurse-submodules=no origin 
    D:\SublimeText\Data\Packages\Overwrite Commit Completion> git.exe fetch --progress --prune --recurse-submodules=no origin 
    D:\SublimeText\Data\Packages\Sublime Text Studio> git.exe fetch --progress --prune --recurse-submodules=no origin 
    D:\SublimeText\Data\Packages\MarkdownLight> git.exe fetch --progress --prune --recurse-submodules=no origin 
    D:\SublimeText\Data\Packages\Fixed Selections Clear> git.exe fetch --progress --prune --recurse-submodules=no origin 
    D:\SublimeText\Data\Packages\SublimeCodeIntel> git.exe fetch --progress --prune --recurse-submodules=no origin 
    D:\SublimeText\Data\Packages\Open Auto Completion> git.exe fetch --progress --prune --recurse-submodules=no origin 
    D:\SublimeText\Data\Packages\amxmodx> git.exe fetch --progress --prune --recurse-submodules=no origin 
    D:\SublimeText\Data\Packages\Shell Script> git.exe fetch --progress --prune --recurse-submodules=no origin 
    D:\SublimeText\Data\Packages\Notepad++ Color Scheme> git.exe fetch --progress --prune --recurse-submodules=no origin 
    D:\SublimeText\Data\Packages\LaTeXTools> git.exe fetch --progress --prune --recurse-submodules=no origin 
    D:\SublimeText\Data\Packages\.versioning> git.exe fetch --progress --prune --recurse-submodules=no origin 
    D:\SublimeText\Data\Packages\Toolbar> git.exe fetch --progress --prune --recurse-submodules=no origin 
    D:\SublimeText\Data\Packages\BBCode> git.exe fetch --progress --prune --recurse-submodules=no origin 
    D:\SublimeText\Data\Packages\Select All Spelling Errors> git.exe fetch --progress --prune --recurse-submodules=no origin 
    D:\SublimeText\Data\Packages\Markdown to BB Code Converter> git.exe fetch --progress --prune --recurse-submodules=no origin 
    D:\SublimeText\Data\Packages\All Autocomplete> git.exe fetch --progress --prune --recurse-submodules=no origin 
    D:\SublimeText\Data\Packages\Package Control> git.exe fetch --progress --prune --recurse-submodules=no origin 
    D:\SublimeText\Data\Packages\AutoFileName> git.exe fetch --progress --prune --recurse-submodules=no origin 
    D:\SublimeText\Data\Packages\SQL Keyword Uppercase> git.exe fetch --progress --prune --recurse-submodules=no origin 
    D:\SublimeText\Data\Packages\Fix Project Switch Restart Bug> git.exe fetch --progress --prune --recurse-submodules=no origin 
    D:\SublimeText\Data\Packages\Indent and braces> git.exe fetch --progress --prune --recurse-submodules=no origin 
    D:\SublimeText\Data\Packages\Override Unpacked Packages> git.exe fetch --progress --prune --recurse-submodules=no origin 
    D:\SublimeText\Data\Packages\GotoLastEditEnhanced> git.exe fetch --progress --prune --recurse-submodules=no origin 
    D:\SublimeText\Data\Packages\PowerCursors> git.exe fetch --progress --prune --recurse-submodules=no origin 
    D:\SublimeText\Data\Packages\FuzzyFilePath> git.exe fetch --progress --prune --recurse-submodules=no origin 
    D:\SublimeText\Data\Packages\Clear Cursors Carets> git.exe fetch --progress --prune --recurse-submodules=no origin 
    D:\SublimeText\Data\Packages\ANSIescape> git.exe fetch --progress --prune --recurse-submodules=no origin 
    D:\SublimeText\Data\Packages\Preferences Editor> git.exe fetch --progress --prune --recurse-submodules=no origin 
    D:\SublimeText\Data\Packages\BufferScroll> git.exe fetch --progress --prune --recurse-submodules=no origin 
    D:\SublimeText\Data\Packages\PackageDev> git.exe fetch --progress --prune --recurse-submodules=no origin 
    D:\SublimeText\Data\Packages\Clipboard Scope Copy> git.exe fetch --progress --prune --recurse-submodules=no origin 
    D:\SublimeText\Data\Packages\SideBarEnhancements> git.exe fetch --progress --prune --recurse-submodules=no origin 
    D:\SublimeText\Data\Packages\View Settings Freely> git.exe fetch --progress --prune --recurse-submodules=no origin 
    D:\SublimeText\Data\Packages\Fix Selection After Indent> git.exe fetch --progress --prune --recurse-submodules=no origin 
    D:\SublimeText\Data\Packages\Amxx Pawn> git.exe fetch --progress --prune --recurse-submodules=no origin 
    D:\SublimeText\Data\Packages\SublimeREPL> git.exe fetch --progress --prune --recurse-submodules=no origin 
    D:\SublimeText\Data\Packages\SyncedSideBar> git.exe fetch --progress --prune --recurse-submodules=no origin 
    D:\SublimeText\Data\Packages\Active View Jump Back> git.exe fetch --progress --prune --recurse-submodules=no origin 

Ansonsten auf dem Linux-Rechner das gleiche Repository verwendet, kann ich die Kasse auf einem test Zweig in so etwas wie 5 Sekunden tun:

Check Out Branch 
    ~/.config/sublime-text-3/Packages> git checkout test_linux 
    Switched to branch 'test' 

Ist es möglich, das git checkout unter Windows so schnell wie diezu machen 10 unter Linux?

ich diese andere Frage gefunden, aber ich dit nicht verstehen, wenn es hier gilt:

  1. Git is slow on pushing submodules change to origin

aktualisieren

Nach @derHugo Kommentar finde ich heraus, dass Laufen git von der Kommandozeile auf Windows und Eingabe git checkout test ist so schnell wie unter Linux.

Jetzt müsste ich die Frage ändern und fragen, warum der Smartgit-Client für Windows diese langsame Sache macht, während die Linux-Version nicht.

Wie kann ich dieses langsame Auschecken auf dem Windows Smartgit-Client deaktivieren und was werden die Konsequenzen sein?

+0

Es scheint, dass Ihr Smargit-Client nicht nur den Checkout, sondern auch einen rekursiven Abruf Ihres Repos durchführt, während git on linux nur den Checkout selbst durchführt. – derHugo

+0

Sind die Hardware und die Methode für den Zugriff auf das Git-Repository identisch? –

+0

Das Linux ist eine virtuelle Maschine läuft innerhalb des Windows Ich habe die gleichen Tests durchgeführt. Theoretisch sollte das Linux in der virtuellen Umgebung etwas langsamer sein, aber es ist viel schneller. – user

Antwort

3

SmartGit scheinen eine Reihe von git.exe-Befehlen auszuführen, von denen jeder eine Bash-Session erzeugen muss (das Launchen/Starten einer neuen Shell ist langsam).
Mehr unter „How are msys, msys2, and msysgit related to each other?

Wenn Sie das gleiche in einer Git-Bash-Sitzung zu tun, all diese Befehle (für jede Submodul Kasse) können die aktuelle Shell-Sitzung wieder verwenden: viel schneller, auch unter Windows.

Verwandte Themen