Quando il codice è ramificato in TFS utilizzando il metodo branch, il codice è fisicamente o logicamente ramificato? Con logico, voglio dire è solo un changeset (cambiato delta) o tutti i file sono copiati?Un ramo TFS è uno snapshot fisico o logico?
risposta
I file ramificati non vengono copiati nel database TFS. Una nuova versione del file non verrà creata fino alla modifica della versione ramificata. Questo è il motivo per cui la creazione di una filiale su un grande progetto non richiede un'eternità.
Fonte:
Il quarto paragrafo in ramificazione spiega che non crea una copia separata del file identici:
Creazione di rami consuma pochissima spazio di archiviazione aggiuntivo . Il server riduce al minimo lo spazio di archiviazione richiesto solo da mantenendo una copia del contenuto identico indipendentemente dal numero di file diversi contenuti nella cartella. Quindi, se hai 100 copie di un file da 1 MB e tutti i file sono identici, il server memorizzerà solo 1 MB, non 100 MB. Quando si crea un nuovo ramo e si esegue il commit, tutti i file nel nuovo ramo identici ai file nel punto di diramazione sorgente allo stesso contenuto . Il risultato è che un ramo consuma pochissimo spazio di archiviazione aggiuntivo e che lo spazio di archiviazione si espande solo quando il file ramificato diventa diverso dalla sorgente. E anche quando i file cambiano, Team Server di base utilizza un motore di differenziazione per analizzare le modifiche tra i file e ottimizzare ancora lo spazio di archiviazione .
Microsoft Branching Guida PDF:
http://geeks.netindonesia.net/downloads/etc/TFS-Branching.pdf
Risposta breve: Filiali sono memorizzati logicamente e non sono una copia diretta del genitore.
Risposta lunga: Bill Heys, un ALV Ranger VS, ha scritto un post sul blog dettagliato che descrive come i rami e la cronologia dei file sono archiviati in TFS.
- 1. TFS: sovrascrivere un ramo con un altro
- 2. TFS 2012 verifica se un ramo è stato unito
- 3. TFS: creare un nuovo progetto da uno esistente in TFS
- 4. Riporta il ramo TFS all'originale
- 5. : indirizzo fisico o virtuale
- 6. Makefile ifeq logico o
- 7. come creare uno snapshot usando Xcode 7?
- 8. Come fare uno snapshot da un flusso MJPEG in HTML
- 9. Operatore logico O senza cortocircuito
- 10. Come ramo e si fondono in TFS
- 11. VS & TFS: check-in come nuovo ramo
- 12. Posso unshelve su un ramo diverso in tfs 2008?
- 13. TFS merge change set sul ramo principale
- 14. TFS 2010 Unisci dopo aver rinominato un ramo radice
- 15. Trova il percorso tfs del ramo unito
- 16. Cosa fare con un ramo dopo l'unione con TFS
- 17. TFS - Creazione di un ramo dalla copia di lavoro locale
- 18. Come posso spostare un ramo TFS erroneamente inserito?
- 19. TFS combina due set di modifiche in uno nello stesso ramo
- 20. NAnt o TFS build che è meglio?
- 21. A Meccanismo per avere diversi uguali (fisico equo e logico uguale) sugli oggetti nella Raccolta
- 22. Modifica del nome del file logico e fisico durante la distribuzione di dacpac
- 23. Sourcetree: verifica se un ramo è unito
- 24. Precedenza operatore logico SQL: And e O
- 25. Git: ripristina/ripristina un intero ramo in uno stato di un altro ramo?
- 26. Amazon EC2: Spostare uno snapshot del volume EBS a S3
- 27. Unisci due rami TFS con git tfs
- 28. Come utilizzare un indirizzo logico in gdb?
- 29. Ricerca codice in uno specifico ramo github
- 30. Git elimina il ramo remoto nel repository git TFS
Eccellente - questo è esattamente quello che stavo cercando. Grazie! –
Downvote senza commenti? Questa citazione è direttamente dal documento guida Microsoft Branching e ho trovato che è accurato al 100%. Creiamo rami su un progetto molto grande e i rami vengono creati quasi istantaneamente e occupano pochissimo spazio di archiviazione. –
Esperienza personale: con TFS fare una branche costerebbe un tempo significativo mentre è istantanea, ora siamo migrati a Subversion. Non sono sicuro del funzionamento interno, ma TFS fa più di una piccola transazione amministrativa. –