• Kissaki@programming.dev
    link
    fedilink
    English
    arrow-up
    2
    ·
    edit-2
    3 hours ago

    They’re bash/shell- and bin-dependent commands rather than Git commands. I use Nushell.
    Transformed to Nushell commands:

    • The 20 most-changed files in the last year:
      git log --format=format: --name-only --since="1 year ago" | lines | str trim | where (is-not-empty) | uniq --count | sort-by count --reverse | take 20
    • Who Built This:
      git shortlog -sn --no-merges
      git shortlog -sn --no-merges --since="6 months ago"
    • Where Do Bugs Cluster:
      git log -i -E --grep="fix|bug|broken" --name-only --format='' | lines | str trim | where (is-not-empty) | uniq --count | sort-by count --reverse | take 20
    • Is This Project Accelerating or Dying:
      git log --format='%ad' --date=format:'%Y-%m' | lines | str trim | where (is-not-empty) | uniq --count
    • How Often Is the Team Firefighting:
      git log --oneline --since="1 year ago" | find --ignore-case --regex 'revert|hotfix|emergency|rollback'

    /edit: Looks like the lines have whitespace or sth. Replaced lines --skip-empty with lines | str trim | where (is-not-empty).

    command aliases
    def "gits most-changed-files" [] { git log --format=format: --name-only --since="1 year ago" | lines | str trim | where (is-not-empty) | uniq --count | sort-by count --reverse | take 20 }
    def "gits who" [] { git shortlog -sn --no-merges }
    def "gits who6m" [] { git shortlog -sn --no-merges --since="6 months ago" }
    def "gits fixes" [] { git log -i -E --grep="fix|bug|broken" --name-only --format='' | lines | str trim | where (is-not-empty) | uniq --count | sort-by count --reverse | take 20 }
    def "gits aliveness" [] { git log --format='%ad' --date=format:'%Y-%m' | lines | str trim | where (is-not-empty) | uniq --count }
    def "gits firefighting" [] { git log --oneline --since="1 year ago" | find --ignore-case --regex 'revert|hotfix|emergency|rollback' }
    
  • 87Six@lemmy.zip
    link
    fedilink
    arrow-up
    9
    ·
    19 hours ago

    This would have no effect in my team where everyone does whatever they want in git lol

  • pageflight@piefed.social
    link
    fedilink
    English
    arrow-up
    24
    ·
    3 days ago

    Gonna have to try that out. I think it would have told interesting stories on some past repos.

    I wish '‘co-authored by AI’ was easy to flag in vcs.

    • Caveman@lemmy.world
      link
      fedilink
      arrow-up
      2
      ·
      15 hours ago

      This is going into my bashrc as a mini cli. I’m pretty sure I’m going to want to run this every time I change jobs.