Domanda TF203015 L'elemento $ / percorso / file ha una modifica in sospeso incompatibile. Durante il tentativo di unshelve


Sto utilizzando Visual Studio 2010 Pro contro Team Server 2010 e il mio progetto è stato aperto (apparentemente) come soluzione dal repository, ma avrei dovuto aprirlo come "sito web". L'ho scoperto durante la compilazione, quindi sono andato a salvare le mie nuove modifiche e ho cancellato il progetto dal mio disco locale, quindi ho riaperto il progetto dal sorgente (questa volta come sito web) e ora non posso cancellare i miei file.

C'è un modo per aggirare questo? Ho fatto saltare qualcosa? Devo eseguire la manutenzione sul server?

ho trovato questa domanda su SO # 2332685 ma non so di quali file cache sta parlando (sono su XP: \) MODIFICARE: Trovato questo link dopo aver postato la domanda, mi dispiace per il ritardo nella ricerca, ancora non ha risolto il mio problema

Naturalmente non riesco a trovare un codice di errore per TF203015 ovunque, quindi nessuna risoluzione (quindi la mia inclusione del numero nel titolo, sì?)

MODIFICARE: Dovrei probabilmente menzionare che questi file non sono mai stati registrati in primo luogo. È importante? Puoi accantonare un oggetto non controllato? È quello che ho fatto di sbagliato?

MODIFICARE: WHAP - TROVATO !!! Usa "Annulla" sugli articoli che non esistono perché vengono visualizzati nelle modifiche in sospeso come check-in.


44
2018-05-10 16:52


origine


risposte:


Avevo cancellato i file nel tentativo di ricaricare lo spazio di lavoro, anche se avevo accantonato le modifiche. Quindi VS2010 pensava che quei file fossero ancora in attesa di salvataggio. Non avevo bisogno di questo, quindi ho dovuto capire di "annullare" le modifiche in Pending Changes.

Quindi potrei unshelve.

Pensava che avessi due ops (unshelve, commit-per-add) che andavano contemporaneamente, e pensavo di avere solo un op (unshelve).


46
2018-05-11 21:44



Questa è una leggera differenza rispetto alla domanda dell'OP

È possibile ottenere un TF203015 quando si tenta di unire in batch più changeset da un ramo all'altro senza la dovuta attenzione.

Si consideri una situazione in cui si dispone di un tronco MAIN e un ramo DEV. Hai dirottato DEV dal MAIN e hai diligentemente lavorato su una funzionalità in DEV; controllando il lavoro di nuovo in DEV come hai progredito. Ora avanti veloce una settimana o due. Ora la funzionalità è completa e desideri unirli nuovamente a MAIN.

Questo è dove uno dei nostri sviluppatori ha colpito questo errore.

Aveva lavorato su una soluzione per settimane e ricontrollato periodicamente i changeset in DEV, quindi voleva unire una serie non contigua di changeset in MAIN. Quindi seleziona l'opzione di unione, seleziona il primo changeset; si fonde senza problemi, quindi immediatamente è andato a fondere il prossimo changeset; e bang TF203015, e il suo test molto inutile nella finestra di output; modifiche in sospeso incompatibili.

Dopo un po 'di scherzi, ora capiamo cosa sta succedendo qui; la prima unione ha creato una modifica in sospeso in MAIN per la soluzione degli sviluppatori. Il prossimo tentativo di fusione consisteva anche in modifiche alla stessa soluzione, che avrebbe richiesto a TFS di "accodare" una seconda serie di modifiche in sospeso agli stessi file. Non può farlo.

Quindi in questo scenario significa TF203015; "Il ramo di destinazione ha già delle modifiche in sospeso su alcuni file che sono stati modificati in questo changeset. Risolvi e commetti le modifiche del ramo di destinazione prima di eseguire questa operazione di unione"

La soluzione; dopo ogni operazione di unione il nostro sviluppatore verifica l'area di lavoro per MAIN e impegna il cambiamento in sospeso causato dall'unione, quindi torna a DEV e si ripete.

Realmente sensibile e semplice, ma mascherato da un messaggio di errore molto ottuso.


41
2018-03-06 14:38



È possibile utilizzare gli strumenti di alimentazione di Team Foundation Server marzo 2011 (http://msdn.microsoft.com/en-us/vstudio/bb980963.aspx) che include il comando tfpt unshelve.

Dopo aver installato gli strumenti di alimentazione, aprire un prompt dei comandi di Visual Studio, passare alla directory che contiene il progetto di interesse ed eseguire il comando tfpt unshelve comando. Spaccherà e visualizzerà la finestra di dialogo di unione in modo da poter risolvere i conflitti.

Attribuisco questo post al blog per aiutarmi a trovare questa soluzione: http://fluentbytes.com/the-how-and-why-behind-tf203015-file-has-an-incompatible-change-while-unshelving-a-shelve-set


5
2018-06-29 20:46



Avevo quello che sembrava essere lo stesso problema, ma avevo creato un ramo dopo aver accantonato i miei cambiamenti e volevo togliere quelle modifiche al nuovo ramo.

TFS non può annullare un percorso diverso dal percorso su cui è stato creato lo scaffale.

Soluzione: Ho rinunciato al ramo originale, quindi ho usato oltre il confronto per unire le modifiche dal mio ramo originale al nuovo ramo e archiviato.


2
2018-01-28 19:36



Potrebbe anche succedere che dopo aver creato una cartella in un "Test" e aver deciso di unire da dev a test, che non sia stata verificata la struttura della cartella appena creata in TFS, sarà possibile ottenere anche questo messaggio di errore.

Quindi questo errore di messaggio può verificarsi senza nulla a che fare con SHELVESETS anche per gli altri provenienti da Google e trovare questa pagina.


2
2018-06-25 20:06



Potrebbe essere la stessa risposta di jcolebrand, ma temo di aver trovato il fraseggio un po 'astruso. Scuse sincere se sto solo ripetendo.

Nel mio scenario il incompatible pending change è stato presentato un messaggio perché stavo tentando di ripristinare più changeset e lo stesso file era interessato da più di uno di questi changeset.

Nel mio caso non volevo impegnarmi fino a quando tutte le modifiche non erano state ripristinate. Credo che se avessi potuto commettere dopo aver ripristinato ogni changeset, l'errore non sarebbe successo.

Il metodo che ha funzionato per me era il seguente:

  • Ho deciso di ripristinare un changeset alla volta. Ho trovato usando il riga di comando era in realtà un modo più informativo di fare questo perché elenca tutti i conflitti, mentre penso che il rollback dell'interfaccia utente di VS sia solo il primo.
  • Mentre si ripristina un changeset, se c'era un incompatible pending change, Ho dovuto annullare le modifiche in sospeso del mio spazio di lavoro per i file interessati.
  • Quando tutti i changeset sono stati ripristinati, ho dovuto ripristinare manualmente i file che avevano subito incompatible pending change. Per lo più questo potrebbe essere ottenuto semplicemente ottenendo una versione specifica del file (la versione "last-known-good" prima che iniziassero tutti i check-in errati). Ma per alcuni file in cui erano presenti sia le modifiche desiderate che le modifiche indesiderate, ho ottenuto il "last-known-good" e applicato manualmente le buone modifiche apportate.

1
2018-03-09 11:27



Questo link ha risolto il mio problema:

https://blogs.infosupport.com/the-how-and-why-behind-tf203015-lt-file-gt-has-an-incompatible-change-while-unshelving-a-shelve-set/

Il motivo era che il cambiamento in sospeso nello stesso spazio di lavoro creava un cambiamento incompatibile. Quindi annulla le modifiche in sospeso e prova unshelve. Questo dovrebbe risolvere il problema.


0
2017-10-29 14:59



Se hai due rami MAIN (target) e DEV (source), ora vuoi unire DEV in MAIN, quindi tutti i file che vuoi unire dalla tua sorgente, non devono essere più vecchi dei file simili nel tuo branch di destinazione.

Ad esempio: hai un file change.cs modificato nel tuo ramo DEV, modificato al 14.03.2016. Nel tuo ramo principale hai i test.cs cambiati al 15.03.2016. Quindi l'obiettivo è più recente del file sorgente e hai TF203015.

Soluzione: navigare in TFS Explorer nel file di conflitto e unirlo esplicitamente. TFS aprirà il gestore conflitti e potrai unire i conflitti a mano. Di seguito è possibile unire il changeset selezionato.

Note: se si verificano più conflitti, è necessario accedere a ciascun file di conflitto e unirli esplicitamente, in modo che TFS apra il Gestore conflitti e sia possibile unirlo manualmente.


0
2018-03-16 07:21