Fournisseur de Branches de Git

Un projet Git a dans un deuxième projet dont le contenu est travaillé de manière indépendante.

Submodules ne peut pas être utilisée pour les plus petits, car même le sous-projet doit être incluse lorsque les utilisateurs tentative de cloner ou de télécharger le "parent".

Sous-arbre de fusion ne peut pas être utilisé, comme le sous-projet est activement développé et sous-arborescence de la fusion de fait, il est très difficile de faire fusionner ces mises à jour dans le projet d'origine.

J'ai été informé que la solution est connue dans le SVN monde en tant que "Fournisseur de Branches", et qu'il en est ainsi tout simplement fait dans Git de manière à ne même pas besoin de s'attaquer.
Mi-cuit tutoriels abondent sur le net.

Néanmoins, je n'arrive pas à le faire fonctionner.

Quelqu'un peut s'il vous plaît (jolie s'il vous plaît?) expliquer comment je peux créer une structure dans laquelle un projet existe à l'intérieur d'un autre, et les deux peuvent être développés et mis à jour à partir du même répertoire de travail.
Idéalement [ou plutôt: il est très important, si non pris en charge] que lorsqu'un client tente de télécharger le "parent" du projet, qu'il devrait être compte tenu de la dernière version de la sous-projet automatiquement.

Merci de ne PAS m'expliquer comment je dois utiliser les submodules ou sous-arborescence-fusionne ou même la propriété SVN:Externals. Ce fil est la conséquence de le suivant de SORTE que le thread, et si quelque chose a été oubliée là, merci de NE poster il. Ce fil est d'essayer d'obtenir
une compréhension de la façon de Fournisseur de branches, et de plus, plus claire et plus dummied une explication je reçois le plus heureux je serai.

  • Juste ajouté un peu de pensée basé sur votre commentaire: n'hésitez pas à affiner si qui ne répond pas complètement à la situation
  • Juste ajouté plus de réflexion sur vos besoins, mais toujours sans réponse définitive. Désolé pour ça.
  • Viens de voir vos commentaires sur Paul de réponse ( stackoverflow.com/questions/720669/... ) : il est certainement plus avancé dans Git questions que je suis. J'espère qu'il va fournir plus de détails (mais il aurait peut-être vous demander plus de détails à propos de ce qu'est le blocage de vous, tout de même)
  • Ruby? Git n'a rien à voir avec ruby... il a été conçu pour le noyau Linux. Git bash a toujours fonctionné pour moi les rares jours, je suis sur un système Win32.
  • Oui, GIT a été créé (plutôt à la hâte) pour Linux par Torvalds lui-même, et de Rubis adoptée qu'après qu'elle a atteint un stade de bêta. Néanmoins, dans de nombreux tutoriels que donner des exemples (que j'ai rencontré), le code est Rubis au lieu de directement Bash. Je suis heureux pour vous - à la fois pour ne pas avoir à être sur de Gagner, et pour avoir GIT travailler quand vous en avez besoin. Je soupçonne que vous êtes l'exception, pas la règle.
  • L'essentiel de mon argument a été confirmé. GIT n'est pas prêt pour des heures de grande écoute et msysgit est presque désespérée (flux de travail: push..échoué, pousser...l'échec de pousser..succès - soupir) Le rubis commentaire est totalement hors-sujet, mais vous devriez vérifier: github.com/rails/rails/tree/master..... Et de l'annonce: weblog.rubyonrails.org/2008/4/2/rails-is-moving-from-svn-to-git.
  • C'est sur le sujet... vous garder en soutenant que git est liée à ruby. Il n'est pas. Le Rail n'est pas ruby.
  • Si GIT n'est pas prêt pour le prime time alors comment se fait-il est utilisé par de nombreux projets? Je trouve aussi GIT tutoriels très intuitive.
  • GIT a parcouru un long chemin depuis le mois d'avril (voir les messages de validation). Et maintenant que nous utilisons tous distribués VC, c'est le meilleur là-bas. Mais pour les utilisateurs de Windows, c'est pas encore sur des choses qui devraient être dans v1, (comme les fins de ligne, ou en ignorant d'un état spécifique). Mais pourquoi me gagner un -1?
  • Ce que vous décrivez n'est pas une branche vendeur. Une branche vendeur est l'endroit où vous maintenir une version personnalisée d'un produit tiers, et la troisième partie vous donne seulement le code source, pas d'accès à leur dépôt. Lorsque vous recevez une mise à jour à partir de la troisième partie, vous vous engagez à votre fournisseur de succursale de, la fusion de leurs modifications dans votre branche master.
  • Merci pour cette question. Vous avez réussi à mettre des mots sur une question qui a ete me harceler pendant des semaines. Je suis en train de travailler sur la façon de gérer un patchwork dépôt git de base de Drupal, modules personnalisés et des modules contribués etc, et cette question est donc pertinente pour.
  • Une autre approche est intéressant de mentionner ici est de savoir comment le Chrome de l'équipe résout ce problème en utilisant DEPS fichiers gérés par les outils livrés avec depot_tools.

InformationsquelleAutor SamGoody | 2009-04-20