Ho un progetto open source che voglio impacchettare in un file .zip contenente i binari e la fonte. Il progetto è ospitato su CodePlex e utilizza TFS come controllo del codice sorgente. Non sono sicuro di come esportare il progetto per rimuovere tutti i collegamenti di controllo del codice sorgente. In questo modo le persone possono facilmente aprire la soluzione localmente senza ottenere un prompt di accesso. Questa funzionalità è chiamata Esporta in Git, ma non sono sicuro di come fare la stessa cosa in Team.Ottenere una soluzione non vincolante da TFS
risposta
This blog post contiene il seguente script PowerShell che può essere eseguito sul vostro cartella di controllo del codice sorgente e rimuoverà le associazioni controllo del codice sorgente dai file:
# Remove unnecessary files
get-childitem . -include *.vssscc,*.user,*.vspscc,*.pdb,Debug -recurse |
%{
remove-item $_.fullname -force -recurse
}
# Remove the bindings from the sln files
get-childitem . -include *.sln -recurse |
%{
$file = $_;
$inVCSection = $False;
get-content $file |
%{
$line = $_.Trim();
if ($inVCSection -eq $False -and $line.StartsWith('GlobalSection') -eq $True -and $line.Contains('VersionControl') -eq $True) {
$inVCSection = $True
}
if ($inVCSection -eq $False) {
add-content ($file.fullname + '.new') $_
}
if ($inVCSection -eq $True -and $line -eq 'EndGlobalSection') {
$inVCSection = $False
}
}
mv ($file.fullname + '.new') $file.fullname -force
}
# Remove the bindings from the csproj files
get-childitem . -include *.csproj -recurse |
%{
$file = $_;
get-content $file |
%{
$line = $_.Trim();
if ($line.StartsWith('<Scc') -eq $False) {
add-content ($file.fullname + '.new') $_
}
}
mv ($file.fullname + '.new') $file.fullname -force
}
Le informazioni sul binding del controllo sorgente fanno parte dei file VS Project e Solution ed è difficile da rimuovere. Tuttavia, ci sono due opzioni che conosco:
Se "ottieni" il progetto, copia/sposta la cartella di origine in un percorso diverso, quindi riapri la soluzione, VS offrirà di rimuovere i collegamenti di controllo del codice sorgente .
In alternativa, per eseguire questa operazione sul posto, è possibile aprire la soluzione di controllo sorgente in VS, quindi fare clic su File/Controllo origine/Cambia controllo origine. Questo dialogo ha un pulsante "Unbind" che rimuoverà i binding per ogni progetto.
(Caveat: testato su VS2010, non è sicuro di quale versione si sta utilizzando.)
Sto usando TFS 2010. Uno dei problemi con il solo unbinding è che voglio evitare di copiare oggetti/bin/cartelle generati. –
Beh, potresti ottenere e non costruire prima di smetterti. È possibile impostare un secondo spazio di lavoro su una singola macchina, quindi utilizzarlo solo per lo slegamento. (Un po 'di script intelligente probabilmente lo automatizzerebbe abbastanza facilmente.) –
puoi sempre eliminarli prima di copiare. Fai un Clean in Visual Studio otterrà alcuni dei file, ma se vuoi essere sicuro, puoi aggiungere questo comando che aggiungerà un'opzione per il clic destro in Esplora file per eseguire un'eliminazione ricorsiva su bin e obj. Questo esempio è per le cartelle .svn, ma puoi facilmente adattarlo alle tue esigenze. http://weblogs.asp.net/jongalloway//shell-command-remove-svn-folders –
TFS non supporta l'esportazione del codice sorgente senza incepparsi. Come menzionato da Dan Puzey, puoi semplicemente creare una copia del controllo del codice sorgente e rimuovere i collegamenti del controllo del codice sorgente.
Per il mio particolare progetto, ho semplicemente copiato i file e cancellato qualsiasi cosa associata a TFS. Lo stavo facendo come parte della configurazione di distribuzione che stavo usando con TeamCity per un progetto open source.
Ho intenzione di passare questo progetto a Git non appena ha senso.
Ecco una risposta alternativa.
Ho copiato e incollato una soluzione con i suoi progetti da una posizione all'altra e non mi viene chiesto di connettermi al controllo del codice sorgente quando provo ad aprirlo nella nuova posizione.
Quando si passa a File-> Controllo origine-> Avanzate-> Cambia controllo origine, non ho l'abilità di separare. Così ho aperto il file della soluzione in un editor di testo e rimosso la seguente sezione:
GlobalSection(TeamFoundationVersionControl) = preSolution
....
EndGlobalSection
Sembra funzionare; Spero che aiuti qualcuno.
- 1. Apertura di una soluzione da TFS
- 2. Come posso rimuovere completamente i binding TFS da una soluzione?
- 3. Branching specifici progetti da una soluzione multiprogetto
- 4. ritardata vincolante da fonte
- 5. Connessione a un server TFS chiude una soluzione Git
- 6. Migrazione da TFS 2010 a TFS 2012
- 7. Rimuovere la connessione TFS dalla soluzione
- 8. RelativeSource vincolante da una descrizione comandi o ContextMenu
- 9. DefaultModelBinder non vincolante nidificato modello
- 10. Come disconnettere la soluzione dal controllo sorgente su TFS
- 11. KnockoutJS: Mediante 'html' vincolante, nuovi elementi non vincolante
- 12. Rollback intera soluzione/progetto a changeset specifico in TFS?
- 13. Errore TFS: impossibile determinare l'area di lavoro per questa soluzione
- 14. Come ottenere le definizioni di costruzione da TFS?
- 15. Come ottenere una versione specifica della cartella da tfs senza creare uno spazio di lavoro?
- 16. Come passare a TFS automaticamente quando viene caricata la soluzione?
- 17. Errore vincolante dell'assemblaggio infame
- 18. non sequenziale di raccolta vincolante
- 19. Come ottenere una build specifica con l'API TFS
- 20. vincolante evento popstate non funziona
- 21. ci spostando le collezioni da TFS 2010 a TFS 2012
- 22. @PathVariable non vincolante con @RequestBody
- 23. non HttpPostedFileBase vincolante per modellare
- 24. Impossibile eseguire la soluzione da TFS poiché mancano tutti i riferimenti
- 25. Ottenere linee da GL10 disegnando immagini l'una accanto all'altra, soluzione?
- 26. Più copie di una soluzione su un utente/macchina con TFS 2010
- 27. TFS/File Checkout da C#
- 28. Esclusione test da tfs build
- 29. xamarin.forms vincolante da xaml alla proprietà
- 30. vincolante opzionale riesce se non dovrebbe
Woot Woot! Ho usato questo script per farmi uscire dal controllo del codice sorgente TFS per sempre. – hylander0
Le seguenti critiche sono rivolte alla SM: questa dovrebbe essere una funzione integrata.Non c'è bisogno di un simile lock-in. –
Script impressionante! Grazie –