From the command line ok, but hook (git)

I want to automatically update the redmine project repository after someone clicks on the remote repo. Currently, gin in redmine works and works great. But after auto updating with hook I get The entry or revision was not found in the repository.in redmine.

To set up git in redime, I followed the redmine wiki , so the repo was created usinggit clone --bare

To update the redmine git repository, I use this cd /srv/www/redmine.domain.com/git_repositories/linode.git && git fetch && git reset --soft refs/remotes/origin/master

  • manual update when starting from the command line under the gituser is working fine

manual screenshot

remote: Counting objects: 5, done.
remote: Compressing objects: 100% (3/3), done.
remote: Total 3 (delta 2), reused 0 (delta 0)
Unpacking objects: 100% (3/3), done.
From domain.com:linode
  * [new branch]      master     -> origin/master
  • the same thing does not work correctly when running the form post-receivehook (see the error above). It works under the same user (git). First hook line#!/bin/sh

: git (1.7.0.4) + (1.5.7) ubuntu

GIT_DIR byt SET   remote:/srv/www/redmine.domain.com/git_repositories/linode.git[K   remote: GIT_DIR = '.' [K

git path hook

export GIT_DIR=/srv/www/redmine.domain.com/git_repositories/linode.git
or unset GIT_DIR

.

echo "Post receive-hook => updating Redmine repository"
#env -i git reset --hard
#unset $(git rev-parse --local-env-vars)
#unset GIT_DIR


cd /srv/www/redmine.domain.com/git_repositories/linode.git
pwd
git fetch
git reset --soft refs/remotes/origin/master

Pushing to git@domain.com:linode
remote: Post receive-hook => updating Redmine repository[K
remote: From domain.com:linode[K
remote: /srv/www/redmine.domain.com/git_repositories/linode.git[K
remote:    4755447..13b8e3d  master     -> origin/master[K
To git@domain.com:linode
  4755447..13b8e3d  master -> master

calling-git-pull-from-a-git-post-update-hook git-post-receive-hook-with-git-pull-failed-to-find-a-valid-git-directory,

Update

echo "Post receive-hook => updating Redmine repository"
export GIT_DIR=

cd /srv/www/domain.com/git_repositories/linode.git

echo "Resetting working tree..."
git reset --hard
echo "Finished resetting working tree."

git fetch
git reset --soft refs/remotes/origin/master

+ redmine redmine

Pushing to git@domain.com:linode
remote: Post receive-hook => updating Redmine repository[K
remote: Resetting working tree...[K
remote: fatal: Not a git repository: ''[K
remote: Finished resetting working tree.[K
remote: fatal: Not a git repository: ''[K
remote: fatal: Not a git repository: ''[K
To git@domain.com:linode
 c553a15..854d159  master -> master

Update2

, git fetch , git reset --soft refs/remotes/origin/master , . redmine. git fetch , . "git fetch" "commnand" .

+3
1

, , git fetch, hook ( gitolite), (, ) , redmine ` .

chmod -R 770 redmine_repo.git

0

Source: https://habr.com/ru/post/1774093/


All Articles