Gitea: Les crochets de mise à jour sont cassés lorsque vous déplacez gitea vers un autre dossier

Créé le 7 janv. 2017  ·  3Commentaires  ·  Source: go-gitea/gitea

  • Version Gitéa : 1.0.1
  • Version Git : ?
  • Système d'exploitation : Arch Linux ARM, à jour
  • Base de données (utilisez [x] ):

    • [ ] PostgreSQL

    • [ ]MySQL

    • [x] SQLite

  • Pouvez-vous reproduire le bug sur https://try.gitea.io :

    • [ ] Oui (fournir un exemple d'URL)

    • [ ] Non

    • [x] Non pertinent

La description

Description du problème / message d'erreur

  1. Vous pouvez cloner, tirer n'importe quoi. SSH correctement configuré et blabla.
  2. Le message d'erreur sur push est le suivant (où git-mirror est l'hôte de la machine).
[lycheejs] (development)$ git push mirror development
Counting objects: 80, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (76/76), done.
Writing objects: 100% (80/80), 15.28 KiB | 0 bytes/s, done.
Total 80 (delta 50), reused 0 (delta 0)

# XXX: Note this /home/alarm/gitea path, this is the outdated update hook path
remote: hooks/update: line 2: /home/alarm/gitea: Permission denied

remote: error: hook declined to update refs/heads/development
To git-mirror:Artificial-Engineering/lycheejs.git
 ! [remote rejected] development -> development (hook declined)
error: failed to push some refs to 'git@git-mirror:Artificial-Engineering/lycheejs.git'

Étapes à reproduire

  1. Gitea installé sur /home/alarm pour expérimenter, le démarrer et le configurer.
  2. Configurez le compte d'utilisateur git correct.
  3. Plus tard, j'ai déplacé les choses vers /opt/gitea parce que j'y ai un support de disque dur externe (fonctionnant sur un Raspberry Pi 2).
  4. Tout était configurable et modifiable dans le custom/conf/app.ini
  5. SAUF les crochets de mise à jour. Ceux-ci contiennent des chemins statiques vers l'ancien binaire.

Quickfix pour les autres

J'ai créé un petit script qui suppose que le dossier ./gitea-repositories se trouve dans le même dossier que le binaire gitea et qui corrige tous les crochets de mise à jour une fois exécutés. Dans mon cas, il est situé dans /opt/gitea/fix_repos.js où les repos sont dans /opt/gitea/gitea-repositories . Lien vers le script fix_repos.js .

Problèmes causés

J'ai vu quelques problèmes dans les gogs en amont où les gens avaient les mêmes problèmes. Il n'est absolument pas clair que vous ne pouvez pas vous déplacer dans gitea car je suppose qu'un binaire peut être copié/collé avec ses fichiers de configuration et qu'il devrait fonctionner isolément dans ce dossier.

Suggestion

Il est peut-être judicieux d'avoir une routine de démarrage qui vérifie l'intégrité de tous les crochets de mise à jour lorsque le service Web gitea est démarré. Pour qu'il s'assure simplement que tous les chemins sont à jour et pointent vers le bon binaire.

revieweinvalid

Commentaire le plus utile

Entrez dans le panneau d'administration Gitea sur l'interface utilisateur, exécutez Réécrire le fichier '.ssh/authorized_keys' (attention : les clés non-Gitea seront perdues) et Réécrivez tous les crochets de mise à jour des référentiels (nécessaires lorsque le chemin de configuration personnalisé est modifié).

Tous les 3 commentaires

Entrez dans le panneau d'administration Gitea sur l'interface utilisateur, exécutez Réécrire le fichier '.ssh/authorized_keys' (attention : les clés non-Gitea seront perdues) et Réécrivez tous les crochets de mise à jour des référentiels (nécessaires lorsque le chemin de configuration personnalisé est modifié).

Étant donné que les données sont une partie statique, elles doivent être réécrites dans l'interface utilisateur d'administration.

J'essaie d'abord de pousser git mais j'obtiens cette erreur.

[télécommande rejetée] maître -> maître (crochet de pré-réception refusé)

J'exécute Update the '.ssh/authorized_keys' file with Gitea SSH keys. (Not needed for the built-in SSH server.) mais j'ai une erreur.

ouvrez C:\Windows\system32\config\systemprofile.ssh\authorized_keys.tmp : Le système ne trouve pas le chemin spécifié.

Ensuite, je lance Resynchronize pre-receive, update and post-receive hooks of all repositories.

Et j'essaie de pousser à nouveau et tout fonctionne bien.

Je ne suis pas sûr que pour cela ou la mise à jour .ssh/authorized_keys fonctionne même si elle affiche une erreur ou quelque chose mais ça marche ! Je ne sais pas pourquoi.

Cette page vous a été utile?
0 / 5 - 0 notes