Git рабочая копия в хранилище Subversion - PullRequest
5 голосов
/ 14 июня 2011

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

Что произойдет, если я просто проверю репозиторий Git в своей рабочей копии SVN и верю файлы?

ПРИМЕЧАНИЕ Git-svn не вариант, я никогда не использовал его и, к сожалению, у меня нет времени, чтобы изучить что-то новое для этого.

Ответы [ 3 ]

2 голосов
/ 14 июня 2011

Просто клонируйте репозиторий Git. Ничего плохого не произойдет, и вы сможете обновить этот код, выполнив git update. Вы можете смело делать git-репо в Subversion, я делал это раньше.

1 голос
/ 14 июня 2011

Нет никаких технических проблем с этим, но это будет хлопотно. Каждый раз, когда вы вносите изменения, вам нужно будет зафиксировать их в Git, затем добавить все новые файлы, которые были созданы в репозитории Git, в Subversion, а затем зафиксировать все это в Subversion. Когда вы объединяете любое из его изменений, вам нужно будет сделать все это также.

Один вопрос, который у меня есть, - зачем вам это делать; Какую выгоду вы получаете от использования в Subversion? Если вам нужно объединить изменения с его вышестоящим репозиторием, вам все равно придется изучать Git. На этом этапе вы можете просто использовать Git для контроля версий, а не усложнять процесс интеграции с Subversion. Если вы просто отправите ему окончательный код и дадите ему возможность интегрировать его, тогда зачем проверять репозиторий Git в Subversion? Просто сделайте то, что вы обычно делаете, проверьте текущую копию в Subversion, поработайте над ней, а затем отправьте ему окончательный результат, когда вы закончите.

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

0 голосов
/ 14 июня 2011

Предлагаемое решение должно работать, так как git и svn имеют разные метафайлы, и если вы не добавите метафайлы для одной системы контроля версий в другую, между ними нет конфликта.

Обратите внимание, что всякий раз, когда вы изменяете свои файлы, вам придется добавлять их как в git, так и в subversion, и, следовательно, вам придется иметь дело с двумя разными системами управления файлами.

Как вы намекаете, использование git-svn поможет вам, поскольку позволит вам работать только с git, а затем использовать git-svn для синхронизации с вашим центральным репозиторием svn. Я делаю это на работе, и это очень просто сделать, и это работает безупречно (большую часть времени). Я хотел бы изучить это, я был тобой. В любом случае вам придется изучать git, чтобы эффективно работать с клиентом, а изучение git-svn относительно просто. У вас в основном всего три команды:

  • git svn fetch - чтобы получить последние svn изменения в вашем репо
  • git rebase git-svn - включить изменения svn
  • git svn dcommit - передать в репозиторий svn

Изучение git того стоит, так как в конце концов я нахожу его намного лучше svn.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...