Перенос существующего Git-репозитория в SVN

Я делал всю свою работу в Git и продвигался к GitHub. Я был очень доволен как программным обеспечением, так и сайтом, и у меня нет желания менять свою рабочую практику на этом этапе.

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

Затем я хочу просто запустить пару команд для отправки коммитов в этот SVN-репозиторий, когда я выберу. Я хочу продолжать использовать Git и просто иметь зеркало репозитория SVN, что есть в Git.

Я буду единственным человеком, когда-либо совершавшим SVN, если это что-то изменит.

380
задан 26.10.2018, 09:37

3 ответа

Если Вы хотите продолжить работать с Мерзавцем как Ваш основной репозиторий и просто должны "экспортировать" изменения SVN время от времени, Вы могли использовать Адаптация для хранения репозитория SVN в синхронизации. Это может скопировать изменения между системами управления другого источника и обновило бы SVN с изменениями, которые Вы вносите в Мерзавце.

я не попробовал преобразование Git-to-SVN, но для SVN->, пример SVN видит этот ответ .

2
ответ дан 17.09.2019, 10:52
  • 1
    @PlatinumAzure, повышения ValueError. Я предполагаю that' s довольно корректный способ обработать пустую последовательность, как он doesn' t имеют смысл просить первое не у повторенного символа в "" – John La Rooy 09.10.2019, 01:49

Можно сделать новый репозиторий SVN. Экспортируйте свой проект Мерзавца (излагающий в деталях .git файлы). Добавьте его к репозиторию SVN (инициализирующий репозиторий с тем, что Вы имели до сих пор в Мерзавце). Тогда используйте инструкции для импорта репозиториев SVN в новом проекте Мерзавца.

, Но это потеряет Вашу предыдущую историю Мерзавца.

0
ответ дан 17.09.2019, 10:52
  • 1
    Я думаю, что Ваш код работает правильно теперь. Примечание о производительности: тестирование, если элемент находится в списке, является O (m), где m является длиной списка. С длинной строкой unicode с большим количеством различных повторных символов, эти character in repeated станет медленным, поскольку repeated содержит все больше элементов. – Mark Byers 09.10.2019, 01:58

Создайте новый каталог в репозитории Подрывной деятельности для Вашего проекта.

# svn mkdir --parents svn://ip/path/project/trunk

Изменение в Вашем управляемом Мерзавцами проекте и инициализируют мерзавца-svn.

# git svn init svn://ip/path/project -s
# git svn fetch

Это создаст единственную фиксацию, потому что Ваш каталог проекта SVN все еще пуст. Теперь повторно основывайте все на той фиксации, git svn dcommit, и Вы должны быть сделаны. Это серьезно испортит Ваши даты фиксации, все же.

8
ответ дан 17.09.2019, 10:52
  • 1
    Я использовал этот ответ с инструкциями в hassox.blogspot.com/2007/12/using-git-with-svn.html , я следовал за этими командами, тогда " #git переходят-a" видеть магистральное имя. Тогда: контроль мерзавца #-b локальная-svn соединительная линия # ведущее устройство слияния мерзавца # мерзавец svn dcommit Помнит к .gitignore .svn каталог! – cflewis 20.03.2009, 08:39
  • 2
    Поскольку я просто сделал ту же операцию, я хотел сделать ее явной что в течение некоторого времени теперь (январь ' 09), мерзавец может выполнить переосновную операцию на корневой фиксации. Это делает процесс намного более простым, чем много старых статей указывает, см. комментарии its.arubything.com/2009/1/4/… – Louis Jacomet 18.02.2010, 04:36
  • 3
    Что делает "-s" мерзавец svn init опция делает? Я can' t видят это в страницах справочника для мерзавца svn. – Nathan 17.02.2011, 15:30
  • 4
    Прочитайте страницу справочника снова, возможно, ищите “-s”, потому что это там. It’s псевдоним для “ - stdlayout”. – Bombe 17.02.2011, 19:04
  • 5
    @MichaelJ.Barber: Что-либо как массив или хэш-таблица будет O (1), но некоторые ответы здесь используют деревья и линейные списки, которые имеют типичные времена доступа O (зарегистрируйте n) к O (n). Таким образом, заключительные алгоритмы являются O (n, регистрируют n), или даже O (n^2). – Adrian McCarthy 09.10.2019, 01:49

Теги

Похожие вопросы