Ausgabe-Filter: Zeige nur echte Inhaltsänderungen, keine Zeitstempel-Updates.
rsync --itemize-changes liefert z.B. ">f..t......" wenn git checkout den
Zeitstempel einer Datei aktualisiert, ohne den Inhalt zu ändern (da git
keine Zeitstempel preserviert). Neues Muster:
>f[+c]... neue Datei oder Prüfsumme geändert
>f.[+s]... Dateigröße geändert (= Inhalt geändert)
cd++++... neues Verzeichnis
*deleting Datei/Verzeichnis gelöscht
Bug-Fix: Voriger Fix schloss nur gradle/wrapper/ aus; rsync versuchte
gradle/ selbst zu löschen, scheiterte aber weil das ausgeschlossene
Unterverzeichnis gradle/ nicht-leer ließ. Fix: gradle/ komplett
ausschließen. Das Verzeichnis wird ausschließlich von init-exercises.sh
verwaltet (--gradle befüllt, --maven räumt auf).
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
--exclude=.idea
--exclude=.gradle
--exclude=build
- --exclude=gradle/wrapper/
+ --exclude=gradle/
--exclude=branches.sh
--exclude=lib.sh
--exclude=copy.sh
rsync_out=$(mktemp)
mkdir -p "$dest"
"${RSYNC_OPTS[@]}" --itemize-changes . "$dest" > "$rsync_out"
- grep -E '^[>c*]' "$rsync_out" || true
+ grep -E '^>f[+c]|^>f\.[+s]|^cd|^\*deleting' "$rsync_out" || true
rm -f "$rsync_out"
}