Si tiene aplicaciones reutilizables, colóquelas en un repositorio independiente.
Si usted está preocupado por el número de repositorios privados echar un vistazo a bitbucket (si decide hacerlos código abierto, aconsejo github)
No es una buena manera de incluir sus propias aplicaciones en la proyecto, incluso haciendo uso de etiquetas de versión:
Recientemente encontré una forma de hacerlo con las etiquetas buildout y git (utilicé svn: externals para incluir una aplicación, pero pasé de svn a git recientemente).
me trataron mr.developer primera, pero mientras no conseguir que esto funcione He encontrado una alternativa para mr.developer:
descubrí gp.vcsdevlop es muy fácil de usar para este propósito.
ver https://pypi.python.org/pypi/gp.vcsdevelop
terminé, poner esto en mi archivo buildout y tengo trabajo a la vez (he tenido que añadir un requirements.txt pip a mi aplicación para que funcione, pero eso es una buena cosa después de todo):
vcs-update = True
extensions =
gp.vcsdevelop
buildout-versions
develop-dir=./local_checkouts
[email protected]:<my bitbucket username>/<the app I want to include>[email protected]#egg=<the appname in django>
develop = .
en este caso chacks a cabo mi aplicación y clonar a la versión 0.1.38 etiqueta para el proyecto en el subdit ./local_checkouts/ y lo desarrolla cuando se ejecuta bin/buildout
Edición: comentario 26 de agosto de 2013
Al usar esta solución y edición en esta comprobación local de la aplicación utilizada en un proyecto. Descubrí esto:
obtendrá esta advertencia al intentar el comando normal 'git push origin master
':
To prevent you from losing history, non-fast-forward updates were rejected
Merge the remote changes before pushing again. See the 'Note about
fast-forwards' section of 'git push --help' for details.
EDITAR 28 de augusta 2013
sobre el trabajo en las local_checkouts para aplicaciones compartidas incluidos por gp.vcsdesarrollar:
(y manejar la advertencia discutida en el remakr anterior)
git push origin + maestro parece arruinar cometer la historia para el código compartido
Así que la forma de trabajar en el directorio local_checkout es así:
ir a la caja local (después de un bin/buildout por lo que la salida es el maestro):
cd localcheckouts/<shared appname>
Crear una nueva rama y swith para de esta manera:
uso git checkout -b 'issue_nr1'
(por ejemplo,el nombre de la sucursal está aquí el nombre de la cuestión que se está trabajando)
y después de que haya terminado de trabajar en este Branche, utilice: (después del GIT lo habitual añadir y git commit)
git push origin issue_nr1
cuando probado y completado la fusión rama de nuevo en el maestro:
primer pago y envío al maestro:
git checkout master
actualización (probablemente sólo cuando neede otra confirmación en la media hora)
git pull
y combinar con el maestro (dónde se encuentra en este momento):
git merge issue_nr1
y finaly empujar esta fusión:
git push origin master
(con gracias sepcial a esta guía simplificada git: http://rogerdudler.github.io/git-guide/) y después de un tiempo, para limpiar las ramas, es posible que desee eliminar esta rama
git branch -d issue_nr1
Mantenga las aplicaciones en un repositorio por ahora, especialmente si tiene un solo proyecto. Mientras mantenga sus aplicaciones pequeñas y enfocadas, generalmente es sencillo generalizarlas lo suficiente como para trabajar con otro proyecto. Como dijo Jeremy, este esfuerzo no vale la pena hasta que lo necesites. – jds