J'ai mis en place un référentiel d'origine git appelé nom_projet/.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
Je laisse la ligne de dérivation vérifiée. Retour à la machine locale.
Je tire du serveur par l'intermédiaire de clone et a ajouté mon contenu de dir de projet dans le maître de branche sur le repo local. Je n'utilise pas de tissu, mais je suppose que ces étapes peuvent être automatisées, et aucune d'entre elles n'a besoin d'une autre phrase secrète 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"
Maintenant, je commence à utiliser le tissu. Ci-dessous est un extrait de mon fabfile pour la gestion des balises git et branches:
#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)
Pour utiliser les defs fabfile ci-dessus, je viens de faire quelques changements à mon projet dir, pense d'un message apporpriate à leur sujet, et à faire:
$fab committag
et j'ai des modifications marquées et mises à jour sur le serveur. Ou:
$fab committag brpush
et une nouvelle branche a été créée et le serveur a été mis à jour.
double possible de [Comment répondre aux invites automatiquement avec le tissu python?] (Http://stackoverflow.com/questions/10479078/how-to-answer-to-prompts-automatically- avec-python-fabric) – Breedly