J'ai un projet open source que je veux empaqueter dans un fichier .zip contenant les binaires et la source. Le projet est hébergé sur CodePlex et utilise TFS comme contrôle source. Je ne suis pas sûr comment exporter le projet pour supprimer toutes les liaisons de contrôle de source. De cette façon, les utilisateurs peuvent facilement ouvrir la solution localement sans avoir d'invite de connexion. Cette fonctionnalité est appelée Export dans Git, mais je ne suis pas sûr de savoir comment faire la même chose dans Team.Obtenir une solution non liée à partir de TFS
Répondre
This blog post contient le script suivant qui PowerShell peut être exécuté sur votre dossier de contrôle de code source et supprimera les liaisons de contrôle de code source des fichiers:
# 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
}
Les informations de liaison de contrôle de source font partie des fichiers VS Project et Solution et sont difficiles à supprimer. Cependant, il y a deux options que je connais:
Si vous "obtenez" le projet, copier/déplacer le dossier source à un emplacement différent, puis rouvrez la solution, VS proposera de supprimer les liaisons de contrôle de source . Sinon, pour ce faire, vous pouvez ouvrir la solution contrôlée par la source dans VS, puis cliquer sur Fichier/Contrôle de la source/Modifier le contrôle de la source. Ce dialogue a un bouton "Unbind" qui supprimera les liaisons pour chaque projet.
(caveat: testé sur VS2010, pas sûr de la version que vous utilisez.)
J'utilise TFS 2010. L'un des problèmes avec la déliaison est que je veux éviter de copier les fichiers obj/et bin/générés. –
Eh bien, vous pouvez obtenir et ne pas construire avant de vous délier. Il est possible de configurer un deuxième espace de travail sur une seule machine, puis de l'utiliser uniquement pour le désengagement. (Un peu de scripts astucieux automatiserait probablement cela aussi facilement.) –
vous pouvez toujours les nettoyer avant de les copier. Faire un nettoyage dans Visual Studio obtiendra certains des fichiers, mais si vous voulez être sûr, vous pouvez ajouter cette commande qui ajoutera une option de clic droit dans l'explorateur de fichiers pour faire une suppression récursive sur bin et obj. Cet exemple concerne les dossiers .svn, mais vous pouvez facilement l'adapter à vos besoins. http://weblogs.asp.net/jongalloway//shell-command-remove-svn-folders –
TFS ne supporte pas le code source d'exportation sans se lier. Comme Dan Puzey l'a mentionné, vous pouvez simplement créer une copie du contrôle source et supprimer les liaisons du contrôle source.
Pour mon projet particulier, j'ai simplement copié les fichiers et supprimé tout ce qui est associé à TFS. Je faisais cela dans le cadre de la configuration de déploiement que j'utilisais avec TeamCity pour un projet open source.
Je prévois de passer ce projet à Git dès que cela sera possible.
est ici une réponse alternative.
J'ai copié et collé une solution avec ses projets d'un endroit à un autre et je ne suis pas invité à me connecter au contrôle de source lorsque j'essaie de l'ouvrir au nouvel emplacement. Quand je vais dans Fichier-> Contrôle de source-> Avancé-> Changer le contrôle de source, je n'ai pas la possibilité de dissocier. J'ai donc ouvert le fichier de solution dans un éditeur de texte et supprimé la section suivante:
GlobalSection(TeamFoundationVersionControl) = preSolution
....
EndGlobalSection
Semble être fonctionnel; J'espère que ça aide quelqu'un.
- 1. Solution à une blague liée à EBNF
- 2. Obtenir une liste de fichiers à partir de TFS
- 3. TFS Build sans fichier de solution
- 4. Dans TFS, comment puis-je sélectionner un ensemble de modifications dans une branche non liée?
- 5. liste liée, obtenir des valeurs non désirées
- 6. Team Build pour construire une solution dans différents projets TFS
- 7. Liste liée: Cette solution est-elle bonne?
- 8. Lier un répertoire non-code à TFS
- 9. Propriété de dépendance non liée à UserControl
- 10. TFS 2010 Installation de Team Explorer pour une solution Web
- 11. Solution de contournement non sécurisée tentative d'accès à une image et à une solution ad hoc
- 12. Table liée à Linq erreur non-interrogeable
- 13. Obtenir une référence non-const à partir de dynamic_cast
- 14. Convertir une valeur non liée à une valeur liée en utilisant un algorithme?
- 15. Entité Modèle et liaison Étiquette à une table non liée
- 16. Critères NHibernate pour une table non liée
- 17. Solution avec sous-projets dans TFS
- 18. Comment obtenir une liste de fichiers de TFS à partir d'une date spécifiée?
- 19. Problème tfs. Impossible d'ouvrir le fichier de solution
- 20. Cible liée non mise à jour
- 21. Créer une branche à partir de la branche dans TFS
- 22. TFS 2013 Dependent Assembly XXX sur XXX non trouvé lors de la construction de la solution
- 23. R - Trouver une solution non complexe à partir de la fonction "polyroot"() avec "Im()"
- 24. Partager "Mes requêtes" à partir de TFS
- 25. Checkout à partir de TFS avec MSBuild
- 26. GPSD ne pas obtenir une bonne solution
- 27. Comment obtenir une liste de fichiers à partir de TFS modifiés à une certaine date dans l'espace de travail spécifié?
- 28. TFS demandant une extraction lorsque la solution est construite ou que la solution est ouverte?
- 29. Impossible de se connecter à TFS 2008 et TFS 2010 à partir de Visual Studio 2008
- 30. C# Comment ajouter une colonne de case à cocher non liée à WinForms avec DevExpress (Gridview)?
Woot Woot! J'ai utilisé ce script pour me débarrasser du contrôle de source TFS pour de bon. – hylander0
La critique suivante vise à MS: cela devrait être une fonctionnalité intégrée.Il n'y a pas besoin d'un tel verrouillage. –
Script génial! Merci –