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

Entrée/Sortie Java Discussion :

[ JavaSVN ] Statut d'un fichier


Sujet :

Entrée/Sortie Java

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2004
    Messages : 48
    Par défaut [ JavaSVN ] Statut d'un fichier
    Bonjour,

    Nous utilisons Subversion comme outil de versionning et dans le cadre d'une intégration continue, j'aurais besoin de comparer une arborescence locale avec la repository. C'est à dire que je dois tester le statut de chaque fichier.

    En cherchant un peu, j'ai trouvé l'API javaSVN qui est d'ailleurs l'API utilisée par les plugins eclipse Subclipse ou Subversive.
    Mon problème est que j'arrive à établir une connection, mais je n'arrive pas à obtenir un statut correct sur certains fichiers. Par exemple, un fichier modifié en local sera bien du type MODIFIED mais un fichier en conflit me donne le même statut au lieu de me donner CONFLICTED...

    J'arrive pas à me débarrasser de ce problème alors SVP, si quelqu'un connait cette API, merci de me renseigner.

    Voici mon code pour l'initialisation de la connection :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    File vWorkspaceDirectory = new File("monWorkspaceLocal");
     
    SVNRepositoryFactoryImpl.setup();
     
    //Espace de travail
    ISVNOptions      options        = SVNWCUtil.createDefaultOptions(vWorkspaceDirectory, true);
    SVNClientManager vClientManager = SVNClientManager.newInstance(options, "urlRepository", "");
     
    SVNStatusClient sStatusClient = vClientManager.getStatusClient();
    Code pour tester un fichier :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    SVNStatus status = sStatusClient.doStatus(pFichier, false);
    SVNStatusType type = status.getContentsStatus();
    Je remercie d'avance ceux qui répondront... je n'ai pas trouvé grand chose sur le net...

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2004
    Messages : 48
    Par défaut
    Ohoh !! Allez y doucement, j'arrive pas à suivre avec toutes ces réponses
    Personne n'a la solution apparement et ça ne m'étonne pas trop vu ce que l'on peut trouver sur le sujet sur le net.

    Donc, après avoir longuement cherché et testé, j'ai enfin trouvé une solution
    Ce n'est peut être pas LA solution ultime mais ça marche et si quelqu'un trouve mieux, je suis preneur.
    Je donne tout de même ma soluce parce que j'aurais été content de la trouver.

    En gros, je fais exactement ce que je décris dans mon premier post. Je parcours mon arborescence locale et je compare fichier par fichier (les dossiers aussi) par rapport à la repository SVN. Lorsque je tombe sur un statut MODIFIED, le fais un traitement plus approfondie sur le fichier.

    Code de connection :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    //Workspace local
    final File vWorkspaceDirectory = new File(pWorkspace);
    SVNRepositoryFactoryImpl.setup();
    DAVRepositoryFactory.setup();
    final ISVNOptions vOptions = SVNWCUtil.createDefaultOptions(vWorkspaceDirectory, false);
    final SVNClientManager vClientManager = SVNClientManager.newInstance(vOptions, "loginSVN", "MotDePasseSVN");
    SVNStatusClient sStatusClient = vClientManager.getStatusClient();
    Traitement d'un fichier MODIFIED
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    final SVNStatus vStatus = sStatusClient.doStatus(pFichier, true);
    final SVNRevision vMyRevision      = vStatus.getRevision();
    final SVNRevision vCurrentRevision = vStatus.getRemoteRevision();
     
    if ((vCurrentRevision != null) && (vMyRevision.getNumber() < vCurrentRevision.getNumber())) {
         //EN CONFLIT
    }
    else {
         //Modifié
    }
    Voilà tout !
    J'espère que ça aura aidé quelqu'un.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2003] Comment modifier le statut d'un fichier Excel ouvert
    Par MichaSarah dans le forum Excel
    Réponses: 3
    Dernier message: 18/04/2013, 10h47
  2. Réponses: 1
    Dernier message: 24/02/2010, 11h19
  3. [TortoiseSVN] Statut fichier non mis à jour
    Par jeffvac dans le forum Subversion
    Réponses: 6
    Dernier message: 16/04/2008, 11h43
  4. Fichier en statut RECOVERY
    Par big1 dans le forum Administration
    Réponses: 3
    Dernier message: 24/01/2008, 15h12
  5. Réponses: 4
    Dernier message: 08/03/2006, 17h26

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