Comment supprimer le référentiel Git avec Gitosis

10

J'utilise Gitosis pour administrer certains référentiels Git sur un serveur distant. Depuis que je suis au début avec ça, je fais beaucoup d'erreurs. C'est pourquoi en ce moment, je dois supprimer un référentiel Git que j'ai créé avec Gitosis. Est-ce possible avec Gitosis ou dois-je me connecter à cette machine et le faire à partir de là?

Ionuț G. Stan
la source

Réponses:

13

La gitose en elle-même n'a pas de fonction de suppression en raison de la façon dont elle est gérée via git commits. Si vous supprimez le référentiel du gitosis.confet validez la modification, le référentiel n'est plus accessible. Vous pouvez le réactiver ultérieurement ou vous pouvez éventuellement vous connecter au serveur et supprimer le fichier du repositories/répertoire gitosis .

J'ai cloné mon gitosis-admin.gitréférentiel et ajouté les éléments suivants, puis commis:

[group gitosis-admin]
writable = gitosis-admin test1
members = jbouse

Je suis ensuite allé dans mon répertoire personnel et j'ai effectué les opérations suivantes:

mkdir test1
cd test1
git init
git remote add origin git@server:test1.git
echo "Testing" > test.txt
git add test.txt
git commit -m 'First commit'
git push origin master:refs/heads/master

Cela devrait réussir à pousser vers le serveur, puis j'ai effacé le test1répertoire et le clone de gitosis:

git clone git@server:test1.git
cd test1
echo "Test worked" > test.txt
git add test.txt
git commit -m 'Second commit'
git push

Cela devrait également pousser avec succès, donc je supprime ensuite la test1ligne de la gitosis.confconfiguration et valide la modification ... J'essaie ensuite ce qui suit:

cd test1
echo "Final test" > test.txt
git add test.txt
git commit -m 'Third commit'
git push

Contrairement aux deux poussées précédentes, celle-ci échoue avec le message d'erreur suivant:

ERROR:gitosis.serve.main:Repository read access denied
fatal: The remote end hung up unexpectedly

L'erreur est due au fait que gitosis n'a rien configuré pour le test1référentiel maintenant. Si vous essayez de cloner à nouveau le référentiel, vous recevrez la même erreur.

Jeremy Bouse
la source
5
Après cela, vous pouvez supprimer les référentiels physiques sur le serveur. Connectez-vous, allez dans le répertoire personnel de git, allez dans "référentiels" à partir de là, et vous avez des répertoires pour tous vos référentiels. Supprimez ceux que vous avez désactivés dans gitosis.conf.
Eugene Lazutkin
2

Vous devez vous connecter à la machine et y supprimer le référentiel, puis vous devez également supprimer le référentiel du fichier de configuration de gitosis.

f.ederi.co
la source
0

La réponse de Jeremy Bouse est une bonne stratégie, mais ne supprime pas réellement le dépôt. Parfois, vous devrez peut-être spécifiquement supprimer le référentiel en raison de l'espace disque, de la sécurité, etc.

Je recommanderais donc la méthode d'ultrafedde, avec l'ajout que vous devrez probablement susupprimer le dépôt que l'utilisateur "git" que vous configurez possède.

Bryan Kennedy
la source