1

В настоящее время я пытаюсь настроить git front-end в хранилище Subversion.

Мой Subversion репозиторий - это один большой репозиторий, который состоит из нескольких связанных проектов:

svn-root
  |-- project1
  |   |-- branches
  |   |-- tags
  |   `-- trunk
  |-- project2
  |   |-- branches
  |   |-- tags
  |   `-- trunk
  `-- project3
      |-- branches
      |-- tags
      `-- trunk

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

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

Чтобы упростить проблему, я бы просто скопировал весь корневой каталог git svn clone и оставил там каталоги branch branches/tags/trunk . Но это определенно приведет к слишком большому количеству файлов в каталогах branches и tags . В Subversion, это легко просто установить глубину проверки на immediates которые только Извлекают название филиала / тег, без содержимого каталога. но я не знаю, можно ли это сделать в git .

Git-SVN испортил меня. Я надеюсь, что есть более элегантное решение.

2 ответа2

1

Вам не нужно проверять всю историю как бы то ни было. Следующий оператор проверяет только самые последние изменения:

git clone --depth 1 user@server.com:project

Такая проверка НЕ подходит для редактирования и повторной регистрации, но она удобна для обмена текущей базой кода или для развертывания в производство и т.д.

0

Там действительно нет хорошего способа сделать это. Git не поддерживает частичные проверки. Так что либо вы храните все это в одном репозитории и проверяете все сразу, либо используете субмодули и сохраняете перемещение файла к минимуму. См. Также https://stackoverflow.com/questions/1365541/how-to-move-files-from-one-git-repo-to-another-not-a-clone-preserving-history по последнему пункту.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .