2015-09-10 4 views
-1

Je vais essayer d'être aussi franc que possible sur mon problème.Besoin d'aide [étape par étape] pour configurer et tester un hook de pré-validation dans SVN fonctionnant sur une machine Linux à laquelle j'accède à distance

Je suis sur un ordinateur Windows. Le référentiel SVN est sur une machine Linux.

J'accède à distance à la machine Linux en utilisant Putty et en me connectant en tant qu'utilisateur root. Tout est fait à travers la ligne de commande.

Maintenant, je dois configurer un hook de pré-validation qui n'autorise pas les caractères spéciaux comme [éáú] sur les fichiers de code source. Pour ce faire, j'ai cherché à savoir comment configurer un hook de pré-commit.

Voici ce que je l'ai fait:

  1. Trouvé un script
  2. Je suis allé dans le dossier des crochets dans le référentiel. Suppression de l'extension du fichier pré-commit.tmpl
  3. Collé le scénario et il a sauvé
  4. Ran la commande chmod sur le fichier pré-commit.tmpl

J'ai essayé un changement commiting dans le référentiel et je suis:

Commit bloqué par le crochet de pré-validation (code de sortie 255) sans sortie

D'accord, j'ai pensé que quelque chose n'allait pas dans la façon dont j'ai configuré le fichier pré-commit, j'ai donc supprimé le script et ajouté un simple écho "hello world".

Maintenant, la validation est exécutée, mais le message d'écho n'apparaît pas du tout. Si je mets exit 1 à la fin du script, j'obtiens le code d'erreur 1 et le message d'écho n'apparaît toujours pas.

J'ai littéralement cherché haut et bas sur internet et n'ai trouvé aucune solution à mon problème.

Ce que je besoin:

  • Une explication des raisons pour lesquelles les messages d'écho ne se présentent pas
  • Si possible, une étape par étape sur la façon de configurer et tester un script simple

Par exemple, j'ai vu beaucoup de scripts où il y a quelque chose comme ceci:

#!/bin/bash
REPOS="$1"
TXN="$2"

Que dois-je mettre en REPOS et TXN? Je suppose dans REPOS que je devrais mettre le chemin du référentiel? Qu'en est-il de TXN?

Toute aide est appréciée.

Vive

+0

1' $ et '' 2' $ sont des variables représentant les premier et deuxième arguments au script. Vraisemblablement SVN court votre script avec ceux-ci correctement. Vous n'avez pas besoin de faire quoi que ce soit là-bas le plus probable. Ce que ces * signifient * dépend du crochet et de la documentation du crochet SVN. –

+0

http://svnbook.red-bean.com/fr/1.7/svn.ref.reposhooks.pre-commit.html –

+0

J'ai déjà lu que Etan, ça n'a pas aidé. En fait, pas même quelque chose d'aussi simple que echo "bonjour monde" sortie 1 fonctionne – tyranius

Répondre

1

billette du crochet de pré-validation (* Nix-adopté)

défaut Toujours

#!/bin/bash 
echo You failed 1>&2 
exit 1 

échantillon commit

>svn commit -m "Changes" 
Sending  Folder1\Folder2\Folder3 
Sending  Folder4 
svn: E165001: Commit failed (details follow): 
svn: E165001: Commit blocked by pre-commit hook (exit code 1) with output: 
You failed 

Remarque correcte redirection de la sortie dans echo

À propos de $ REPO et $ TXN (déjà lié) chapitre SVN livre ont des explications complètes

Les arguments de ligne de commande transmis au programme de crochet, afin , sont:

  1. chemin Repository
  2. Engagez nom de transaction

parce que ces paramètres sont nécessaires pour le plus souvent utilisé dans les crochets pre-commit commandes, comme svnlook