2013-03-24 9 views
5

sto provando git-TFS, e sto cercando di unshelve uno shelveset eseguendo il seguente:git-TFS: A accantonato modifica in sospeso su un file è necessario

git tfs unshelve "Shelveset Name" shelf 

mi sto il seguente errore:

A shelved pending change on a file is required: $/path/to/dir/deleted 

"cancellato" è una directory che è stata eliminata nel set di scaffali.

Sto solo iniziando con git-tfs. Ho bisogno di controllare quello scaffale, quindi per il momento posso farlo solo con TFS, ma se possibile mi piacerebbe sapere cosa potrebbe succedere ed evitarlo se possibile.

Grazie per qualsiasi aiuto.

+0

https://github.com/git-tfs/git-tfs/issues/419 –

risposta

2

Questo messaggio di errore non è uno di git-tfs ma uno di TFS (ho appena guardato il codice sorgente).

Semplicemente non ricordo esattamente come git-tfs gestisca lo shelfet perché da quando passo a git-tfs non l'ho mai più utilizzato perché i set di mensole sono mal progettati :(E penso che il tuo problema venga da quello problema di progettazione!

Con un set di scaffali, che è in realtà un file fuori dalla dist, non si sa mai quale è il changeset di root da cui è stato "generato". Quindi, se si tenta di sgomberarlo abbastanza tardi, si ' Ho avuto alcuni problemi (come quello che penso tu abbia) perché il file o la cartella sono stati rinominati o rimossi!

Penso che il tuo problema derivi dal fatto che cerchi di sgomberare con un commit git troppo recente.

Forse provate a fare il checkout di un commit approssimativamente alla data del set di scaffali e cercate di fare unshelve! Se funziona, dovresti semplicemente rebase del commit sul tuo ramo.

Se non funziona, non lo so ...

E Internet non ci aiuta con questo messaggio di errore TFS :(

edit: da allora, penso che git -tfs è stato migliorato e forse unshelve al genitore destra commettere

2

Sembra che TFS antipatie cercando di unshelve shelvesets che contengono i file cancellati ho fatto la seguente e ha funzionato:..

  • Unsh elve in Visual Studio (2012)
  • escludere qualsiasi file cancellati
  • Shelve di nuovo (da VS2012)
  • Usa git-tfs per tirare lo shelveset in una filiale locale Git
  • manualmente eliminare il file (s) che era stato rimosso dalla mensola originale

Un dolore, lo so, ma almeno mi ha aiutato a recuperare la mensola. Per il contesto, questo era durante una migrazione da TFS a Git in cui siamo stati in grado di conservare la cronologia e estrarre le mensole in rami remoti in modo che gli sviluppatori non avessero bisogno di infangare TFS con controlli incompleti.

Problemi correlati