2010-07-13 3 views
4

Je travaille sur un site de commerce électronique, basé sur django-lfs, et je trouve que je dois apporter un certain nombre de changements au django-lfs J'ai commencé par placer django-lfs dans mon chemin pythons site-packages avec l'affichage que si je devais apporter des modifications au code, je le ferais en ajoutant des propriétés supplémentaires aux modèles, en ajoutant des propriétés. soit redéfinir le modèle d'URL (dans le cas où je devais faire quelque chose de différent dans une vue) ou le code patch singe. La pensée derrière cela était que je serais capable de garder le tronc django-lfs d'origine propre et non touché, ce qui me permet de le mettre à jour vers la version la plus récente puis de mettre à jour/tester indépendamment les remplacements locaux, sous-classe et des patchs de singe écrits.Meilleure façon d'intégrer l'application django externe dans un projet et de faire des modifications locales en toute sécurité

Comme vous l'avez peut-être deviné, cela devient rapidement un peu un cauchemar à gérer alors j'ai désespérément besoin d'une solution plus propre et plus stable. Le projet client se trouve dans un repo git et j'ai donc étudié des sous-modules ou des stratégies de fusion de sous-arbres ... de tout ce que j'ai lu, je trouve difficile de trouver des réponses définitives qui soient simples à comprendre (je suis relativement nouveau à git).

En bref, je dois être en mesure de:

1) Inclure un dépôt git externe dans les principaux projets repo 2) soit apporter des modifications directement à la prise en pension externe (mais l'avoir poussée à la git projets repo et non à l'origine distante externe) OU créez une copie locale du dépôt externe, puis fusionnez périodiquement le dépôt externe avec le dossier copié.

Je ne sais pas comment y parvenir. être clair, je voudrais finir avec la structure de dossier suivant:

  • PROJECT_NAME
    • MEDIA
    • COFFRE
      • APPS
        • django-LFS
    • EXTERNE-REPOS
      • django-LFS

L'application LFS dans le dossier-repo externe devraient être en mesure de tirer vers le bas des mises à jour de l'agent (externe) django -lfs repository et je devrais être capable d'apporter librement des modifications au dossier lfs stocké dans le dossier APPS. Ce que je cherche, si c'est possible, est un ensemble de commandes/instructions git pour réaliser ce qui précède et utiliser les dossiers real-worls décrits ci-dessus, plutôt que d'utiliser des références de foo et de barre.

Je tiens mes doigts croisés bien et espère que quelqu'un là-bas peut offrir quelques conseils :)

Répondre

1

Mon point de vue rapide sur ce point: soit le projet sur la fourche ou bitbucketgithub (selon vos préférences de hg contre git) et faites une branche pour vos changements. Cela permettra de synchroniser plus facilement votre branche et le maître officiel. Puis, en supposant que vous utilisez pip + virtualenv, ajoutez le pointeur à votre repo/branche dans votre fichier de configuration pip. LFS utilise buildout, donc pas très sûr de ce que serait l'équivalent de python setup.py develop (par exemple pour installer le paquet dans vos paquets de site virtualenv mais avec des liens vers votre repo afin de pouvoir faire des changements sans avoir à exécuter constamment l'installation .py).

Questions connexes