He creado un repositorio de origen git llamado nombre_proyecto/.git.
ssh to the server, (entering ssh passwords or passphrases as I go)
mkdir project_name
cd project_name
git init
touch fabfile.py
git add fabfile.py
git commit -a -m "almost empty"
git checkout -b web
Dejo branch web checked out. De vuelta a la máquina local.
Extraigo del servidor mediante clonación y agregué los contenidos de mi directorio de proyecto en la rama principal en el repositorio local. No utilizaré el tejido, solo configuraré las cosas, aunque supongo que también podría automatizar estos pasos, y ninguno de ellos necesita otra frase de contraseña ssh.
cd /path/to/project_name/..
git clone ssh://[email protected]_server.com/var/web/project_name/.git
cd project_name
gvim fabfile.py
git add fabfile.py
git commit -a -m "fabfile edits"
Ahora empiezo a usar tela. A continuación es un extracto de mi fabfile para la gestión de etiquetas git y ramas:
#Usage: fab committag brpush | fab committag push | fab push | fab tag
def committag():
"""commit chgs, tag new commit, push tags to server."""
prompt('commit descr: ', 'COM_MSG', default='new stuff')
prompt('commit name: ', 'COM_NAME', default='0.0.1')
local('git commit -a -m "%(COM_MSG)s"' % env)
local('sleep 1')
local('git tag -u "John Griessen" -m "%(COM_MSG)s" %(COM_NAME)s' % env)
local('sleep 1')
local('git push origin --tags') #pushes local tags
def brpush():
"""create a new branch, default COM_NAME, then push to server."""
prompt('new branch name: ', 'BR_NAME', default= '%(COM_NAME)s' % env)
local('git checkout -b %(BR_NAME)s' % env)
local('sleep 2')
local('git checkout master')
local('git push origin --tags') #pushes local tags
local('git push --all origin') #pushes local master and branches
def push():
"""Push existing tags and changes to server."""
local('git push origin --tags') #pushes local tags
local('git push --all origin') #pushes local master and branches
def tag(): #Call this from committag()
"""create a gpg signed tag on the local git repo tag from prompted name ."""
prompt('tag descr: ', 'TAG_MSG', default='0.0.1')
prompt('tag name: ', 'TAG_NAME', default='0.0.1')
local('git tag -u "John Griessen" -m "%(TAG_MSG)s" %(TAG_NAME)s' % env)
Para utilizar las defs fabfile anteriores, acabo de hacer algunos cambios en mi proyecto dir, pensar en un mensaje de apporpriate sobre ellos, y hacer:
$fab committag
y tengo cambios etiquetados y actualizados en el servidor. O bien:
$fab committag brpush
y tengo una nueva rama creada y el servidor actualizado.
duplicado posible de [Cómo responder a las solicitudes de forma automática con la tela de pitón?] (Http://stackoverflow.com/questions/10479078/how-to-answer-to-prompts-automatically- with-python-fabric) – Breedly