GIT-SVN и большой проект - PullRequest
2 голосов
/ 18 ноября 2009

Я просмотрел сеть и многое узнал о работе с git-svn и ветвями, но ничего, что подходит для моей ситуации.

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

Все, что я хочу сделать, это объединить изменения из одного репозитория svn в другой с помощью git-svn, но я не нашел способа сделать это с помощью Google или документации git-svn. Я обрабатываю это в svn, поддерживая отдельный svn checkout в своем собственном каталоге для каждой ветви, и просто использую команду merge для получения изменений. Я ожидал, что смогу сделать нечто подобное с помощью git-svn, но я не нашел способа получить изменения из другой ветви svn. Есть ли способ сделать это?

Ответы [ 2 ]

2 голосов
/ 18 ноября 2009

Вы можете использовать подход, аналогичный Mercurial: одна ветка на репозиторий.

Каждая ветка SVN будет жить в репозитории git через git-svn (предназначенный для импорта / экспорта только одной ветви).
Между Git-репозиториями вы можете затем отслеживать ветку другого git-репо (он же еще один SVNbranch), извлекать его в данное git-репо (еще один SVNbranch) и объединять его с вашей текущей мастер-веткой до того, как git-svn dcommit вернется к соответствующий svn филиал.

0 голосов
/ 18 ноября 2009

У вас может быть локальный общий клон вашего репозитория git-svn. Но тогда вам придется обновить оба отдельно. Лучшим подходом было бы использовать git-new-workdir , который создаст для вас новый рабочий каталог с отдельным индексом, но с общим репо. Таким образом, если вы обновите / получите новые коммиты в исходном репо, они станут видны и в другом рабочем каталоге. Таким образом, вы можете использовать отдельные рабочие директории для каждой из ваших ветвей.

...