2015-08-28 16 views
5

Esiste un modo per eseguire git gc --prune=now su Team Foundation Server 2015 remoto (tfs2015)? Oppure è l'unico modo per eseguire git gc --prune=now localmente, quindi creare un nuovo repository su tfs2015 e inviarlo al nuovo telecomando, quindi eliminare il vecchio repository e rinominare il nuovo repository con il vecchio nome. Non dimenticare di disattivare il commit dei Mi piace quando lo fai.Team Foundation Server 2015 (tfs2015) eseguire git gc --prune = now on orgin/remote

risposta

5

Vedere https://blogs.msdn.microsoft.com/congyiw/2015/12/14/why-does-cloning-from-vsts-return-old-unreferenced-objects/ - questa è una limitazione nota di git con hosting TFS, non ha il comando gc.

Microsoft fornisce due soluzioni:

  • clone repo, pulirlo a livello locale, eliminarlo dal server, creare una nuova e spingere i puliti uno ad esso (quello che hai descritto nella sua domanda)
  • non lo fanno git clone, ma ottenere il repo locale come questo:

    mkdir newRepo 
    git init 
    git remote add origin 
    #fetch one branch first 
    git fetch origin master 
    #fetch everything else 
    git fetch origin 
    

    che trucchi TFS di inviare in realtà solo gli oggetti si ha realmente bisogno.

Opzione 1 sembra essere più ragionevole per me se si può permettere di perdere le vostre richieste di pull ecc (ad esempio se si tratta di un relativamente nuovo pronti contro termine).

L'opzione 2 è davvero pessima, in quanto qualsiasi utente del repository dovrà creare manualmente il proprio clone in questo modo.

4

Aggiornare le informazioni su questa ritornassi in TFS v.Next E tutti pronti "UPDATE srotolato in VSTS https://blogs.msdn.microsoft.com/congyiw/2015/12/14/why-does-cloning-from-vsts-return-old-unreferenced-objects/ (2017/08/09): Abbiamo srotolato commettere raggiungibilità indici bitmap a VSTS e rimosso il trucco clone menzionato sotto la clonazione. non scaricherò più oggetti non raggiungibili !. Ancora non abbiamo ancora git gc a livello di oggetto sul server, ma le dimensioni dei cloni ora saranno più ridotte.

TFS on-prem otterrà queste modifiche in v.Next (non in tutti gli aggiornamenti TFS 2017, ma nella prossima major release. Come menzionato da Brian Harry, dovremmo avere una release candidate per v.Next tra poche settimane. "