Domanda

Ho un progetto VS 2008 sotto il controllo del codice sorgente TortoiseSVN. Sono l'unica persona che lo utilizza al momento.

Stavo cercando di eseguire il commit delle ultime modifiche quando ho ricevuto il messaggio " Il file abc non è aggiornato - aggiorna " ;. Quando provo ad aggiornare il progetto, ottengo un intero insieme di conflitti tra file (binari e di testo). Poiché sono sicuro che la mia copia di lavoro contenga la versione corretta dei file, provo a risolvere i conflitti selezionando & Quot; mine & Quot; come la versione corretta. Ho anche provato a contrassegnare ogni conflitto di file come risolto. Sono quindi in grado di impegnarmi.

Tuttavia, seguendo questo mio progetto VS 2008 si rifiuta di compilare e dà centinaia di errori (così tanti errori che VS 2008 segnala che ci sono troppi errori da mostrare!). Qualcosa sulla risoluzione dei conflitti di TortoiseSVN rovina completamente il progetto e si rifiuta di costruire.

In qualsiasi modo posso forzare TortoiseSVN a salvare la mia copia di lavoro nel repository come l'ultima revisione, senza verificare la presenza di conflitti?

È stato utile?

Soluzione

Spero che tu abbia fatto un backup della tua copia di lavoro prima dell'aggiornamento, perché altrimenti è molto probabile che i conflitti abbiano portato a un enorme mucchio di >>>>>> theirs e <<<<<<< mine commenti nei tuoi file sorgente.

Anche se non capisco come i conflitti potrebbero verificarsi in primo luogo (poiché sei l'unico che si impegna nel repository), esiste una possibile soluzione.

Sposta il tuo attuale " funzionante " copia di lavoro in un luogo sicuro. Dai un'occhiata al progetto completamente nuovo. Copia i tuoi file di origine sulla nuova copia di lavoro e quindi esegui il commit delle modifiche risultanti.

Quando l'albero dei sorgenti è composto da più directory, potrebbe essere noioso copiare ogni directory singolarmente. Per ovviare a questo problema puoi esportare il tuo & Quot sicuro; funzionante & Quot; copia di lavoro con TortoiseSVN - > Esporta tutto. Questo crea una directory senza tutti i file .svn e le directory. È quindi possibile copiare questa directory esportata sulla nuova copia di lavoro.

Altri suggerimenti

Ho scoperto che i file di progetto di Visual Studio sono abbastanza inclini a problemi di unione automatica. Il problema è che il formato dei file è così ripetitivo, l'utilità di unione fa fatica a determinare se una modifica è un'aggiunta o una modifica. Inoltre, alcune azioni sembrano causare la riorganizzazione di Visual Studio nel file di progetto. Ancora una volta, queste modifiche sono relativamente difficili da gestire correttamente per l'utilità di unione.

Mi affido a una delle due opzioni per risolvere questo problema. Innanzitutto, è possibile aprire il file di progetto nel blocco note e correggerlo manualmente. Non sono così complessi e di solito puoi semplicemente seguire lo schema e assicurarti che nulla sia fuori posto.

Il secondo approccio sarebbe di ripristinare il file di progetto, quindi aggiungere e rimuovere file e apportare altre modifiche in base alle esigenze in Visual Studio.

Se i commit vengono effettuati in anticipo e spesso, nessuna di queste attività è troppo complessa. Se le bombe vengono lanciate sul repository, beh, questa è una delle molte ragioni per cui commettere in anticipo e spesso è una buona idea. =)

Visual Studio e TortoiseSVN non giocano bene insieme. Una cosa che ho notato è che non è possibile eseguire correttamente la versione di qualcosa in una directory di compilazione, perché VS la ritiene & Quot; possiede & Quot; le directory di compilazione e probabilmente eliminerà la cartella .svn (è solo per le build che implicano un clean?)

Potresti guardare un client Subversion che si integra in Visual Studio. Mi viene in mente AnkhSVN, ma un buon punto di partenza per la ricerca sarebbe http: //sharpsvn.open.collab. net / . In alternativa, potresti prendere in considerazione l'utilizzo di sharpsvn direttamente da un'attività pre o post build o forse una macro in Visual Studio.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top