Domanda

Cercando di capire qualcosa. Ho creato una d: \ svn \ repository sul mio server. Ho commesso cartelle, ma quando torno in d: \ svn \ repository non vedo loro. Sono tutti in un database? Saranno tutti i miei repository andare nella cartella principale e svn loro tracce? Che cosa succede se ho due progetti?

Grazie.

È stato utile?

Soluzione

Subversion non memorizza le cartelle logiche nella stessa struttura sul server, tiene traccia di tutto in un file dei delta in una "banca dati". Questo database è specifica per Subversion. Tutto impegnato a detto registro centrale va in quel file. Non troverete la struttura logica sul server, semplicemente non funziona in questo modo.

FSFS

  

A metà del 2004, un secondo tipo di   sistema di storage repository è entrato in   essendo: una che non utilizza   banca dati a tutti. Un repository FSFS   memorizza un albero di revisione in un unico   file e così tutto d'un repository di   revisioni possono essere trovati in un unico   sottodirectory pieno di file numerati.   Le transazioni vengono creati in separata   sottodirectory. Al termine, un   viene creato un file singola transazione e   spostato nella directory di revisioni, in tal modo   garantendo che i commit sono atomiche.   E perché un file di revisione è   permanente e immutabile, la   repository anche possibile eseguire il backup mentre   “Caldo”, proprio come un Berkeley DB   repository.

     

Il formato di revisione-file rappresenta un   struttura di directory di revisione, di file   contenuti, e delta contro i file in   altri alberi revisione. a differenza di un   database Berkeley DB, questo storage   formato è portabile su differenti   sistemi operativi e non è sensibile   all'architettura CPU. Perché non c'è   nessun file journaling o a memoria condivisa   essendo utilizzato, il repository può essere   in modo sicuro l'accesso in rete   file system ed esaminati in una sola lettura   ambiente. La mancanza di dati   sovraccarico significa anche che la complessiva   dimensione del repository è un po 'più piccolo.

     

FSFS ha prestazioni diverse   caratteristiche troppo. Quando si commette un   directory con un enorme numero di file,   FSFS utilizza un algoritmo O (N) per aggiungere   le voci, mentre Berkeley DB utilizza un   O (N ^ 2) algoritmo per riscrivere la   directory. D'altra parte, FSFS   scrive l'ultima versione di un file come   un delta contro una versione precedente,   il che significa che controllando la   ultimo albero è un po 'più lento di   il recupero dei fulltext memorizzati in un   Berkeley DB TESTA revisione. FSFS anche   ha un ritardo maggiore nel finalizzare un   commit, che potrebbe in casi estremi   causare ai clienti di time-out quando in attesa   per una risposta.

     

La distinzione più importante,   tuttavia, è l'incapacità di essere FSFS   “Incastrato” quando qualcosa va storto. Se   un processo utilizzando un database Berkeley DB   si imbatte in un problema di autorizzazioni o   improvvisamente si blocca, il database viene lasciato   inutilizzabile fino a quando un amministratore   recupera esso. Se gli stessi scenari   accadere ad un processo che utilizza un FSFS   repository, il repository non è   colpito a tutti. Nel peggiore dei casi, un po '   dati delle transazioni è lasciato alle spalle.

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