Использование подмодулей git в проекте git-svn - PullRequest
15 голосов
/ 23 декабря 2010

В нашем управляемом проекте git-svn у нас есть 3 вышестоящих проекта, которые хранятся в собственных репозиториях git на GitHub.Поскольку исходный код этих исходных проектов находится под нашим контролем и часто меняется, наше текущее решение, а именно повторное развертывание артефактов сборки в супер-проекте каждый раз, когда мы меняем что-то, довольно громоздко.

Что бы яхотелось бы иметь вот что:

parent project (git-svn):
    --> submodule 1 (git)
    --> submodule 2 (git)
    --> submodule 3 (git)

Таким образом, исходный код для субмодулей 1-3 компилируется вместе с исходными кодами для супер-проекта, но я могу отдельно отправить изменения в субмодули.

Вопрос в том, что происходит, когда я git svn dcommit на родительском проекте?Это вообще работает?

ОБНОВЛЕНИЕ Хм, я просто настроил простую структуру проекта, пытаясь походить на этот сценарий, и получаю это сообщение об ошибке при попытке dcommit на суперпроекте:1013 *

a0301b11f3544a1e71067ff270eded65e4c8afbd doesn't exist in the repository at /opt/local/libexec/git-core/git-svn line 4775
Failed to read object a0301b11f3544a1e71067ff270eded65e4c8afbd at /opt/local/libexec/git-core/git-svn line 574

Есть идеи / предложения?

Ответы [ 2 ]

10 голосов
/ 15 февраля 2011

Вы не можете сделать это, подмодули git не могут быть переданы по потоку в хранилище svn через git-svn, это не поддерживается.

5 голосов
/ 13 мая 2012

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

Перевод одновременно безопасен и довольно прозрачен (svn: ignores будет переведен в Git ignores, EOL в .gitattributes, теги в теги и т. Д.)

...