logotype
  • Startseite
  • Blog
  • Leistungen
    • Engineering
    • Services
    • Infrastruktur
    • Individuelle Software
  • Lösungen
  • Unternehmen
    • Technologie
    • Über uns
    • Kontakt
    • Karriere / Jobs
logotype
  • Startseite
  • Blog
  • Leistungen
    • Engineering
    • Services
    • Infrastruktur
    • Individuelle Software
  • Lösungen
  • Unternehmen
    • Technologie
    • Über uns
    • Kontakt
    • Karriere / Jobs
logotype
  • Startseite
  • Blog
  • Leistungen
    • Engineering
    • Services
    • Infrastruktur
    • Individuelle Software
  • Lösungen
  • Unternehmen
    • Technologie
    • Über uns
    • Kontakt
    • Karriere / Jobs
  • Startseite
  • Blog
  • Leistungen
    • Engineering
    • Services
    • Infrastruktur
    • Individuelle Software
  • Lösungen
  • Unternehmen
    • Technologie
    • Über uns
    • Kontakt
    • Karriere / Jobs
logotype
logotype
  • Startseite
  • Blog
  • Leistungen
    • Engineering
    • Services
    • Infrastruktur
    • Individuelle Software
  • Lösungen
  • Unternehmen
    • Technologie
    • Über uns
    • Kontakt
    • Karriere / Jobs
Blog Post

In welchen Exporten war ich eigentlich?

admin 30.03.2016
Einfaches auffinden von Daten in Exportlisten mittels GIT/JGIT

Heutzutage dreht es sich in IT-Systemen nur noch um Daten. Wo kommen Sie her, wie und wo werden sie gespeichert, wo angezeigt und welche nachgelagerten Prozessschritte existieren? Früher oder später werden sie jedoch exportiert und an dieser Stelle kann die Protokollierung und Nachvollziehbarkeit eine große Rolle spielen (z.B. hinsichtlich Datenschutz). Dabei ist zu meist weniger relevant wer den Export durchgeführt hat, sondern eher In welchen Exporten war ein bestimmter Datensatz drin bzw. nicht drin?.
Dieser Artikel zeigt einen einfachen und meiner Meinung nach eleganten Weg, wie das mittels Git und Java/JGit (hier JGit) erreicht werden kann.

PURE GIT

Zunächst möchte ich die reine Kommandozeilen Variante vorstellen, wobei es an dieser Stelle nicht den richtigen Weg gibt, sondern man zwischen verschiedenen Varianten wählen kann (z.B. git log, git grep, git rev-list). Der wohl einfachste Weg ist über git rev-list mit dem folgenden Kommando:

Mittels obigen Snippet wird in allen Commits nach dem regulären Ausdruck ^5555$ gesucht und die entsprechenden Commits ausgegeben. Diese könnte man nun sogar über weitere Skripte verarbeiten, um entsprechende Reports draus zu bauen.
Sehr interessant in diesem Kontext sind auch weitere Parameter mit dem man die Commit-Filterung erweitern kann, wie z.B.:

  • –skip
  • –max-count
  • –date

JGIT

Nun kam ich an den Punkt, wo ich obige Funktionalität in Java verwenden wollte und fand folgenden Stackoverflow-Artikel, der ein git grep mittels JGit beinhaltet.
Im folgenden Code-Snippet wurde der Code aus dem Artikel leicht verändert (z.B. Java 8), so dass man direkt an die Commit-Information herankommt und diese auch zurückgeliefert werden.

BEISPIEL

Als kleines konsturiertes Beispiel zum Testen nehme man an, dass ein System Export-Dateien mit Nummern erzeugt und man möchte nun wissen in welchen Exporten die Zahl 5555 drin war.

Dazu habe ich eine JUnit4-Bootstrap-Rule gebaut, die mir ein paar Testdaten erzeugt und jeweils commited.

  • Commit 1: Zahlen von 0-100000
  • Commit 2: Zahlen von 0-110000 ohne 5000-5999
  • Commit 3: Zahlen von 10000-100000
  • Commit 4: Zahlen von 5000-6000
  • Commit 5: Zahlen von 0-1

Über den regulären Ausdruck ^5555$ werden nun alle Commits durchlaufen und nach dem Ausdruck durchforstet.

Earned Value Analyse - oder: Wissen statt glauben im Projektcontrolling

23.03.2016

Micro-Benchmarking with JMH (Update)

08.05.2016

Related Posts

admin 0 Comments

Technologieauswahl Web-Framework

READ MORE
admin 0 Comments

SiteOS unterstützt die DEVOXX4KIDS

READ MORE
logotype
  • +49 89 3090897-0
  • +49 89 3090897-99
  • info@siteos.de
  • Kapellenweg 6, 81371 München

 

Impressum

Datenschutz

Datenschutz Bewerber

© Copyright 2025 SiteOS AG. All rights reserved.

Whatsapp Xing Instagram Facebook Linkedin