Skip to content

Commit

Permalink
📝 Add batch processing
Browse files Browse the repository at this point in the history
  • Loading branch information
veit committed May 25, 2024
1 parent beacb62 commit f4b146b
Show file tree
Hide file tree
Showing 2 changed files with 47 additions and 0 deletions.
44 changes: 44 additions & 0 deletions docs/productive/git/advanced/batch.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
Stapelverarbeitung
==================

Alle Dateien in einem Repository
--------------------------------

Gelegentlich kommt es vor, dass alle Dateien in eurem Repository oder
diejenigen, die einem Muster entsprechen, geändert werden sollen. Dies ist durch
die Kombination von `git ls-files <https://git-scm.com/docs/git-ls-files>`_ und
`xargs <https://linux.die.net/man/1/xargs>`_ möglich:

:samp:`$ git ls-files -z | xargs -0 {COMMAND}`
änder alle Dateien in einem Repository.
:samp:`$ git ls-files -z -- "*.{SUFFIX}" | xargs -0 {COMMAND}`
ändert nur die Dateien mit einer bestimmten Dateiendung.

``-z``, ``-0``
verwendet das Null-Byte-Trennzeichen.

Beispiel
~~~~~~~~

:samp:`$ git ls-files -z -- "*.py" | xargs -0 git update-index --chmod=+x`
ändert für alle Dateien mit dem Suffix ``.py`` ggf. die Berechtigungen von
``100644`` zu ``100755``, sodass sie ausführbar werden.

Alle im Arbeits- oder Bühnenbereich geänderten Dateien
------------------------------------------------------

:samp:`git diff --name-only`
gibt diejenigen Dateien aus, die von Git verwaltet werden und im
Arbeitsbereich geändert wurden.
:samp:`git diff --staged --name-only`
gibt die dem Bühnenbereich hinzugefügten Dateien aus.
:samp:`git diff --staged --name-only "*.{SUFFIX}"`
filtert darüberhinaus noch nach einer bestimmten Dateiendung.

Beispiel
~~~~~~~~

:samp:`pytest $(git diff --staged --name-only "tests/test_*.py")`
ruft :doc:`python-basics:test/pytest/index` auf, um anschließend nur
diejenigen Testmodule auszuführen, die im Arbeitsverzeichnis geändert
wurden.
3 changes: 3 additions & 0 deletions docs/productive/git/advanced/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,8 @@ Fortgeschrittenes Git
können zu Problemen führen bei der Verwaltung mit Git.
:doc:`Binärdateien <binary-files>`
können in Git so konfiguriert werden, dass sinnvolle Diffs angezeigt werden.
:doc:`batch`
kann Dateien eines Git-Repository zusammen verarbeiten.
:doc:`vs-code/index`
kann eine bereits vorhandene Git-Installation nutzen um die entsprechenden
Funktionalitäten zur Verfügung zu stellen.
Expand All @@ -43,6 +45,7 @@ Fortgeschrittenes Git
hooks/index
jupyter-notebooks
binary-files
batch
vs-code/index
gitlab/index
git-big-picture
Expand Down

0 comments on commit f4b146b

Please sign in to comment.