Subject: Re: git-last-modified on bare repository

From: Patrick Steinhardt <[email-masked]>
Date: Mon, 5 Jan 2026 16:03:30 +0100

On Mon, Jan 05, 2026 at 02:35:56PM +0100, Gusted wrote:
> Hi,
> 
> Now trying to actually make Forgejo use git last-modified after being
> pointed to the non-yet-documented options but I quickly noticed that it
> looks like it does not work as intended on bare repositories when looking
> specifying files.
> 
> $ git clone https://codeberg.org/Gusted/math-accuracy
> $ cd math-accuracy
> $ git last-modified -- LICENSES
> 768f05837e7db2832425bc3b65d0f524e81b2769        LICENSES
> 
> And on a bare repository:
> 
> $ git clone --bare https://codeberg.org/Gusted/math-accuracy
> $ cd math-accuracy.git
> $ git last-modified -- LICENSE
> fatal: ambiguous argument 'LICENSE': unknown revision or path not in the
> working tree.
> Use '--' to separate paths from revisions, like this:
> 'git <command> [<revision>...] -- [<file>...]'
> 
> Is a worktree required for this to work?

A worktree is not required for this to work. The problem is that you've
got a typo in there: you say "LICENSE", but the actual file is called
"LICENSES". If you spell it correctly it should work alright.

> Because it was talking about revision, I quickly checked a refspec as input
> and it looks like I found another way to trigger a BUG.
> 
> $ git last-modified -- HEAD:LICENSES
> BUG: builtin/last-modified.c:456: paths remaining beyond boundary in
> last-modified
> [1]    202076 IOT instruction (core dumped)  git last-modified --
> HEAD:LICENSES
> 
> On the bare and non-bare repository.

This looks like a bug to me indeed. Cc'ing Toon.

Thanks!

Patrick