make-файл: как добавить префикс к базовому имени?

У меня есть установка моста для некоторых моих проектов, но это только односторонне от мерзавца к 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 могли бы помочь также:

38
задан PeeHaa 13 October 2012 в 12:54
поделиться

1 ответ

Посмотрите на функцию 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'. 
73
ответ дан 27 November 2019 в 03:32
поделиться
Другие вопросы по тегам:

Похожие вопросы: