Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
Ставим gitolite 3.03 на сервер:
$ emerge gitolite
redmine/public/dispatch.fcgi
.post-recieve/post-update
хук такого вида:#!/bin/bash
REDMINE_KEY=
REDMINE_SERVER=
curl http://${REDMINE_SERVER}/sys/fetch_changesets?key=${REDMINE_KEY}
.gitkeep
, а не .gitignore
, последний обычно используется по прямому назначению.Sometimes an empty .gitignore file is used as a placeholder for an empty path, for example to force git to generate a log/ path for your development environment to use.
.gitkeep
, как и .gitignore
с этой целью — конвенции. Лично я предпочитаю использовать .gitignore
по его прямому предназначению.в SVN, чтобы проверить работоспособность фичи в ветке в последних актуальных условиях (голова транка), нужно либо замержить ветку в транк, что в нашем случае не вариант, либо замержить транк в ветку, проверить работоспособность, после чего слияние с транком будет _очень_ болезненным, потому что теперь все изменения транка с момента создания ветки будут самостоятельными изменениями ветки
git svn rebase
, при этом появляются все недостающие коммиты. Правда для этого нужно было делать git svn clone
без опции --no-metadata, потому что git svn ищет последнюю подтянутую ревизию в комментариях истории коммитов.git svn clone
, делаю git svn fetch
, при этом внезапно (для меня) изменения стягиваются в ветку git-svn, с которой уже работаю как с обычной веткой в частности git merge git-svn
.
Переезд проекта с SVN на Git