Come utilizzare la scheda influenza i comandi come diff

0

Nella pagina link , si consiglia di utilizzare lo spazio anziché la scheda in quanto causa problemi con diff, patch. Ecco l'estratto dalla pagina.

Use an indent of 4 spaces, with no tabs. This helps to avoid problems with diffs, patches, SVN history and annotations.

Quindi, la mia domanda è se usiamo le schede ovunque, in che modo influenzerà questi comandi?

    
posta 01.03.2014 - 20:17
fonte

1 risposta

3

Se sei rigoroso nell'usare le schede ovunque nel progetto, in realtà non influirà sul comando. Di solito il problema è la combinazione di schede e spazi.

Se mischi tab e spazi, devi gestire due linee identiche agli umani ma differenti per strumenti come diff:

if(i == 0) {
    do something;

e

if(i == 0) {
    do something;

Il motivo per cui le persone evitano le schede e preferiscono gli spazi è che le schede vengono visualizzate in base alle impostazioni dell'editor, quindi uno sviluppatore scrive questo:

for(i=0; i<10; i++) {
    do this;
    do that;
    do it again;
}

Un altro ragazzo arriva con le schede impostate su due invece di quattro e fa una modifica:

for(i=0; i<10; i++) {
  do this;
  do it different;
  do it again better;
}

L'altro ragazzo apre il codice e sembra:

for(i=0; i<10; i++) {
    do this;
  do it different;
  do it again better;
}

Più di dieci sviluppatori e il codice appare rapidamente orribile per tutti. Quindi qualcuno lo "aggiusta" e quindi la tua cronologia è piena di cose come questa:

for(i=0; i<10; i++) {
    -do this;
    -do it different;
    -do it again better;
    +do this;
    +do it different;
    +do it again better;
}

Qualcuno che sta arrivando volendo usare blame per capire a quale sviluppatore parlare di farlo diversamente non può, perché il registro è pieno di correzioni di formattazione.

Poi qualcuno ha la brillante idea di cambiare tutte le schede in spazi, e quindi una diff mostra l'intero file come se fosse stato modificato.

Meglio evitare il problema con gli spazi anziché le schede. Ciò evita i problemi causati da qualcuno che colpisce la barra spaziatrice quattro volte anziché il tasto Tab.

    
risposta data 01.03.2014 - 20:41
fonte