Wie verschiebt man nur die Quelldateien?

8

Ich habe zwei fast identische Sourcecode-Bäume, aber keinen Zugriff auf das Quellcode-Repository, so dass ich mit Release-Paketen, die auch Testberichte, Dokumentation, Binärdateien usw. enthalten, festgefahren bin.

Der Befehl diff unterstützt nur --exclude , aber ich möchte etwas wie diff -wbur --include='*.c,*.h' tree1 tree2

machen

Ich weiß, dass diese Frage ist etwas verwandt, aber adressiert mein Problem nicht wirklich.

Bonuspunkte zum Ignorieren von Änderungsblöcken, die sich vollständig in C-Kommentaren befinden:)

    
Kimvais 20.04.2010, 08:16
quelle

5 Antworten

14

Kleine Änderung an einem Ergebnis von Google half, in tree1 did find . -name '*.[ch]' -exec diff -wibu {} ../tree2/{} \;

    
Kimvais 20.04.2010, 08:18
quelle
4

Hier ist ein kleines Patch-Maker-Skript:

%Vor%     
Eli Rosencruft 16.08.2012 06:03
quelle
2

Ich würde alles ausschließen, was nicht mit .c oder .h übereinstimmt. Es bedeutet also, dass nur .c und .h Dateien enthalten sind:

%Vor%

Für mich ist das der beste Weg, weil Sie nur diff

verwenden     
user2607001 09.05.2014 08:59
quelle
2

Sie können alle auszuschließenden Dateien in eine temporäre Datei schreiben und sie an das Argument -X des diff übergeben.

%Vor%

Oder einfacher (funktioniert in Bash):

%Vor%

Sie können mehrere Namensargumente verwenden, wenn Sie längere Dateinamenserweiterungen haben:

%Vor%     
Bastian 02.06.2015 22:08
quelle
0

Ich habe eine einfachere Lösung vorgeschlagen als Unterschiede zu finden, hier ist der Thread: Ссылка

Die Idee ist, eine neue Option bereitzustellen, die diff anordnet, um Dateien zu analysieren, die mit einer Regex übereinstimmen: diff -Nurp --only "*.[hc]" source/ source-new/

Hier finden Sie die Anweisungen zum Patchen von Diffutils

Klonen Sie das Repo git clone git://git.savannah.gnu.org/diffutils.git

Führen Sie bootstrap.sh im Verzeichnis diffutils aus und lösen Sie die Abhängigkeiten auf, bis das Skript ./cofigure erstellt wird

Laden Sie den Patch vom obigen Link herunter

Übernehmen Sie es git apply <PATCHFILE>

Konfigurieren und kompilieren %Code% ./configure

Dies erzeugt das gepatchte Diff in src / diff

Prost

    
geckos 03.10.2014 19:53
quelle

Tags und Links