Есть ли способ запустить git gc --prune=now
на удаленном сервере Team Foundation Server 2015 (tfs2015)? Или это единственный способ запустить локально git gc --prune=now
, а затем создать новый репозиторий на tfs2015 и нажать его на новый пульт, затем удалить старый репозиторий и переименовать новый репозиторий в старое имя. Не забудьте выключить симпатию, когда вы это делаете.Team Foundation Server 2015 (tfs2015) запустить git gc --prune = now on orgin/remote
ответ
См. https://blogs.msdn.microsoft.com/congyiw/2015/12/14/why-does-cloning-from-vsts-return-old-unreferenced-objects/ - это известное ограничение GTP, размещенное на 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 чувствует себя очень плохо, так как любой пользователь репо должен будет вручную создать свой клон таким образом.
Update о пришедшем это в TFS v.Next и все готов, раскатанный в VSTS https://blogs.msdn.microsoft.com/congyiw/2015/12/14/why-does-cloning-from-vsts-return-old-unreferenced-objects/ «UPDATE (2017-08-09): Мы выкатили фиксацию достижимости растровых индексов в VSTS и удалить клон обманщик нижеперечисленного Cloning. больше не будет загружать недоступные объекты !. У нас по-прежнему нет истинного git gc на уровне объектов на сервере, но размеры клонов теперь будут меньше.
TFS on-prem получит эти изменения в v.Next (не в каких-либо обновлениях TFS 2017, а в следующем крупном выпуске). Как сказал Брайан Гарри, у нас должен быть кандидат на выпуск v.Next через несколько недель ».