2017-08-03 1 views
0

Ich habe einen Patch auf meinen Repo anzuwenden und leitegit apply wird keine Änderungen an Dateien zu machen

git apply --directory=$PWD xxxxx.patch 

Aus Gründen werde ich nicht gehen, kann ich nicht git am in diesem Fall verwenden, und ich brauche um das Verzeichnis-Flag zu verwenden.

git sagt mir:

$> git apply --directory=$PWD xxxxx.patch 
code1/xxxxx.patch:337: trailing whitespace. 
     < one partial line of code > 
warning: 1 line adds whitespace errors. 

Ich habe gelesen, dass die Leerzeichen Warnung ist nichts Ernstes und sollte nicht git stoppen Sie den Patch aus der Anwendung. Aus welchem ​​Grund auch immer, git wendet den Patch nicht an. Keine der aktuellen Dateien im Repo ändert sich. Irgendeine Idee, was man diesbezüglich tun kann?

+0

Nachdem 'git apply' diese Warnung erzeugt, zeigt' git status' keine Änderungen an, die hinzugefügt werden können? Das scheint merkwürdig. – torek

+0

@torek 'git status' zeigt eine Zeile an, die diesen Patch auflistet, aber am Ende heißt es" nichts zum Commit hinzugefügt ". Nur für grins habe ich 'git commit' nach dem Antrag gebunden und habe' nothing added to commit' noch einmal. Und die Überprüfung der Dateien zeigt, dass keine Änderungen vorgenommen wurden. –

+0

Das einzige, was ich hier denken kann ist, dass 'git apply' aus irgendeinem Grund denkt, dass keiner der Dateinamen mit Ihren Dateien übereinstimmt. Beachten Sie den Satz früh in der Dokumentation: "Beim Ausführen von einem Unterverzeichnis in einem Repository werden gepatchte Pfade außerhalb des Verzeichnisses ignoriert." Vielleicht möchten Sie "--directory = $ PWD" weglassen, wenn Sie bereits in das Unterverzeichnis gecdt haben, oder vielleicht müssen Sie es nur von der obersten Ebene aus ausführen (und nicht '$ PWD' hier verwenden) . – torek

Antwort

1

ich folgendes zu beachten fett gedruckten (mein fett gedruckt) Satz in the git apply documentation:

Liest den mitgelieferten diff Ausgabe (das heißt "ein Patch") und wendet sie auf Dateien. Beim Ausführen von einem Unterverzeichnis in einem Repository werden gepatchte Pfade außerhalb des Verzeichnisses ignoriert. Mit der --index Option ...

Es ist in diesem Fall scheint die git patch ist zu entscheiden, dass die Dateien außerhalb des Verzeichnisses sind. Wenn es von der obersten Ebene ausgeführt wird, sollte es aufhören zu entscheiden, dass (obwohl natürlich $PWD sich auch ändern wird; jede Option , wenn eine erforderlich ist, würde ein anderes Argument benötigen).

Verwandte Themen