Pre-Receive git-hook returns unexpected content for "git rev-parse --abbrev-ref HEAD" #10170

Open
opened 2025-11-02 09:00:09 -06:00 by GiteaMirror · 0 comments
Owner

Originally created by @xochitlhct on GitHub (Jan 27, 2023).

Description

  1. Configured DISABLE_GIT_HOOKS = false and restarted
  2. Added pre-receive hook to repo (also tried the "update" hook with no change in behavior)
    #!/bin/bash
    local_branch="$(git rev-parse --abbrev-ref HEAD)"
    echo "Saw branch name: $local_branch"
    exit 0
  3. Cloned repo, made new branch, pushed it back to remote.
    Problem: The pre-receive git hook always says that the result of "git rev-parse --abbrev-ref HEAD" is "develop" no matter what branch is pushed. This is the same name of the default branch of the repo.

[me@myhost src]$ git branch -v

  • bad-name-branch 354f41c * right on.
    develop b74f02c [ahead 1] * talk about robots.txt
    feature/COR-1 c50d200 * PR test.

[me@myhost src]$ git push origin bad-name-branch
Username for 'http://myinstance.com:3000': me
Password for 'http://me@myinstance.com:3000':
Counting objects: 7, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (4/4), done.
Writing objects: 100% (4/4), 378 bytes | 0 bytes/s, done.
Total 4 (delta 2), reused 0 (delta 0)
remote: Saw branch name: develop
remote:
remote: Create a new pull request for 'bad-name-branch':
remote: http://myinstance.com:3000/Project/repo/compare/develop...bad-name-branch
remote:
remote: . Processing 1 references
remote: Processed 1 references in total
To http://myinstance.com:3000/Project/repo.git
321ead1..354f41c bad-name-branch -> bad-name-branch

Gitea Version

 1.18.1 built with GNU Make 4.1, go1.19.5 : bindata, sqlite, sqlite_unlock_notify

Can you reproduce the bug on the Gitea demo site?

No

Log Gist

No response

Screenshots

tail -f gitea.log
2023/01/27 18:06:23 ...dules/git/command.go:215:Run() [D] [63d4129f] /git/gitea/data/gitea-repositories/Project/repo.git: /usr/bin/git -c protocol.version=2 -c credential.helper= -c filter.lfs.required= -c filter.lfs.smudge= -c filter.lfs.clean= cat-file --batch
2023/01/27 18:06:23 ...dules/git/command.go:215:Run() [D] [63d4129f] /git/gitea/data/gitea-repositories/Project/repo.git: /usr/bin/git -c protocol.version=2 -c credential.helper= -c filter.lfs.required= -c filter.lfs.smudge= -c filter.lfs.clean= for-each-ref --format=%(objectname) %(refname) refs/tags/ --sort=-taggerdate
2023/01/27 18:06:23 ...dules/git/command.go:215:Run() [D] [63d4129f] /git/gitea/data/gitea-repositories/Project/repo.git: /usr/bin/git -c protocol.version=2 -c credential.helper= -c filter.lfs.required= -c filter.lfs.smudge= -c filter.lfs.clean= cat-file --batch-check
2023/01/27 18:06:23 ...dules/git/command.go:215:Run() [D] [63d4129f] /git/gitea/data/gitea-repositories/Project/repo.git: /usr/bin/git -c protocol.version=2 -c credential.helper= -c filter.lfs.required= -c filter.lfs.smudge= -c filter.lfs.clean= for-each-ref --format=%(objectname) %(refname) refs/heads/ --sort=-committerdate
2023/01/27 18:06:23 ...dules/git/command.go:215:Run() [D] [63d4129f-7] /git/gitea/data/gitea-repositories/Project/repo.git: /usr/bin/git -c protocol.version=2 -c credential.helper= -c filter.lfs.required= -c filter.lfs.smudge= -c filter.lfs.clean= rev-parse
2023/01/27 18:06:23 ...dules/git/command.go:215:Run() [D] [63d4129f-7] /git/gitea/data/gitea-repositories/Project/repo.git: /usr/bin/git -c protocol.version=2 -c credential.helper= -c filter.lfs.required= -c filter.lfs.smudge= -c filter.lfs.clean= cat-file --batch
2023/01/27 18:06:23 ...dules/git/command.go:215:Run() [D] [63d4129f-7] /git/gitea/data/gitea-repositories/Project/repo.git: /usr/bin/git -c protocol.version=2 -c credential.helper= -c filter.lfs.required= -c filter.lfs.smudge= -c filter.lfs.clean= for-each-ref --format=%(objectname) %(refname) refs/tags/ --sort=-taggerdate
2023/01/27 18:06:23 ...dules/git/command.go:215:Run() [D] [63d4129f-7] /git/gitea/data/gitea-repositories/Project/repo.git: /usr/bin/git -c protocol.version=2 -c credential.helper= -c filter.lfs.required= -c filter.lfs.smudge= -c filter.lfs.clean= cat-file --batch-check
2023/01/27 18:06:23 ...dules/git/command.go:215:Run() [D] [63d4129f-7] /git/gitea/data/gitea-repositories/Project/repo.git: /usr/bin/git -c protocol.version=2 -c credential.helper= -c filter.lfs.required= -c filter.lfs.smudge= -c filter.lfs.clean= for-each-ref --format=%(objectname) %(refname) refs/heads/ --sort=-committerdate
2023/01/27 18:06:23 ...s/context/context.go:220:HTML() [D] [63d4129f-7] Template: repo/settings/githooks
2023/01/27 18:06:42 ...s/context/context.go:220:HTML() [D] [63d412b2] Template: admin/dashboard
2023/01/27 18:06:49 ...rvices/cron/tasks.go:141:GetTask() [I] [63d412b9] Getting resync_all_hooks in &{{0 0} resync_all_hooks 0xc001cce480 0x1f73ac0 finished xlunde 1}
2023/01/27 18:06:49 ...s/context/context.go:220:HTML() [D] [63d412b9-3] Template: admin/dashboard
2023/01/27 18:07:42 ...dules/git/command.go:215:Run() [D] [63d412ee-2] /git/gitea/data/gitea-repositories/Project/repo.git: /usr/bin/git -c protocol.version=2 -c credential.helper= -c filter.lfs.required= -c filter.lfs.smudge= -c filter.lfs.clean= receive-pack --stateless-rpc --advertise-refs .
2023/01/27 18:07:43 ...dules/git/command.go:215:Run() [D] [63d412ee-4] /git/gitea/data/gitea-repositories/Project/repo.git: /usr/bin/git -c protocol.version=2 -c credential.helper= -c filter.lfs.required= -c filter.lfs.smudge= -c filter.lfs.clean= receive-pack --stateless-rpc /git/gitea/data/gitea-repositories/Project/repo.git
2023/01/27 18:07:43 ...dules/git/command.go:215:Run() [D] [63d412ef-2] /git/gitea/data/gitea-repositories/Project/repo.git: /usr/bin/git -c protocol.version=2 -c credential.helper= -c filter.lfs.required= -c filter.lfs.smudge= -c filter.lfs.clean= rev-parse
2023/01/27 18:07:43 ...dules/git/command.go:215:Run() [D] [63d412ef-2] /git/gitea/data/gitea-repositories/Project/repo.git: /usr/bin/git -c protocol.version=2 -c credential.helper= -c filter.lfs.required= -c filter.lfs.smudge= -c filter.lfs.clean= cat-file --batch
2023/01/27 18:07:43 ...dules/git/command.go:215:Run() [D] [63d412ef-2] /git/gitea/data/gitea-repositories/Project/repo.git: /usr/bin/git -c protocol.version=2 -c credential.helper= -c filter.lfs.required= -c filter.lfs.smudge= -c filter.lfs.clean= cat-file --batch-check
2023/01/27 18:07:43 ...dules/git/command.go:215:Run() [D] [63d412ef-8] /git/gitea/data/gitea-repositories/Project/repo.git: /usr/bin/git -c protocol.version=2 -c credential.helper= -c filter.lfs.required= -c filter.lfs.smudge= -c filter.lfs.clean= rev-parse
2023/01/27 18:07:43 ...dules/git/command.go:215:Run() [D] [63d412ef-8] /git/gitea/data/gitea-repositories/Project/repo.git: /usr/bin/git -c protocol.version=2 -c credential.helper= -c filter.lfs.required= -c filter.lfs.smudge= -c filter.lfs.clean= cat-file --batch
2023/01/27 18:07:43 ...dules/git/command.go:215:Run() [D] [63d412ef-8] /git/gitea/data/gitea-repositories/Project/repo.git: /usr/bin/git -c protocol.version=2 -c credential.helper= -c filter.lfs.required= -c filter.lfs.smudge= -c filter.lfs.clean= cat-file --batch-check
2023/01/27 18:07:43 ...dules/git/command.go:215:Run() [D] [63d412ef-8] /git/gitea/data/gitea-repositories/Project/repo.git: /usr/bin/git -c protocol.version=2 -c credential.helper= -c filter.lfs.required= -c filter.lfs.smudge= -c filter.lfs.clean= rev-list 2ac4edc541d1877efea02a087e05ce79a394b810..db07926c0a71667fccb5495129957e0baf170e28
2023/01/27 18:07:43 ...dules/git/command.go:215:Run() [D] /git/gitea/data/gitea-repositories/Project/repo.git: /usr/bin/git -c protocol.version=2 -c credential.helper= -c filter.lfs.required= -c filter.lfs.smudge= -c filter.lfs.clean= rev-parse
2023/01/27 18:07:43 ...dules/git/command.go:215:Run() [D] /git/gitea/data/gitea-repositories/Project/repo.git: /usr/bin/git -c protocol.version=2 -c credential.helper= -c filter.lfs.required= -c filter.lfs.smudge= -c filter.lfs.clean= cat-file --batch
2023/01/27 18:07:43 ...dules/git/command.go:215:Run() [D] /git/gitea/data/gitea-repositories/Project/repo.git: /usr/bin/git -c protocol.version=2 -c credential.helper= -c filter.lfs.required= -c filter.lfs.smudge= -c filter.lfs.clean= cat-file --batch-check
2023/01/27 18:07:43 ...dules/git/command.go:215:Run() [D] [63d412ef-8] /git/gitea/data/gitea-repositories/Project/repo.git: /usr/bin/git -c protocol.version=2 -c credential.helper= -c filter.lfs.required= -c filter.lfs.smudge= -c filter.lfs.clean= rev-list --max-count=1 2ac4edc541d1877efea02a087e05ce79a394b810 ^db07926c0a71667fccb5495129957e0baf170e28
2023/01/27 18:07:43 ...dules/git/command.go:215:Run() [D] [63d412ef-17] /git/gitea/data/gitea-repositories/Project/repo.git: /usr/bin/git -c protocol.version=2 -c credential.helper= -c filter.lfs.required= -c filter.lfs.smudge= -c filter.lfs.clean= log --name-status -c --pretty=format: --parents --no-renames -z -1 db07926c0a71667fccb5495129957e0baf170e28
2023/01/27 18:07:43 ...dules/git/command.go:215:Run() [D] /git/gitea/data/gitea-repositories/Project/repo.git: /usr/bin/git -c protocol.version=2 -c credential.helper= -c filter.lfs.required= -c filter.lfs.smudge= -c filter.lfs.clean= rev-list --count db07926c0a71667fccb5495129957e0baf170e28
2023/01/27 18:07:43 ...dules/git/command.go:215:Run() [D] [63d412ef-20] /git/gitea/data/gitea-repositories/Project/repo.git: /usr/bin/git -c protocol.version=2 -c credential.helper= -c filter.lfs.required= -c filter.lfs.smudge= -c filter.lfs.clean= rev-parse
2023/01/27 18:07:43 ...dules/git/command.go:215:Run() [D] [63d412ef-20] /git/gitea/data/gitea-repositories/Project/repo.git: /usr/bin/git -c protocol.version=2 -c credential.helper= -c filter.lfs.required= -c filter.lfs.smudge= -c filter.lfs.clean= cat-file --batch-check
2023/01/27 18:07:43 ...dules/git/command.go:215:Run() [D] [63d412ef-20] /git/gitea/data/gitea-repositories/Project/repo.git: /usr/bin/git -c protocol.version=2 -c credential.helper= -c filter.lfs.required= -c filter.lfs.smudge= -c filter.lfs.clean= cat-file --batch

Git Version

2.5.1

Operating System

Ubuntu 20

How are you running Gitea?

Downloaded pre-builg package. Running with systemd, not in docker.

Database

MySQL

Originally created by @xochitlhct on GitHub (Jan 27, 2023). ### Description 1. Configured DISABLE_GIT_HOOKS = false and restarted 2. Added pre-receive hook to repo (also tried the "update" hook with no change in behavior) #!/bin/bash local_branch="$(git rev-parse --abbrev-ref HEAD)" echo "Saw branch name: $local_branch" exit 0 3. Cloned repo, made new branch, pushed it back to remote. Problem: The pre-receive git hook always says that the result of "git rev-parse --abbrev-ref HEAD" is "develop" no matter what branch is pushed. This is the same name of the default branch of the repo. [me@myhost src]$ git branch -v * bad-name-branch 354f41c * right on. develop b74f02c [ahead 1] * talk about robots.txt feature/COR-1 c50d200 * PR test. [me@myhost src]$ git push origin bad-name-branch Username for 'http://myinstance.com:3000': me Password for 'http://me@myinstance.com:3000': Counting objects: 7, done. Delta compression using up to 2 threads. Compressing objects: 100% (4/4), done. Writing objects: 100% (4/4), 378 bytes | 0 bytes/s, done. Total 4 (delta 2), reused 0 (delta 0) remote: Saw branch name: develop remote: remote: Create a new pull request for 'bad-name-branch': remote: http://myinstance.com:3000/Project/repo/compare/develop...bad-name-branch remote: remote: . Processing 1 references remote: Processed 1 references in total To http://myinstance.com:3000/Project/repo.git 321ead1..354f41c bad-name-branch -> bad-name-branch ### Gitea Version 1.18.1 built with GNU Make 4.1, go1.19.5 : bindata, sqlite, sqlite_unlock_notify ### Can you reproduce the bug on the Gitea demo site? No ### Log Gist _No response_ ### Screenshots tail -f gitea.log 2023/01/27 18:06:23 ...dules/git/command.go:215:Run() [D] [63d4129f] /git/gitea/data/gitea-repositories/Project/repo.git: /usr/bin/git -c protocol.version=2 -c credential.helper= -c filter.lfs.required= -c filter.lfs.smudge= -c filter.lfs.clean= cat-file --batch 2023/01/27 18:06:23 ...dules/git/command.go:215:Run() [D] [63d4129f] /git/gitea/data/gitea-repositories/Project/repo.git: /usr/bin/git -c protocol.version=2 -c credential.helper= -c filter.lfs.required= -c filter.lfs.smudge= -c filter.lfs.clean= for-each-ref --format=%(objectname) %(refname) refs/tags/ --sort=-taggerdate 2023/01/27 18:06:23 ...dules/git/command.go:215:Run() [D] [63d4129f] /git/gitea/data/gitea-repositories/Project/repo.git: /usr/bin/git -c protocol.version=2 -c credential.helper= -c filter.lfs.required= -c filter.lfs.smudge= -c filter.lfs.clean= cat-file --batch-check 2023/01/27 18:06:23 ...dules/git/command.go:215:Run() [D] [63d4129f] /git/gitea/data/gitea-repositories/Project/repo.git: /usr/bin/git -c protocol.version=2 -c credential.helper= -c filter.lfs.required= -c filter.lfs.smudge= -c filter.lfs.clean= for-each-ref --format=%(objectname) %(refname) refs/heads/ --sort=-committerdate 2023/01/27 18:06:23 ...dules/git/command.go:215:Run() [D] [63d4129f-7] /git/gitea/data/gitea-repositories/Project/repo.git: /usr/bin/git -c protocol.version=2 -c credential.helper= -c filter.lfs.required= -c filter.lfs.smudge= -c filter.lfs.clean= rev-parse 2023/01/27 18:06:23 ...dules/git/command.go:215:Run() [D] [63d4129f-7] /git/gitea/data/gitea-repositories/Project/repo.git: /usr/bin/git -c protocol.version=2 -c credential.helper= -c filter.lfs.required= -c filter.lfs.smudge= -c filter.lfs.clean= cat-file --batch 2023/01/27 18:06:23 ...dules/git/command.go:215:Run() [D] [63d4129f-7] /git/gitea/data/gitea-repositories/Project/repo.git: /usr/bin/git -c protocol.version=2 -c credential.helper= -c filter.lfs.required= -c filter.lfs.smudge= -c filter.lfs.clean= for-each-ref --format=%(objectname) %(refname) refs/tags/ --sort=-taggerdate 2023/01/27 18:06:23 ...dules/git/command.go:215:Run() [D] [63d4129f-7] /git/gitea/data/gitea-repositories/Project/repo.git: /usr/bin/git -c protocol.version=2 -c credential.helper= -c filter.lfs.required= -c filter.lfs.smudge= -c filter.lfs.clean= cat-file --batch-check 2023/01/27 18:06:23 ...dules/git/command.go:215:Run() [D] [63d4129f-7] /git/gitea/data/gitea-repositories/Project/repo.git: /usr/bin/git -c protocol.version=2 -c credential.helper= -c filter.lfs.required= -c filter.lfs.smudge= -c filter.lfs.clean= for-each-ref --format=%(objectname) %(refname) refs/heads/ --sort=-committerdate 2023/01/27 18:06:23 ...s/context/context.go:220:HTML() [D] [63d4129f-7] Template: repo/settings/githooks 2023/01/27 18:06:42 ...s/context/context.go:220:HTML() [D] [63d412b2] Template: admin/dashboard 2023/01/27 18:06:49 ...rvices/cron/tasks.go:141:GetTask() [I] [63d412b9] Getting resync_all_hooks in &{{0 0} resync_all_hooks 0xc001cce480 0x1f73ac0 finished xlunde 1} 2023/01/27 18:06:49 ...s/context/context.go:220:HTML() [D] [63d412b9-3] Template: admin/dashboard 2023/01/27 18:07:42 ...dules/git/command.go:215:Run() [D] [63d412ee-2] /git/gitea/data/gitea-repositories/Project/repo.git: /usr/bin/git -c protocol.version=2 -c credential.helper= -c filter.lfs.required= -c filter.lfs.smudge= -c filter.lfs.clean= receive-pack --stateless-rpc --advertise-refs . 2023/01/27 18:07:43 ...dules/git/command.go:215:Run() [D] [63d412ee-4] /git/gitea/data/gitea-repositories/Project/repo.git: /usr/bin/git -c protocol.version=2 -c credential.helper= -c filter.lfs.required= -c filter.lfs.smudge= -c filter.lfs.clean= receive-pack --stateless-rpc /git/gitea/data/gitea-repositories/Project/repo.git 2023/01/27 18:07:43 ...dules/git/command.go:215:Run() [D] [63d412ef-2] /git/gitea/data/gitea-repositories/Project/repo.git: /usr/bin/git -c protocol.version=2 -c credential.helper= -c filter.lfs.required= -c filter.lfs.smudge= -c filter.lfs.clean= rev-parse 2023/01/27 18:07:43 ...dules/git/command.go:215:Run() [D] [63d412ef-2] /git/gitea/data/gitea-repositories/Project/repo.git: /usr/bin/git -c protocol.version=2 -c credential.helper= -c filter.lfs.required= -c filter.lfs.smudge= -c filter.lfs.clean= cat-file --batch 2023/01/27 18:07:43 ...dules/git/command.go:215:Run() [D] [63d412ef-2] /git/gitea/data/gitea-repositories/Project/repo.git: /usr/bin/git -c protocol.version=2 -c credential.helper= -c filter.lfs.required= -c filter.lfs.smudge= -c filter.lfs.clean= cat-file --batch-check 2023/01/27 18:07:43 ...dules/git/command.go:215:Run() [D] [63d412ef-8] /git/gitea/data/gitea-repositories/Project/repo.git: /usr/bin/git -c protocol.version=2 -c credential.helper= -c filter.lfs.required= -c filter.lfs.smudge= -c filter.lfs.clean= rev-parse 2023/01/27 18:07:43 ...dules/git/command.go:215:Run() [D] [63d412ef-8] /git/gitea/data/gitea-repositories/Project/repo.git: /usr/bin/git -c protocol.version=2 -c credential.helper= -c filter.lfs.required= -c filter.lfs.smudge= -c filter.lfs.clean= cat-file --batch 2023/01/27 18:07:43 ...dules/git/command.go:215:Run() [D] [63d412ef-8] /git/gitea/data/gitea-repositories/Project/repo.git: /usr/bin/git -c protocol.version=2 -c credential.helper= -c filter.lfs.required= -c filter.lfs.smudge= -c filter.lfs.clean= cat-file --batch-check 2023/01/27 18:07:43 ...dules/git/command.go:215:Run() [D] [63d412ef-8] /git/gitea/data/gitea-repositories/Project/repo.git: /usr/bin/git -c protocol.version=2 -c credential.helper= -c filter.lfs.required= -c filter.lfs.smudge= -c filter.lfs.clean= rev-list 2ac4edc541d1877efea02a087e05ce79a394b810..db07926c0a71667fccb5495129957e0baf170e28 2023/01/27 18:07:43 ...dules/git/command.go:215:Run() [D] /git/gitea/data/gitea-repositories/Project/repo.git: /usr/bin/git -c protocol.version=2 -c credential.helper= -c filter.lfs.required= -c filter.lfs.smudge= -c filter.lfs.clean= rev-parse 2023/01/27 18:07:43 ...dules/git/command.go:215:Run() [D] /git/gitea/data/gitea-repositories/Project/repo.git: /usr/bin/git -c protocol.version=2 -c credential.helper= -c filter.lfs.required= -c filter.lfs.smudge= -c filter.lfs.clean= cat-file --batch 2023/01/27 18:07:43 ...dules/git/command.go:215:Run() [D] /git/gitea/data/gitea-repositories/Project/repo.git: /usr/bin/git -c protocol.version=2 -c credential.helper= -c filter.lfs.required= -c filter.lfs.smudge= -c filter.lfs.clean= cat-file --batch-check 2023/01/27 18:07:43 ...dules/git/command.go:215:Run() [D] [63d412ef-8] /git/gitea/data/gitea-repositories/Project/repo.git: /usr/bin/git -c protocol.version=2 -c credential.helper= -c filter.lfs.required= -c filter.lfs.smudge= -c filter.lfs.clean= rev-list --max-count=1 2ac4edc541d1877efea02a087e05ce79a394b810 ^db07926c0a71667fccb5495129957e0baf170e28 2023/01/27 18:07:43 ...dules/git/command.go:215:Run() [D] [63d412ef-17] /git/gitea/data/gitea-repositories/Project/repo.git: /usr/bin/git -c protocol.version=2 -c credential.helper= -c filter.lfs.required= -c filter.lfs.smudge= -c filter.lfs.clean= log --name-status -c --pretty=format: --parents --no-renames -z -1 db07926c0a71667fccb5495129957e0baf170e28 2023/01/27 18:07:43 ...dules/git/command.go:215:Run() [D] /git/gitea/data/gitea-repositories/Project/repo.git: /usr/bin/git -c protocol.version=2 -c credential.helper= -c filter.lfs.required= -c filter.lfs.smudge= -c filter.lfs.clean= rev-list --count db07926c0a71667fccb5495129957e0baf170e28 2023/01/27 18:07:43 ...dules/git/command.go:215:Run() [D] [63d412ef-20] /git/gitea/data/gitea-repositories/Project/repo.git: /usr/bin/git -c protocol.version=2 -c credential.helper= -c filter.lfs.required= -c filter.lfs.smudge= -c filter.lfs.clean= rev-parse 2023/01/27 18:07:43 ...dules/git/command.go:215:Run() [D] [63d412ef-20] /git/gitea/data/gitea-repositories/Project/repo.git: /usr/bin/git -c protocol.version=2 -c credential.helper= -c filter.lfs.required= -c filter.lfs.smudge= -c filter.lfs.clean= cat-file --batch-check 2023/01/27 18:07:43 ...dules/git/command.go:215:Run() [D] [63d412ef-20] /git/gitea/data/gitea-repositories/Project/repo.git: /usr/bin/git -c protocol.version=2 -c credential.helper= -c filter.lfs.required= -c filter.lfs.smudge= -c filter.lfs.clean= cat-file --batch ### Git Version 2.5.1 ### Operating System Ubuntu 20 ### How are you running Gitea? Downloaded pre-builg package. Running with systemd, not in docker. ### Database MySQL
GiteaMirror added the type/bug label 2025-11-02 09:00:09 -06:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github-starred/gitea#10170