L'intégration de Git dans XCode 4 est la bienvenue cependant, elle semble être un peu capricieux quand il s'agit de traiter avec des dépôts distants. Pour plus de clarté, je suis sous mac OS X, la version 10.6.7 et XCode 4.0.2 (4A2002a).
Si je crée un nouveau XCode 4 du Projet et d'accepter la possibilité de créer un dépôt Git local, tout est bien. Je peux engager localement et c'est génial.
Quand j'ai envie de pousser le nouveau projet de GitHub, je veux ajouter un dépôt distant et de pousser mes modifications locales jusqu'à GitHub. Je peux ajouter un dépôt GitHub pour XCode 4 comme un nouveau Référentiel dans l'Organisateur de la fenêtre mais il n'y a pas de méthode de le définir comme un dépôt distant pour mon projet existant.
J'ai donc passer à l'utilisation de git commandes dans le Terminal.
git remote add origin https://<username>@github.com/<organization>/<repository>.git
Si je puis revenir à XCode 4 et essayez de l'utiliser
Fichier -> Contrôle De La Source -> Pousser...
ensuite, le choix du dépôt de pour pousser les changements. boîte de dialogue affiche la liste de l' origine des dépôts distants. Il y a un indicateur jaune en disant que l'Authentification est requise, ce qui est bien car je n'ai pas été en mesure d'entrer mes identifiants encore pour HTTPS. Cependant lorsque je clique sur "Push" et il essaie de pousser les modifications, il dit: "L'opération n'a pas pu être effectuée car l'accès au répertoire "origine " refusé".
Une boîte de dialogue qui invite moi pour mon nom d'utilisateur et le mot de passe s'affiche ensuite avec mon pré-rempli donc ça doit être la lecture de cet correctement à partir du référentiel local de la config.
Lorsque j'entre mon mot de passe XCode 4 puis se bloque avec l'erreur suivante
ASSERTION FAILURE in /SourceCache/IDEKit/IDEKit-303/Framework/Classes/SourceControl/IDESourceControlOperationInfo.m:59
Details: Message sent to invalidated object: <IDESourceControlPushOperationInfo, 0x200bd2a80>. Backtrace for invalidation:
(null)
Object: <IDESourceControlPushOperationInfo: 0x200bd2a80>
Method: -invalidate
Thread: <NSThread: 0x200020700>{name = (null), num = 1}
Hints: None
Si je redémarre XCode l' origine du référentiel a été ajouté à la Dépôts navigateur de l'Organisateur et je peux voir la branche master sur GitHub, donc je sais que les informations d'identification sont à droite sans me changer quoi que ce soit.
Quelqu'un a trouvé un moyen fiable de l'utilisation de XCode 4 avec GitHub de commencer avec un projet local en premier?
Si je clone un existant GitHub avec un projet XCode, l'ouvrir avec XCode 4 ensuite, même si le premier semble Pousser à l'échec, la 2ème pousser a travailler. Alors peut-être à partir de zéro absolu avec XCode 4 création du référentiel pour moi n'est pas le meilleur modèle (jusqu'à ce qu'ils améliorent le Git de l'outillage dans une version ultérieure de XCode 4).
MODIFIER AVEC DE PLUS AMPLES DÉTAILS D'UNE SOLUTION DE CONTOURNEMENT
Cet exemple ne s'applique vraiment à le premier projet que vous ajoutez à un dépôt GitHub. En tant que tel, je pense que vous êtes mieux avec les étapes suivantes, en gardant à l'esprit il ya encore semblent être certains XCode 'pièges' dans cette solution.
- Élément de la liste
- "Se connecter à un référentiel" de Bienvenue à XCode boîte de dialogue.
- Utiliser GitHub URL SSH pour l'Emplacement
- Donnez-lui un nom (RepositoryName)et le Clone d'un répertoire
- 1ère tentative apparaît à l'échec, même si les contenus sont téléchargés
- Essayez de Nouveau, et cela fonctionne.
- Il y a maintenant un nouveau Référentiel défini dans l'Organisateur de la fenêtre avec son origine sur le GitHub à distance SSH URL.
- Créer un Nouveau Projet dans le répertoire que vous venez de cloner, mais NE cochez PAS la "Créer un dépôt git local pour ce projet," option.
- N'initiale s'engager à dépôt Git local.
- Essayez de Contrôle de la Source -> Push et XCode 4 ne fonctionne pas avec " L'opération n'a pas pu être effectuée en raison de l'accès au référentiel RepositoryName a été refusé. Vérifier le nom d'utilisateur et le mot de passe'
- Essayez de Contrôle de la Source -> Push et XCode 4 apparaît le Dépôt distant boîte de dialogue nouveau, mais cette fois a détecté un Dépôt distant appelé origine. À côté de cela il y a une boule jaune et "Authentification requise".
- En cliquant sur "Push" à nouveau provoqué la distance Pousser à travailler.
Une chose que j'ai repéré et pas réussi à travailler encore, c'est que la réponse des messages à partir de GitHub avec l'arrivée de la valeur de hachage et les messages semblent être déclarés dans XCode Journal navigateur Push défaillances, même si le Push est un succès autant que GitHub est concerné.
Quelqu'un d'autre a une meilleure solution?