0
votes

Obtenez la dernière commission GIT à la fin de chaque jour?

J'ai besoin de faire des heures supplémentaires payées pour un projet. Je dois être indemnisé pour travailler après 1600. J'ai besoin de trouver la dernière commission envers un référentiel (la succursale n'a pas d'importance) pour chaque jour au cours des 4 derniers mois.

Comment puis-je y parvenir? J'en ai besoin dans un format que je peux analyser, afin que je puisse exécuter un script dessus et calculer les heures

git

8 commentaires

Eh bien, qu'avez-vous essayé?


Git Journal --Format = "% h" -N 1 Avez-vous essayé ceci


@Unbearablelightness c'est la chose, je n'ai honnêtement aucune idée d'où commencer. Je ne suis pas très bon chez Shell Scripts :(. Même un point de départ aiderait.


Quelle est la date de début de 4 mois que vous souhaitez commencer?


@Twister_void ne montre que le content des derniers commissions


@Unbearablierness le 27 décembre


@ Gibbo Voulez-vous juste la dernière commission pour une journée ou une journée? (Dans le scénario où vous avez plus d'un commit après 16h00 pour un jour donné)


@Gibbo a fait des réponses ci-dessous résoudre votre question?


3 Réponses :



1
votes

J'ai utilisé le one-liner ci-dessous pour obtenir les hachages de commis des commits depuis hier, 26/03/2020, a commité après 16h00:00. Vous pouvez régler en conséquence avec votre date:

$ git log --all --since="26/03/2020" --oneline --pretty=format:"%H %an %ad" | awk -F ' ' '{gsub(":","",$7); if($7>160000) print $1}'


0 commentaires

1
votes

Le tuyau suivant doit vous fournir la sortie que vous recherchez

#!/usr/bin/env -S awk -f
BEGIN {
  fourPM = 16*3600
}
!match($1,MYNAME) || $2 == previousDay { next }
{
  previousDay = $2
  split($3,previousTime,":")
  oversec = previousTime[1]*3600 \
          + previousTime[2]*60   \
          + previousTime[3]      \
          - fourPM
  if (oversec > 0) {
    $(NF + 1) = "overtime: " int(oversec/3600)        \
                         ":" int((oversec % 3600)/60) \
                         ":" int(oversec % 60)
    print $0
  }
}


0 commentaires