IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Discussion :

W7 - GIT et les commandes dos - Please HELP!


Sujet :

Windows

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Homme Profil pro
    Développeur Java
    Inscrit en
    Septembre 2014
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Septembre 2014
    Messages : 5
    Par défaut W7 - GIT et les commandes dos - Please HELP!
    Bonjour à tous.

    Fraichement migré sous Git, j'essaie désespérément de palier au manque de SVN info pour que le fichier de compte rendu de la compil du projet contienne un minimum d'info vitales, à savoir les numéros de révision distants et local.
    Juste histoire de vérifier que l'on embarque la bonne version.

    Pour ce faire, je me suis basé là dessus
    https://gist.github.com/jcaddel/c730015b3fe2397420b5

    Que j'ai adapté à ma sauce dans un fichier .bat et traduit de la sorte puisque je ne suis pas sous minux
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    "%BinVersionExe%" remote > c:\temp\temp.txt
    set /p remoted=<c:\temp\temp.txt
    "%BinVersionExe%" rev-parse --abbrev-ref HEAD > c:\temp\temp.txt
    set /p branche=<c:\temp\temp.txt
    "%BinVersionExe%" rev-parse "%remoted%"/"%branche%" > c:\temp\temp.txt
    set /p lastRemoteCommit=<c:\temp\temp.txt
    echo %lastRemoteCommit%
    "%BinVersionExe%" --no-pager log --max-count=1 ^| head -n1 ^| cut -d ' ' -f2 > c:\temp\temp.txt
    set /p lastLocalCommit=<c:\temp\temp.txt
    
    echo Remote URL : %Branch% >> %nameInfoFile%
    echo Branch : %remoted%/%branche% >> %nameInfoFile%
    echo Last local commit : %lastLocalCommit% >> %nameInfoFile%
    echo Last remote commit : %lastRemoteCommit%  >> %nameInfoFile%
    echo Compilation start time: %startTime% >> %nameInfoFile%
    echo Compilation end time: %entTime%>> %nameInfoFile%
    "%BinVersionExe%" contient le lien vers l'exécutable GIT

    Le problème vient de la ligne suivante:
    "%BinVersionExe%" --no-pager log --max-count=1 ^| head -n1 ^| cut -d ' ' -f2 > c:\temp\temp.txt

    A l'exécution, j'ai le doux message d'insulte suivant:
    fatal: ambiguous argument '|': unknown revision or path not in the working tree.

    Use '--' to seprate paths from revisions, like this:
    ...


    Par contre, quand je lance la même commande dans une fenêtre simple, je récupère ce que je veux, à savoir le n° de révision locale.


    J'ai essayé en supprimant la partie de la commande problématique :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "%BinVersionExe%" --no-pager log --max-count=1  > c:\temp\temp.txt
    Dans mon fichier temporaire je récupère le résultat complet de la commande à savoir
    commit fiouuqu'ilestlonlenumero
    Author: le responsable du futur fiasco en prod
    Date: Thu Oct 5 11:21:34 2017 +0200
    [POURQUOI] ben comment
    Ce coup-ci, l'affectation de la variable fonctionne "bien" (je ne récupère que la première ligne de fichier, sacré dos va!!!)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    set /p lastLocalCommit=<c:\temp\temp.txt
    mais c'est l'insertion dans le fichier de rapport qui ne se fait pas.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo Last local commit : %lastLocalCommit% >> %nameInfoFile%
    La donnée s'affiche uniquement à l'écran.
    Last local commit : commit fiouuqu'ilestlonlenumero
    Je précise que toutes les autres données sont bien présentes dans le fichier de rapport.


    Auriez-vous une idée de ce qui se passe car je sèche lamentablement...


    Please HELP!!!

  2. #2
    Membre à l'essai
    Homme Profil pro
    Développeur Java
    Inscrit en
    Septembre 2014
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Septembre 2014
    Messages : 5
    Par défaut
    J'avance un petit peu dans mon problème.

    Pour la première version
    "%BinVersionExe%" --no-pager log --max-count=1 ^| head -n1 ^| cut -d ' ' -f2 > c:\temp\temp.txt

    pour que cela fonctionne, il faudrait que j'embarque toute la config d'une jvm dans mon script. Bref, c'est sortir un bazooka pour tuer une puce...

    Donc, on oublie.

    Par contre, j'aimerai bien récupérer dans mon fichier le contenu de ma variable lastLocalCommit quand j'utilise la version light de la commande
    "%BinVersionExe%" --no-pager log --max-count=1 > c:\temp\temp.txt

    Parce que pour l'instant elle ne fait que s'afficher.

    N'y aurait-il pas un caractère 'saut de ligne' embarqué qui foutrait la grouille et si oui, comment m'en débarasser?

  3. #3
    Membre à l'essai
    Homme Profil pro
    Développeur Java
    Inscrit en
    Septembre 2014
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Septembre 2014
    Messages : 5
    Par défaut
    En attendant d'avoir une solution plus propre un jour, ben j'ai fait un truc bien pourri à la windaube mais qui à l'avantage de fonctionner....

    Je passe par un second fichier temporaire....

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    "%BinVersionExe%" --no-pager log --max-count=1 > c:\temp\temp.txt
    for /f "delims=" %%a in (c:\temp\temp.txt) do (
    	echo %%a >> c:\temp\temp2.txt
    break
    )
    set /p lastLocalCommit=<c:\temp\temp2.txt

    Je sais, c'est de la merde.... J'ai honte...

Discussions similaires

  1. les commandes du Dos
    Par km_mino dans le forum Scripts/Batch
    Réponses: 3
    Dernier message: 14/02/2008, 11h54
  2. les commande dos
    Par king.inf dans le forum Windows XP
    Réponses: 6
    Dernier message: 20/07/2006, 19h58
  3. [DOS] Les commands
    Par charaf dans le forum Scripts/Batch
    Réponses: 11
    Dernier message: 19/01/2006, 13h28
  4. [MS-DOS] Une commande DOS pour activer les mises à jour auto
    Par Furius dans le forum Scripts/Batch
    Réponses: 20
    Dernier message: 02/12/2005, 16h21
  5. [MS-DOS] Les commandes
    Par l@rry dans le forum Scripts/Batch
    Réponses: 4
    Dernier message: 10/01/2005, 14h18

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo