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

Linux Discussion :

[Shell] svn diff HEAD:HEAD-1


Sujet :

Linux

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 159
    Points : 46
    Points
    46
    Par défaut [Shell] svn diff HEAD:HEAD-1
    Bonjour,

    je voudrais faire un petit script qui me sort un svn diff entre le HEAD et la version HEAD-1.

    ----------------------------------

    #!/bin/bash
    #

    FILE="$1"
    REVISIONS=""

    if [ $# -ne 1 ]; then
    echo "ERROR, missing params"
    fi

    REVISIONS[] = svn log -l2 $FILE | grep '|' | awk '{print $FILE}'

    svn diff -r REVISIONS[0]:REVISIONS[1] --diff-cmd meld $FILE

    ----------------------------------

    et l'appel :

    sh diff.sh monfichier





    Je ne sais pas comment récuperer les 2 numéros de révisions du awk dans un tableau et les utiliser ensuite ds la ligne svn diff.

    Merci de votre aide

  2. #2
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 552
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 552
    Points : 19 386
    Points
    19 386
    Par défaut
    Bonjour,

    renseigne-toi, entre autre, sur la substitution de commandes dans le man bash.
    mais,
    que sort svn log -l2 $FILE ?
    que devrait contenir chaque élément du tableau ?

    grep | awk c'est trop : awk utilise des regex pour sélectionner ce qu'il doit traiter.

    si tu lances ton script avec sh, c'est sh qui exécutera le script, et si sh est un lien vers ((d)a)sh, alors tu ne pourras pas utiliser de tableaux.
    .
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 159
    Points : 46
    Points
    46
    Par défaut
    svn log -l2 monfichier me sort :



    ------------------------------------------------------------------------
    r4197 | user1 | 2011-08-22 20:06:33 +0200 (lun. 22 août 2011) | 2 lignes

    commentaire1

    ------------------------------------------------------------------------
    r4167 | user2 | 2011-08-22 12:05:48 +0200 (lun. 22 août 2011) | 2 lignes

    commentaire2

    ------------------------------------------------------------------------




    Il faut que je récupere r4197 et r4167 pour les utiliser dans mon diff.

  4. #4
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 552
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 552
    Points : 19 386
    Points
    19 386
    Par défaut
    il faut vérifier que ceci affiche ce que tu veux :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    svn log -l2 $FILE | awk -F'|' 'BEGIN{ OFS=" " } ( NF == 4 ){print $1}'
    si c'est le cas, alors :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    array=( $(svn log -l2 $FILE | awk -F'|' 'BEGIN{ OFS=" " } ( NF == 4 ){print $1}') )
    svn diff -r ${array[0]}:${array[1]} --diff-cmd meld $FILE
    .
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 159
    Points : 46
    Points
    46
    Par défaut
    svn log -l2 $FILE | awk -F'|' 'BEGIN{ OFS=" " } ( NF == 4 ){print $1}'

    me retourne bien le bon résultat, à savoir :

    r4197
    r4167

    mais la ligne :

    array=( $(svn log -l2 $FILE | awk -F'|' 'BEGIN{ OFS=" " } ( NF == 4 ){print $1}') )

    ne marche pas j'ai une erreur : Syntax error: "(" unexpected

    Je continue à chercher! merci de ton aide

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 159
    Points : 46
    Points
    46
    Par défaut
    Ce code fonctionne :


    #!/bin/bash
    #

    FILE="$1"

    if [ $# -ne 1 ]; then
    echo "ERROR, missing params"
    exit 1
    fi

    array=$(svn log -l2 $FILE | awk -F'|' 'BEGIN{ OFS=" " } ( NF == 4 ){print $1}')

    REVISION1=$(echo $array | awk -F' ' '(NF == 2){print $1}')
    REVISION2=$(echo $array | awk -F' ' '(NF == 2){print $2}')

    svn diff -r $REVISION1:$REVISION2 --diff-cmd meld $FILE

  7. #7
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 552
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 552
    Points : 19 386
    Points
    19 386
    Par défaut
    tu exécutes encore ton script avec sh ?
    .
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

Discussions similaires

  1. Réponses: 1
    Dernier message: 30/11/2009, 11h09
  2. Réponses: 3
    Dernier message: 10/10/2009, 22h34
  3. Suppression d'une ligne en shell ' sed' ou 'head'
    Par Findly dans le forum Shell et commandes GNU
    Réponses: 2
    Dernier message: 04/01/2008, 14h12
  4. Section <head> </head> non interprétée
    Par olive_le_malin dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 28/12/2007, 17h57
  5. requete mysql dans<head></head>
    Par calitom dans le forum Requêtes
    Réponses: 8
    Dernier message: 16/03/2006, 16h18

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