Team Foundation Server 2015 (tfs2015) запустите git gc --prune=now на org/remote

Есть ли способ запустить git gc --prune=now на удаленном Team Foundation Server 2015 (tfs2015)? Или это единственный способ запустить git gc --prune=now локально, затем создать новый репозиторий на tfs2015 и отправить его на новый удаленный компьютер, затем удалить старый репозиторий и переименовать новый репозиторий в старое имя. При этом не забудьте отключить фиксацию симпатии.


person Janusz Nowak    schedule 28.08.2015    source источник


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

person Jakub Januszkiewicz    schedule 30.03.2016
comment
В варианте 1 вы потеряете все запросы на извлечение (и, возможно, все ссылки в задачах) исходного репо. Будь осторожен! - person kuga; 15.02.2019
comment
@kuga Правда, именно поэтому я написал, можете ли вы позволить себе потерять свои запросы на включение и т. Д. - person Jakub Januszkiewicz; 19.02.2019

Обновление об этом в 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 через несколько недель».

person Janusz Nowak    schedule 02.09.2017
comment
Ваша ссылка мертва. У вас есть свежая информация об этом? - person kuga; 15.02.2019
comment
Ссылка вроде не мертвая. - person Karu; 15.05.2020