Миграция из VSS в Git с сохранением истории - PullRequest
0 голосов
/ 06 сентября 2018

Я пытаюсь преобразовать Visual SourceSafe Repository в Git, сохраняя при этом точную историю версий. Поэтому я попытался использовать https://github.com/trevorr/vss2git.. Это сработало, но не сохранило историю. Поэтому я попытался использовать TFS в качестве посредника. Я использовал последнюю версию TFS и мастер ее обновления, но она не сохранила историю, поэтому я попробовал с TFS 2013 ( Как перенести VSS 2005 на TFS 2015? ) и мастер обновления, но все же нет истории. Сейчас я в отчаянии и не знаю, в чем проблема, поскольку я даже проанализировал свой VSS-репозиторий, и ошибок не было найдено. Я читал, что я мог бы также попробовать использовать SVN в качестве посредника, поэтому я сделаю это, но я скептик.

Ответы [ 3 ]

0 голосов
/ 10 сентября 2018

Я нашел решение, и программы, которые я использовал, работают.Просто я пытался переместить слишком много данных, чтобы они просто сбивали и не сохраняли историю.Я не уверен, какой именно объем данных я могу безопасно переместить, но теперь у меня есть история

0 голосов
/ 02 мая 2019

Вот решение, которое сработало для меня пару лет назад. Когда я попробовал упомянутый vss2git, он за выходные унес нашу 9 ГБ базу данных vss в 103 ГБ, не доходя до конца. Поэтому я взял сервер TFS (2010) в качестве посредника, и это сработало. TFS 2010 может импортировать базу данных VSS напрямую, я не уверен насчет новых. Одновременно TFS может служить в качестве удаленного git, например, используя git-tf или git-tfs. После импорта простой git tfs clone выполнил вторую часть бизнеса. Итак, поехали:

  1. Получите версию TFS, способную импортировать VSS. Эта ссылка может вам помочь.
  2. Используйте мастер или командную строку для импорта базы данных VSS.
  3. Получить git-tfs от здесь
  4. (Необязательно) исправьте даты фиксации - см. Ниже.
  5. Сделай что-нибудь подобное git tfs clone http://tfs:8080/tfs/DefaultCollection $/some_project

Единственное, что я могу вспомнить, было то, что TFS установил дату всех коммитов на текущую дату и поместил в комментарии исходные даты vss. Я исправил это непосредственно в базе данных SQLEXPRESS TFS следующим образом:

UPDATE tbl_ChangeSet 
SET CreationDate =  CONVERT (datetime, Substring(Comment,2,19), 104)
Where CreationDate > '2014-01-28' AND Comment LIKE '{%'

Пожалуйста, укажите в запросе собственную дату (последнего комита VSS).

https://docs.microsoft.com/en-us/previous-versions/visualstudio/visual-studio-2013/ms253060(v=vs.120)

0 голосов
/ 06 сентября 2018

Вы можете попробовать https://github.com/azarkevich/VssSvnConverter,, но это не удобно для пользователя.(Несмотря на название, он может конвертировать VSS в Git)

Также этот инструмент не хранит историю перемещений файла / каталога / переименования.Файл будет иметь историю с последним именем.

...