Tengo un proyecto de código abierto que quiero empaquetar en un archivo .zip que contiene los archivos binarios y el código fuente. El proyecto está alojado en CodePlex y usa TFS como control de origen. No estoy seguro de cómo exportar el proyecto para eliminar todos los enlaces de control de origen. De esta forma, las personas pueden abrir fácilmente la solución localmente sin obtener un aviso de inicio de sesión. Esta funcionalidad se llama Exportar en Git, pero no estoy seguro de cómo hacer lo mismo en Team.Getting Unbound Solution de TFS
Respuesta
This blog post contiene la siguiente secuencia de comandos PowerShell que se pueden ejecutar en su carpeta de control de código fuente y eliminará los enlaces de control de origen de los archivos:
# 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
}
La información de enlace de control de origen es parte de los archivos VS Project y Solution, y es difícil de eliminar. Sin embargo, hay dos opciones que conozco:
Si "obtiene" el proyecto, copie/mueva la carpeta de origen a una ubicación diferente y luego vuelva a abrir la solución, VS ofrecerá eliminar los enlaces de control de origen .
Como alternativa, para hacer esto in situ, puede abrir la solución controlada por fuente en VS y luego hacer clic en Archivo/Control de fuente/Cambiar control de fuente. Este diálogo tiene un botón "Desvincular" que eliminará los enlaces para cada proyecto.
(Advertencia: probado en VS2010, no está seguro de qué versión está utilizando.)
Estoy usando TFS 2010. Uno de los problemas con la simple desvinculación es que quiero evitar copiar obj/bin/folders generados. –
Bueno, puedes obtener y no construir antes de desvincular. Es posible configurar un segundo espacio de trabajo en una sola máquina, y luego usarlo solo para la desvinculación. (Un poco de secuencias de comandos inteligentes probablemente también lo automatizaría con facilidad). –
siempre puede limpiarlos antes de copiar. Haga una limpieza en Visual Studio obtendrá algunos de los archivos, pero si quiere estar seguro, puede agregar este comando que agregará una opción de clic derecho en el Explorador de archivos para hacer una eliminación recursiva en bin y obj. Este ejemplo es para las carpetas .svn, pero puede adaptarlo fácilmente a sus necesidades. http://weblogs.asp.net/jongalloway//shell-command-remove-svn-folders –
TFS no admite la exportación de código fuente sin unión. Como mencionó Dan Puzey, solo puede crear una copia del control de origen y eliminar los enlaces de control de origen.
Para mi proyecto en particular, simplemente copié los archivos y eliminé todo lo relacionado con TFS. Estaba haciendo esto como parte de la configuración de implementación que estaba usando con TeamCity para un proyecto de código abierto.
Planeo cambiar este proyecto a Git tan pronto como tenga sentido.
Aquí es una respuesta alternativa.
He copiado y pegado una solución con sus proyectos de una ubicación a otra y no me pide que me conecte con el control de código fuente cuando intento abrirlo en la nueva ubicación.
Cuando voy a File-> Source Control-> Advanced-> Change Source Control, no tengo la capacidad de desvinculación. Así que abrí el archivo de solución en un editor de texto y quitado la siguiente sección:
GlobalSection(TeamFoundationVersionControl) = preSolution
....
EndGlobalSection
parece estar funcionando; Espero que esto ayude a alguien.
- 1. com.admob.android.ads.AdView prefijo unbound?
- 2. Visual Studio Solution Explorer bloquea
- 3. Getting Spring Application Context
- 4. signalR - getting username
- 5. LabVIEW "driver" - getting started
- 6. Solution Explorer vs Solution Navigator vs Class View
- 7. Mappoint Routing Solution
- 8. Proyecto seleccionado de Solution Explorer
- 9. C# Reflection and Getting Properties
- 10. libvirt y VirtualBox/Getting Started
- 11. Getting excel application process id
- 12. Reverse Engineering a C# Solution
- 13. asp.net MVC Solution/Project layouts
- 14. FOSS ASP.Net Session Replication Solution?
- 15. SQL Server Data Archive Solution
- 16. Cómo cambiar el proyecto de SharePoint 2010 de Sandboxed Solution a Farm Solution
- 17. Einstein's Riddle solution using F #
- 18. Orden de proyecto en Visual Studio Solution
- 19. (Ruby) Getting Net :: SMTP trabajando con Gmail ...?
- 20. Getting EasyMock simula objetos para lanzar excepciones
- 21. br clear = "all" vs css solution
- 22. Solution Explorer: iconos personalizados para mis carpetas
- 23. Visual Studio Solution Explorer/Navigator Iconos Significado
- 24. Archivos comunes en Visual Studio Solution
- 25. DB solution for user activity feed
- 26. ¿Carpetas reales en Visual Solution Explorer?
- 27. ¿Dónde puedo encontrar las guías "Getting Started" de Rspec + Capybara?
- 28. C# Getting Parent Assembly Nombre del conjunto de llamada
- 29. Necesito ayuda para completar el tutorial de LiftWeb Getting Started
- 30. Erlang getting error ** 1: error de sintaxis antes: '->' **
¡Woot Woot! Utilicé este script para sacarme de control de fuente TFS para siempre. – hylander0
La siguiente crítica está dirigida a MS: esto debería ser una función incorporada.No hay necesidad de tal enclavamiento. –
Awesome script! Gracias –