У меня есть установка моста для некоторых моих проектов, но это только односторонне от мерзавца к svn (обеспечение общедоступного зеркала SVN только для чтения нашего ведущего ответвления мерзавца). Однако, так как это хорошо работает, это могло бы помочь Вам или указать на Вас в правильном направлении в Вашем двухстороннем сценарии так или иначе, поскольку я предполагаю, что это - мерзавец-> svn, который делает проблемы, не svn-> мерзавец:
Мой односторонний сценарий: Существующий репозиторий мерзавца в GitHub, нуждайтесь в svn зеркале только для чтения ведущего ответвления мерзавца
, Создают и инициализируют целевой репозиторий подверсии на Сервере:
svnadmin create svnrepo
mkdir trunk
svn import trunk svn://yoursvnserver/svnrepo
rmdir -rf trunk
Создают смешанный контроль Мерзавца-Svn и инициализируют репозиторий подверсии
git svn clone svn://yoursvnserver/svnrepo/trunk
cd trunk
git remote add github git://github.com/yourname/repo.git
git fetch github
git branch tmp $(cat .git/refs/remotes/github/master)
git tag -a -m "Last fetch" last tmp
INIT_COMMIT=$(git log tmp --pretty=format:%H | tail -1)
git checkout $INIT_COMMIT .
git commit -C $INIT_COMMIT
git rebase master tmp
git branch -M tmp master
git svn dcommit --rmdir --find-copies-harder
Обновление зеркало
git fetch github
git branch tmp $(cat .git/refs/remotes/github/master)
git tag -a -m "Last fetch" newlast tmp
git rebase --onto master last tmp
git branch -M tmp master
git svn dcommit --rmdir --find-copies-harder
mv .git/refs/tags/newlast .git/refs/tags/last
Это, две статьи от googlecode могли бы помочь также:
Посмотрите на функцию addprefix в Make.
Вот пример, который мы используем с adduffix для размещения файлов obj на один каталог ниже источник.
SOURCE += MainThread.cpp SOURCE += Blah.cpp OBJ=$(join $(addsuffix ../obj/, $(dir $(SOURCE))), $(notdir $(SOURCE:.cpp=.o)))
Из руководства make: http://www.gnu.org/software/make/manual/make.html
$(addprefix prefix,names...) The argument names is regarded as a series of names, separated by whitespace; prefix is used as a unit. The value of prefix is prepended to the front of each individual name and the resulting larger names are concatenated with single spaces between them. For example, $(addprefix src/,foo bar) produces the result `src/foo src/bar'.