nous avons l'environnement suivant: un serveur Windows 2008 avec Apache 2.2.14 et SVN 1.6.6 via WebDAV. Plusieurs développeurs s'engagent dans le code Java à partir de différentes plates-formes Windows.Comment éviter la conversion du délimiteur de ligne (résultant en des numéros de lignes incorrects) dans le hook de pré-validation de Subversion?
Maintenant, nous voulons implémenter un hook pré-commit dans notre dépôt qui exécute Checkstyle sur le code validé. Nous utilisons SVNChecker (http://svnchecker.tigris.org/) pour cela, qui fonctionne plutôt bien. Malheureusement, lorsque Checkstyle signale des erreurs, les numéros de ligne dans les rapports sont les valeurs doubles des numéros de ligne réels.
Lorsque vous validez quelque chose dans SVN, il crée un répertoire temporaire avec les nouveaux fichiers. Ensuite, le hook pré-commit est exécuté et s'il réussit, les nouveaux fichiers sont réellement validés dans le référentiel. J'ai analysé ces fichiers temporaires dans un éditeur hexadécimal et j'ai découvert que toutes les nouvelles lignes (\ n) étaient remplacées par un retour chariot et une nouvelle ligne (\ r \ n). Comme nous utilisons les sauts de ligne Windows (\ r \ n) dans nos fichiers, ceci a abouti à \ r \ r \ n, qui est considéré comme deux nouvelles lignes par Checkstyle et plusieurs éditeurs de texte. La chose strage est que les sauts de ligne sont corrects lors de la vérification de notre dépôt, de sorte qu'ils sont en quelque sorte reconverti quelque part.
Je pourrais résoudre ce problème en définissant la propriété svn: eol-style (voir http://svnbook.red-bean.com/en/1.1/ch07s02.html#svn-ch-7-sect-2.3.5) en natif. Tout a fonctionné comme il se doit alors. Malheureusement, pour nous cela voudrait dire que nous devrions ajouter cette propriété à tous les fichiers de notre dépôt. Pour autant que je sache, il y a un paramètre dans le client SVN qui le fait automatiquement quand vous ajoutez un nouveau fichier, mais malheureusement nous ne pouvons pas dire à tous nos développeurs d'ajouter ce paramètre à leur client SVN.
La description de la propriété eol-style indique que «par défaut, Subversion ne prête aucune attention au type de marqueur de fin de ligne (EOL) utilisé dans vos fichiers». Pour moi, cela ressemble à un bug dans SVN que les nouvelles lignes sont néanmoins converties.
Est-ce que quelqu'un a une idée de comment résoudre ce problème sans utiliser des solutions de contournement laides telles que la conversion manuelle des retours à la ligne dans le crochet de pré-validation?
Merci pour votre aide, MEMMINGER