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

GIT Discussion :

clone --no-hardlinks


Sujet :

GIT

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 64
    Points : 34
    Points
    34
    Par défaut clone --no-hardlinks
    Bonjour,

    Je viens d'adopter git pour la gestion de mes projets informatiques.
    J'ai crée un dépôt nu (init --bare) sur mon serveur et je voudrais le cloner sur le serveur.

    Quand le dépôt est vide je peux le cloner sans problème avec un avertissement "le dépôt est vide".

    Sur mon clone je rajoute un fichier et je fait un commit. Ensuite push origin master. Pas de soucis!!

    Je supprime mon clone, et je souhaite cloner à nouveau mon dépôt mis à jour sur le serveur.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     git clone Ref/ Clone
    Cloning into 'Clone'
    done.
    error:refs/remotes/origin/master does not point to a valid object!
    error: Trying to write ref refs/heads/master with nonexistent object <hash>
    fata: Cannot update the ref 'head'
    fatal: The remote end hung up unexpectedly
    Si je fait le clone en local sur mon ordinateur -> Pas de soucis.
    Si je le fait sur le serveur avec l'option --no-hardlink -> Pas de soucis
    Si l’opération est faite par un collègue avec windows XP -> Pas de soucis.

    J'ai du mal à comprendre, auriez vous des pistes à ce sujet???

    PS: Je suis sur windows 7

  2. #2
    Membre éprouvé

    Homme Profil pro
    Architecte technique
    Inscrit en
    Juin 2005
    Messages
    588
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Juin 2005
    Messages : 588
    Points : 1 230
    Points
    1 230
    Par défaut
    Je ne comprends pas : qu'est-ce qui ne marche pas ? Cloner sur la même machine ? Les options --no-hardlinks et --local sont là pour faciliter le clonage en local...

    Tu peux faire un git fsck pour contrôler l(intégrité de ton dépot.

    a+

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 64
    Points : 34
    Points
    34
    Par défaut
    Merci pour ta réponse,

    Sur le serveur git n'est pas installé, j'utilise git à partir de ma machine locale pour cloner dans le serveur un dépôt qui est sur le serveur. Dans cette configuration je n'arrive pas à cloner.
    Par contre quand j'utilise l'option --no-hardlinks, ou faire le clone en local sur ma machine à partir du serveur, ou même si un collègue fait le clone avec windows XP dans le serveur l’opération réussie.

    Plus important que ça je n'arrive pas a comprendre ce qui est cette option -no-hardlinks, même en lisant la doc git!!

    Merci

  4. #4
    Membre éprouvé

    Homme Profil pro
    Architecte technique
    Inscrit en
    Juin 2005
    Messages
    588
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Juin 2005
    Messages : 588
    Points : 1 230
    Points
    1 230
    Par défaut
    Donc si je résume... tu as
    - une machine A (sans Git) avec un bare repository (Windows ? Linux ? autre ?)
    - une machine B avec Git sous Win7
    - une machine C avec Git sous XP
    - la bare repo (créé depuis B) est sur une partition partagée accessible depuis B et C

    Tu veux cloner le bare repo depuis B ou C dans un emplacement sur A
    => celà réussit sur XP (C)
    => celà echoue sur Win7 (B)

    Les 3 machines sont en NTFS ! Exact ?
    As-tu la même version de Git sur XP et Win7 ?

    Sous Windows, IMHO, l'option --no-hardlinks ne devrait pas avoir d'effet... tu sembles démontrer le contraire Avec --no-hardlink tes objets (contenu dans le dossier objects) sont simplement copiés en dur.
    As-tu réalisé ton bare avec cette option (i.e. git clone --bare --no-hardlink) ?
    As-tu regardé les différents logs ?
    As-tu testé git fsck ?

    Autre piste (douteuse ?): j'ai cru voir que certains ont des problèmes avec les anti-slash de windows pour les noms des branches ! Pour corriger ce problème, il semble suffire de faire un git remote rm origin sur ton dépot bare vide puis un git remote add origin //server/...

    Cdlt,
    Philippe

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 64
    Points : 34
    Points
    34
    Par défaut
    Donc si je résume... tu as
    - une machine A (sans Git) avec un bare repository (Windows ? Linux ? autre ?)Windows Server 2008
    - une machine B avec Git sous Win7
    - une machine C avec Git sous XP
    - la bare repo (créé depuis B) est sur une partition partagée accessible depuis B et C

    Tu veux cloner le bare repo depuis B ou C dans un emplacement sur A
    => celà réussit sur XP (C)
    => celà echoue sur Win7 (B)

    Les 3 machines sont en NTFS ! Exact ? Oui
    As-tu la même version de Git sur XP et Win7 ?Oui

    Sous Windows, IMHO, l'option --no-hardlinks ne devrait pas avoir d'effet... tu sembles démontrer le contraire Avec --no-hardlink tes objets (contenu dans le dossier objects) sont simplement copiés en dur.
    Cela veut dire que sans cette option mes objets ne sont pas réellement la? ou c'est seulement une histoire de chemins relatifs et absolus
    As-tu réalisé ton bare avec cette option (i.e. git clone --bare --no-hardlink) ?

    Pour créer mon dépôt j'ai crée un dépôt nu avec:
    git init --bare,
    ensuite j'ai cloné ce repertoire avec:
    git clone ref clone
    J'ai mis mon projet à jour (copie des fichiers)
    Et ensuite j'ai fait un add ->commit -> push

    As-tu regardé les différents logs ?

    Tout me semble correct..

    As-tu testé git fsck ?
    Oui, il me dit que le répertoire est intègre.
    Je vais tester la piste des antislashs, Merci pour ces infos

Discussions similaires

  1. Clone()
    Par Jenaye dans le forum Langage
    Réponses: 3
    Dernier message: 02/11/2005, 22h49
  2. Réponses: 2
    Dernier message: 29/10/2005, 12h51
  3. Clone Matlab
    Par devmat dans le forum Applications et environnements graphiques
    Réponses: 2
    Dernier message: 30/04/2005, 16h44
  4. [VB.NET] DataTable.Clone ne veut rien savoir
    Par anthony70 dans le forum Windows Forms
    Réponses: 2
    Dernier message: 09/12/2004, 19h57

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