Как использовать git-репозиторий в качестве svn: external? - PullRequest
3 голосов
/ 05 декабря 2011

SVN предлагает ссылку на внешний источник через функцию svn:external. И я использую модуль из репозитория Git. Могу ли я использовать этот репозиторий Git в качестве внешнего источника?

Мой модуль Git находится в Github. Так что Github определенным образом также приветствуется.

Ответы [ 3 ]

3 голосов
/ 05 декабря 2011

Github объявил о поддержке SVN. https://github.com/blog/626-announcing-svn-support

Я добавил свой репозиторий Github как svn:external напрямую.

2 голосов
/ 05 декабря 2011

Хранилище на Github может действовать как хранилище Subversion. См. в этом блоге об улучшенной поддержке SVN . Вроде бы очень медленно, но работает.

Другим решением для размещения репозитория git в репозитории SVN было бы установить svn: ignore в каталоге вложенного репозитория и использовать Makefile для клонирования и обновления репозитория git.

cd svn-repository
svn propset svn:ignore gitdir .

Затем сделайте что-то подобное с Makefile или другой системой сборки.

GITREPO=git://github.com/schwern/perl5i.git
GITDIR=gitdir

all : $(GITDIR)

$(GITDIR)/.git :
    git clone $(GITREPO) $(GITDIR)

$(GITDIR) : $(GITDIR)/.git
    cd $(GITDIR) && git pull

Первый вызов make клонирует репозиторий git. Последующие звонки сделают обновление.

Мне больше нравится это решение. Он не полагается на Git-репозиторий на Github и не на эмуляцию. Git-репозиторий можно использовать как git-репозиторий, вместо того, чтобы проходить эмуляцию, где конфликтующие концепции между git и SVN могут вызвать проблемы.

0 голосов
/ 05 декабря 2011

Просто загрузите tarball или zipball с GitHub, используя этот URL:

https://github.com/UserName/ProjectName/zipball/master

Или, если вы предпочитаете tarballs:

https://github.com/UserName/ProjectName/tarball/master

Это снимки кода, заархивированные.

...