2010-04-07 10 views
11

Il problema con la ridenominazione dei file è che se si desidera sfruttare il refactoring di Visual Studio, è necessario farlo direttamente da Visual Studio.Rinominare i file: Visual Studio vs Controllo versione

Ma la maggior parte (non tutto *) del sistema di controllo delle versioni vuole anche essere il nome del rinominare.

Una soluzione consiste nell'utilizzare il controllo del codice sorgente integrato, ma questo non è sempre disponibile e in alcuni casi è piuttosto goffo.

Personalmente sarei più a mio agio usando il controllo del codice sorgente separatamente, al di fuori di Visual Studio, ma non sono sicuro di come gestire questa domanda di rinomina dei file.

Quindi, per quelli di voi che utilizzano Visual Studio, quale controllo del codice utilizzate? Usi un'integrazione VS (quale?) E in caso contrario, come risolvi questo problema di rinomina?

(* git è abbastanza intelligente per lavorare fuori per se stessa)

risposta

1

Usiamo SVN (TortoiseSVN per l'esattezza), e sono sempre disturbati con il problema ridenominazione. La soluzione più semplice che ho trovato è quella di rimuovere i file dal progetto, rinominarli tramite TSVN e aggiungerli al progetto. È necessario aggiornare manualmente include per i file di intestazione rinominati, ma questo è relativamente facile utilizzando find & replace.

+0

La rimozione del file dai progetti la cancellerà da questo disco. Quindi è necessario * escludere * dal progetto. La prossima volta: prima rinomina la classe usando il menu Refactor in VS, quindi rinomina il file usando SVN e poi aggiungi un nuovo file per proiettare e rimuovi quello vecchio – abatishchev

+0

Yuck! Sembra orribile in entrambi i casi, anche se penso che la soluzione di @ abatishchev suoni leggermente meglio. – Benjol

+0

Se si fa clic con il pulsante destro del mouse su un file e si seleziona "Rimuovi", VS chiede se si desidera rimuovere o eliminare il file. Se si seleziona Rimuovi, il file non viene eliminato. – erelender

1

Utilizziamo Team Foundation Server e funziona senza problemi. Ho anche scoperto che passare all'utilizzo di un client completamente integrato ha migliorato il mio flusso di lavoro, dal momento che non ho bisogno di sfogliare le applicazioni solo per svolgere compiti banali.

+0

Grazie. Immagino che il TFS che lavora con VS sia un gioco da ragazzi :) Ho lasciato cadere TFS dalla mia lista dei "potenziali" alcuni anni fa a causa del prezzo e dei problemi di installazione. Forse dovrei controllare di nuovo ... – Benjol

+0

@Benjol controlla il prossimo lunedì quando viene rilasciato VS2010 - la mia comprensione è che si ottiene TFS con esso. –

2

mercuriale di solito preferisce fare la ridenominazione via hg rename ma può anche rilevare rinomina da una fonte esterna utilizzando hg addremove -s 100 (o inferiore a 100 se si desidera far corrispondere una ridenominazione con alterazioni) così chiaramente si può lasciare VS fare la ridenominazione e ottenere mercurial per recuperare con addremove.

+0

Grazie, è bello sapere – Benjol

5

Io uso SVN (TortiseSVN come client) e uso il comando Repair Move dalla finestra di dialogo di commit pesantemente. Questo mi permette di rinominare i file all'interno di VS e risolvere il cambio di nome quando sono pronto a impegnarmi per mantenere la cronologia delle versioni.

Per quanto riguarda l'integrazione VS, come te, trovo tutta l'integrazione VS clunky e non la uso.

+0

Specialmente come l'integrazione VS (almeno l'ultima volta che l'ho usata), è orientata al check-out-modifica-controllo, e sempre più strumenti di controllo del codice sorgente sono get-modify-merge. – Benjol

+0

Wow, è bello saperlo. Di solito devo fare il più complicato: rimuovi dal progetto, svn rinomina, aggiungi di nuovo a project shuffle. Ciò significa un passo in meno: dovrò solo aspettare una migliore integrazione VS. – quamrana

0

Oltre al consiglio precedente, per Visual Studio 2008 ho scoperto che dopo aver apportato tutte le modifiche globali a qualsiasi file che veniva rinominato all'interno di VS, incluso fare clic con il pulsante destro del mouse sul file e rinominarlo, nonché una ricerca e sostituzione globali per tutte le stringhe , sostituendo il vecchio nome file con il nuovo nome file, è necessario, se il file è il file di avvio iniziale, fare clic destro e selezionarlo come "imposta come pagina predefinita". Altrimenti potresti ottenere "La risorsa non può essere trovata". errore su runtime.

1

Sviluppiamo "Plastic SCM" e Visual Studio Package supports move operations. Ma capisco il tuo punto, sto diventando sempre più a mio agio con l'idea di non avere plugin/pacchetti e quindi avere il controllo della versione lavorando dietro le quinte e semplicemente rilevando quello che è successo senza dover essere "inserito" nell'IDE. In effetti ci stiamo lavorando per la prossima versione ...

+0

Buono a qui! Mantenere il buon lavoro. – Benjol