Pregunta

He estado programando durante más de 10 años para el mismo empleador y el único control de código fuente que hemos usado es VSS.(Lo siento, eso es lo que tenían cuando comencé).Sólo hemos sido unos pocos de nosotros;Dos en este momento y normalmente trabajamos solos, por lo que VSS nos ha funcionado bien.Entonces, tengo dos preguntas:1) ¿Deberíamos cambiar a otra cosa como subversion, git, TFS, etc., qué exactamente y por qué (por favor)?2) ¿Estoy más allá de toda esperanza y estoy destinado a la condenación eterna porque VSS me ha corrompido (como dice Jeff)?

¡Guau, gracias por todas las excelentes respuestas!

Parece que debería aclarar algunas cosas.Somos una tienda de MS (socio Gold) y principalmente trabajamos con VB, ASP.NET, SQL Server, sharepoint y Biztalk.Tengo un título en informática, así que realicé el ensamblaje x86 C, C++ en DEC Unix y Slackware Linux en un "tiempo fuera de mi mente"...

Mi preocupación con VSS es que ahora estoy trabajando mucho más con una VPN y el rendimiento de VSS es deficiente y me temo que nuestra base de datos VSS versión 5 de más de 10 años será elegida...Existe el servicio LAN que se supone que acelera las cosas, pero nunca lo he usado y no estoy seguro de que ayude con la corrupción. ¿Alguien ha usado el servicio LAN VSS?(nuevo con VSS 2005)

¿Fue útil?

Solución

Probablemente elegiría Subversion, si fuera tú.Soy un fanático total de Git en este momento, pero Subversion ciertamente tiene algunas ventajas:

  • sencillez
  • abundancia de herramientas interoperables
  • comunidad activa y solidaria
  • portátil
  • Tiene una integración de shell de Windows realmente buena.
  • se integra con Visual Studio (creo, pero seguramente a través de un tercero)

Git tiene muchas, muchas otras ventajas, pero las anteriores tienden a ser las que interesan a la gente cuando hacen preguntas generales como las anteriores.

Editar:La empresa para la que trabajo ahora utiliza el servidor VisualSVN, que es gratuito.Hace que configurar un repositorio de Subversion en un servidor de Windows sea estúpidamente simple, y en el cliente estamos usando TortoiseSVN (para integración de shell) y AnkhSVN para soporte de Visual Studio.Es bastante bueno y debería ser bastante fácil de aprender incluso para los usuarios de VSS.

Edición de los últimos días:Entonces... casi ocho años después, nunca recomendaría Subversion a nadie por ningún motivo.Realmente no me retracto per se, porque creo que mi consejo era válido en ese momento.Sin embargo, en 2016, Subversion no conserva casi ninguna de las ventajas que solía tener sobre Git.Las herramientas para Git son superiores (y mucho más diversas) a las que alguna vez fueron y, en particular, están GitHub y otros buenos proveedores de alojamiento de Git (BitBucket, Beanstalk, Visual Studio Online, justo fuera de mi cabeza).Visual Studio ahora tiene soporte Git listo para usar y, en realidad, es bastante bueno.Incluso hay módulos de PowerShell para brindar una experiencia de Windows más nativa a los usuarios de la consola.Git es incluso más fácil de configurar y usar que Subversion y no requiere un componente de servidor.Git se ha vuelto tan omnipresente como cualquier herramienta puede serlo, y realmente solo te estarías engañando a ti mismo si no lo usaras (a menos que realmente quieras usar algo que no sea Git).No me malinterpretes: no soy yo odiando Subversion, sino más bien reconociendo que es una herramienta de otra época, más bien como una navaja de afeitar.

Otros consejos

Parece que SubVersion es el ganador aquí.Me haría un favor y usaría Servidor VisualSVN.Es gratis y te ahorrará muchos dolores de cabeza durante la instalación.

Si está acostumbrado a la forma en que funciona VSS, consulte (sin juego de palabras) La bóveda de Sourcegear.Es una excelente manera de migrar fuera de VSS, ya que viene con integración IDE y admite check-out/check-in, pero cuando esté listo y se sienta cómodo, también puede pasar al estilo de programación de edición y actualización que se encuentra en SVN.

Es gratis para desarrolladores individuales, se ejecuta en IIS y está construido en .net, por lo que debería ser una pila bastante familiar a la que cambiar.

Hagas lo que hagas, no cambies por cambiar.

Si te funciona y no tienes problemas con él, no veo ninguna razón para cambiar.

Por si sirve de algo, Perforce es una opción potencial si realmente te quedas con 1 o 2 usuarios.Los documentos forzosos actuales dicen que tiene 2 usuarios y 5 clientes sin tener que comenzar a comprar licencias.

Es posible que tenga motivos para cambiar a forzosamente dependiendo de su flujo de trabajo y si necesita bifurcarse de la forma en que lo hace forzosamente.Al no estar demasiado familiarizado con algunos de los otros productos mencionados aquí, no puedo decirle cómo se compara necesariamente en el departamento de funciones para cosas como ramificaciones, etc.

Es rápido y ha sido sólido como una roca para nosotros (más de 300 desarrolladores en una base de código de más de 10 años).Almacenamos varios T de información y ha respondido bastante.Con una pequeña cantidad de usuarios, dudo que experimente muchos problemas de rendimiento suponiendo que tenga un buen hardware para su servidor.

Habiendo usado VSS antes, creo que se pueden obtener tantos beneficios de un mejor sistema SCM que se debe considerar el cambio independientemente de si hay corrupción o no.La ramificación por sí sola podría valer la pena para usted.Un verdadero modelo cliente/servidor, mejores interfaces (mediante programación y línea de comandos) son un par de otras cosas que realmente podrían ayudar a mejorar su flujo de trabajo y ayudar de alguna manera con la productividad.

En resumen, mi visión de Perforce es:

  • Es rápido y bastante confiable.
  • Muchas herramientas cliente multiplataforma (Windows, Unix, Mac, etc.)
  • es gratis para 2 usuarios y 5 clientes
  • Se integra con Developer Studio (y otras herramientas)
  • Tiene un poderoso sistema de ramificación (que podría ser adecuado para usted o no).
  • Tiene varias interfaces programables (python, perl, ruby, C++)

Ciertamente, YMMV: solo ofrezco esta alternativa como algo que podría valer la pena considerar.

Recientemente comencé a usar Mercurial para algunos de mis trabajos.Es un sistema distribuido como Git, pero parece más fácil de usar y mucho mejor compatible con Windows, lo último de lo cual fue crucial para mí.

Con el control del código fuente distribuido, cada usuario tiene una copia local completa del repositorio.Si eres la única persona que trabaja en un proyecto, como sueles decir, esto puede simplificar mucho las cosas, ya que simplemente creas tu propio repositorio y haces todas tus confirmaciones, etc.en la zona.Si desea incorporar a otros desarrolladores más adelante, puede enviar todo el contenido de su repositorio (versiones actuales y todo el historial) a otro sistema, ya sea en un servidor compartido o directamente en la estación de trabajo de otro usuario.

Si está trabajando sólo con un repositorio local, recuerde que también necesitará una solución de respaldo, ya que no hay una copia de todo su código en un servidor compartido.

Creo que Mercurial tiene muchas otras ventajas sobre Subversion, pero tiene una gran desventaja que ya se ha mencionado como un punto positivo de Subversion:hay un lotes de herramientas de terceros e integraciones para Subversion.Como Mercurial no ha existido durante tanto tiempo, la elección es mucho menor.En Windows parece que tienes que usar la línea de comando (mi elección) o el TortugaHg Integración del Explorador de Windows.

VSS es horrible.Puede que esté canalizando a Spolsky (no estoy seguro de si ha dicho esto), pero usar VSS es en realidad peor que no usar el control de fuente en absoluto.A pesar de su nombre, no es seguro.Crea la ilusión de seguridad sin proporcionarla.

Sin VSS, probablemente estaría haciendo copias de seguridad periódicas de su código.Con VSS, pensarás: "Mehh, ya está bajo control de código fuente.¿Por qué molestarse en retroceder?" Genial hasta que corrompe todo tu código base y lo pierdes todo.(Esto, por cierto, sucedió en una empresa en la que trabajaba).

Deshágase de VSS tan pronto como pueda y cambie a una solución de control de fuente real.

No se preocupe si VSS lo corrompe, preocúpese si VSS corrompe sus datos.No tiene un buen historial en ese departamento.

Realice copias de seguridad con frecuencia si no cambia a un sistema de control de versiones diferente.Las copias de seguridad deberían realizarse diariamente incluso con otros SCM, pero es doblemente importante con VSS.

Me gusta usar Subversion para mis proyectos personales.Podría repasar la lista de funciones y fingir que aporta muchas cosas que otros sistemas de control de fuente no ofrecen, pero hay toneladas de buenas por ahí y la elección correcta es realmente una cuestión de estilo.Si realiza el check-in después de cada pequeño cambio (es decir,un registro por cambio de función), entonces muchas personas pueden trabajar en el mismo archivo fuente con muy bajo riesgo de conflictos de fusión en prácticamente cualquier cosa. pero VSS (no he usado VSS en años, pero por lo que recuerdo, solo una persona a la vez puede trabajar en un archivo). Si esto nunca te va a pasar a ti, creo que el mejor curso de acción es Usa lo que sabes.VSS es mejor que ningún control de fuente, pero hoy en día me parece restrictivo.

No creo que estés más allá de la esperanza porque preguntas si sería mejor cambiar;estás más allá de toda esperanza cuando la respuesta es obvia e ignoras la evidencia.

Incluso si no cambia los sistemas de control de fuente, debe elegir uno como SVN o git y pasar algunas semanas leyendo sobre él y haciendo un pequeño proyecto usándolo;Siempre ayuda afilar la sierra.

No estoy de acuerdo con la gente que dice que si no tienes problemas es mejor no cambiar.

Creo que SCM es una de las disciplinas que un buen desarrollador debe conocer bien y, francamente, incluso si domina VSS, solo está experimentando una pequeña fracción de las ventajas que una buena herramienta SCM y una buena estrategia SCM pueden brindarle a usted y a su equipo.

Obviamente, evalúe y pruebe las alternativas primero en un entorno que no sea de producción.

En el trabajo usamos subversion con TortoiseSVN; funciona muy bien pero es filosóficamente diferente a VSS (realmente no es un problema si solo estás tú, pero vale la pena tenerlo en cuenta).Realmente me gusta el hecho de que todo el repositorio tenga un número de revisión.

Si tuviera la libertad de elegir, probablemente habría optado por la bóveda, pero en ese momento no tenía presupuesto.

Estoy mirando cosas para uso personal.Hay razones para utilizar la subversión y razones para utilizar algo completamente diferente.Las alternativas que estoy considerando son Vault (como antes, gratuito para un solo uso) y Bazaar.He tenido que descartar GIT porque soy, sin vergüenza, una persona de Windows y en este momento GIT simplemente no lo es.

La naturaleza distribuida de GIT y la opción de registros privados/temporales (suponiendo que he entendido lo que he leído) es atractivo, de ahí que mire Bazaar.

Actualizar: Investigué y jugué un poco más y de hecho opté por Mercurial para uso personal, la instalación integrada con TortoiseHg hace las cosas muy simples y parece estar bien considerado.Todavía estoy tratando de descubrir cómo forzar una duplicación automática de confirmaciones en un servidor y parece haber algunas limitaciones menores en la función de ignorar, pero hasta ahora está funcionando bien...

Murph

Yo diría que te quedes con lo que funcione para ti.A menos que tenga problemas con VSS, ¿por qué cambiar?Subversion es genial, aunque un poco pegajoso para empezar a usarlo.TFS es mucho mejor que VSS, aunque es bastante caro para un equipo tan pequeño.No he usado git así que realmente no puedo hablar de ello.

Usé vss durante años hasta que cambié a svn hace unos dos años.Mis mayores quejas sobre vss fueron el bajo rendimiento de la red (ese problema puede estar resuelto ahora) y el bloqueo pesimista de archivos.svn resolvió ambos, es fácil de configurar (yo uso el servidor collabnet y el cliente tortoisesvn, aunque hay dos buenos complementos de Visual Studio:visualsvn - comercial y ankhsvn - código abierto), fácil de usar y administrar, y bien documentado.

Es tentador decir "si no está roto, entonces no lo arregles", pero aprenderás una herramienta de control de fuente más moderna y, quizás lo más importante, nuevas formas de usar el control de fuente (p. ej.ramificaciones y fusiones más frecuentes) que admitiría la nueva herramienta.

Si solo tiene 2 personas y trabaja principalmente de forma independiente, git le brindará mucha más flexibilidad, potencia y será, con diferencia, el más rápido para trabajar.

Sin embargo, su uso es un dolor de cabeza.Al usar VSS, obviamente estás programando para Windows; si estás haciendo cosas de la API de Win32 en C, entonces git será una curva de aprendizaje, pero será bastante interesante.

Sin embargo, si la profundidad de su conocimiento solo se extiende a ASP y Visual Basic, simplemente use subversion.Camine antes de que pueda correr.

** No estoy tratando de decir que si solo conoces VB eres tonto o algo así, pero ese git puede ser muy quisquilloso y exigente de usar (si has usado WinAPI en C, sabes todo acerca de quisquilloso y quisquilloso), y es posible que desee una introducción más gradual a SCM que la que proporciona git

Si es una exposición unipersonal y estrictamente una tienda de Microsoft, entonces Bóveda de SourceGear Definitivamente también es un excelente candidato para cambiar.

Características:

  • Gratis para un solo usuario, ideal para ti
  • Utiliza SQL Server como backend, por lo que la confiabilidad de los datos es enorme.
  • Tiene registros atómicos, todos los archivos registrados al mismo tiempo están organizados en un grupo y se denominan conjunto de cambios.
  • Integración con VisualStudio.
  • Tiene una herramienta para importar desde SourceSafe, por lo que puedes conservar tu historial.
  • El cliente se comunica con el servidor a través de HTTP, por lo tanto, el acceso remoto a la fuente fuera de la oficina se puede configurar muy fácilmente y funciona bien, porque solo transfieren los deltas de los cambios que se envían y reciben.Puede utilizar SSL para proteger la conexión.

Definitivamente consideraría esto como una opción.

Si desea un ciclo de vida completo en un solo paquete, probablemente desee consultar Visual Studio Team System.Requiere un servidor, pero puede obtener un "Action Pack" de MS que incluye todas las licencias que necesita para "Team Foundation Server Workgroup Edition" en el centro de socios.

Con esto obtendrá seguimiento de errores, riesgos y problemas, así como muchas otras funciones :)

  • Fuente de control
  • Seguimiento de elementos de trabajo (requisitos, errores, problemas, riesgos y tareas)
  • Informes sobre los datos de su proyecto (seguimiento de elementos de trabajo, compilación, registros y más en un qube)
  • Análisis de código
  • Examen de la unidad
  • Prueba de carga
  • Análisis de rendimiento
  • Construcción automatizada
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top