Есть ли способ запустить git gc --prune=now
на удаленном Team Foundation Server 2015 (tfs2015)? Или это единственный способ запустить git gc --prune=now
локально, затем создать новый репозиторий на tfs2015 и отправить его на новый удаленный компьютер, затем удалить старый репозиторий и переименовать новый репозиторий в старое имя. При этом не забудьте отключить фиксацию симпатии.
Team Foundation Server 2015 (tfs2015) запустите git gc --prune=now на org/remote
Ответы (2)
См. https://blogs.msdn.microsoft.com/congyiw/2015/12/14/why-does-cloning-from-vsts-return-old-unreferenced-objects/ — это известное ограничение Git, размещенный на TFS, не имеет команды gc
.
Microsoft предлагает два обходных пути:
- клонируйте репо, очистите его локально, удалите его с сервера, создайте новый и вставьте в него очищенный (то, что вы описали в своем вопросе)
не делайте
git clone
, а получите локальный репозиторий следующим образом:mkdir newRepo git init git remote add origin #fetch one branch first git fetch origin master #fetch everything else git fetch origin
который заставляет TFS фактически отправлять вам только те объекты, которые вам действительно нужны.
Вариант 1 кажется мне более разумным, если вы можете позволить себе потерять свои запросы на включение и т. д. (например, если это относительно новое репо).
Вариант 2 выглядит очень плохо, так как любой пользователь репозитория должен будет вручную создать свой клон таким образом.
Обновление об этом в TFS v.Next И все готово к развертыванию в VSTS https://blogs.msdn.microsoft.com/congyiw/2015/12/14/why-does-cloning-from-vsts-return-old-unreferenced-objects/ "ОБНОВЛЕНИЕ (2017-08-09): Мы развернули индексы растровых изображений фиксации достижимости в VSTS и удалили упомянутый ниже обман клонирования. Клонирование больше не будет загружать недостижимые объекты!. У нас все еще нет настоящий git gc на уровне объекта на сервере, но размеры клонов теперь будут меньше.
TFS on-prem получит эти изменения в v.Next (не в каких-либо обновлениях TFS 2017, а в следующем основном выпуске). Как упомянул Брайан Гарри, у нас должен быть релиз-кандидат для v.Next через несколько недель».