2015-08-28 1 views
5

Есть ли способ запустить 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

ответ

5

См. 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 чувствует себя очень плохо, так как любой пользователь репо должен будет вручную создать свой клон таким образом.

4

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 через несколько недель ».