User:Kim/Prototyping 2nd year/GitPub

From XPUB & Lens-Based wiki

pmomm: #1. gitpub

v 1

utilizing the Git API.

I manged to print a proof of concept version of my personal reader repository but ran into a lot of issues:

  • API needs personal token authentication (which limits it to personal use)
  • using curl (to json) is limiting in formatting options (v1 is very 'crafty')
  • sorting the files and directories is tricky and you prob. need to do it manually by passing numbers to the titles

v 2

I dont need the Gitlab APi, since most meta info is already stored in my local repository. try python script >> better to turn into a program (pip install gitpub) using uv

wip ref

  • https://thelinuxcode.com/git-log-command-in-git/
  • Git internals are explained further in this (very compelling) chapter called Plumbing & Porcelain (referring to underground / lower level commands vs the more user friendly / surface commands like git commit etc) >> it gets very complicated very quickly



where is the local information stored?

in the repository, commit messages can be found in .git/logs/refs/heads/main
they are structured like this:

0e55d65009ff9617a72b0eafc908e356a8344bb4 5567bfffaad5ab96941b2cd7ed8aa077c2df1e94 Kim Kleinert 
<mail@kimkleinert.com> 1759126065 +0200 commit: r w o t synopsis

while when typing git log the output is formatted as the following:

commit 5567bfffaad5ab96941b2cd7ed8aa077c2df1e94 (HEAD -> main, origin/main)
Author: Kim Kleinert <mail@kimkleinert.com>
Date:   Mon Sep 29 08:07:45 2025 +0200
   r w o t synopsis

viewing the same commit in the gitlab interface reveals that 5567bfffaad5ab96941b2cd7ed8aa077c2df1e94 is the SHA while 0e55d65009ff9617a72b0eafc908e356a8344bb4 is indicated as the parent (which usually indicates the previous commit). that still leaves this string 1759126065 inside the git log file view unknown.


how can I get it?

>> use the git log cmd
to get log from specific file: $ git log file/path/name.md
options:

  • view diff by adding -p
  • --oneline displays only hash and message in one line
  • --pretty=format:"..." flag to have more control over formatting output git log --pretty=format:"%s" queue.md (this would only print commit message, different options and combinations possible)
  • --stat to get only the amount of changes not the full diffs

>> use python library$ pip install GitPython?