2010-09-29 12 views
8

Recuerdo 2 eventos en la historia de SVN: TortoiseSVN se usó y VisualSVN se pudo usar.Distributed Source Control no es para usuarios de Visual Studio?

El resultado del primero: "Nunca querremos usar SVN con la línea de comandos". El resultado de la segunda: "Vamos a nunca usar SVN & MSVS sin VisualSVN"

por favor entiendan esto correcto - que hacemos uso de línea de comandos SVN si necesitamos algo que no se puede lograr con la tortuga y hacemos uso de la tortuga si algo que necesitamos no está disponible desde MSVS. Pero de lo contrario (99.9% del tiempo) todo lo que necesita está en su mano en el IDE.

Ahora entiendo y me gustan los beneficios del control de fuente distribuida, pero simplemente no hay forma de que vaya a buscar archivos renombrados en el IDE y ejecutar hg rename manualmente para no perder el historial ("eliminar + crear nuevo "en lugar de" renombrar "= sin historial). Tampoco considero culpa o archivo revertir como una acción que no se puede ejecutar directamente en el archivo seleccionado en el explorador de soluciones o abierto para su edición. Con VisualSVN todo eso, y mucho más, ¡solo funciona!

Las ventajas conceptuales de DSCM son excelentes, ¡pero no son buenas si el IDE no ofrece funciones sencillas y de uso diario!

La pregunta: ¿existe un control de fuente distribuida con plug-in que se integre a MSVS tan suavemente como lo hace VisualSVN? Extensiones Git y VisualHg no son donde cerca de ese punto en el momento y el equipo de VisualSVN se niega a crear VisualGit con:

"We can consider this option only if Git changes its license from GPL to BSD/Apache style to allow derivative commercial work."

P. S. Una necesidad de IDE:

  • Estado del archivo en el árbol de soluciones. Padre, es decir carpeta/proyecto/solución, se marca como editado si se edita cualquier elemento secundario.
  • actualización contextual, commit, history, blame, revertir como una acción de un clic desde el explorador de soluciones/abrir el archivo con atajos de teclado disponibles!
  • Seguimiento y gestión automática de cambio de nombre de archivo/arrastrar y soltar/nueva creación de archivo.
  • Un indicador (línea amarilla) de lo que aún no se ha confirmado en el archivo editado que no desaparece después de que el archivo se cierra y se vuelve a abrir.

No es mucho?

UPDATE:

1) Probado HgSccPackage ayer. Seguro que tiene características más necesarias disponibles directamente desde IDE, y respetan el contexto actual, es decir, el archivo seleccionado/abierto, etc. Desafortunadamente, el estado del árbol de la solución es defectuoso y no admite el estado de la carpeta.

2) Git Source Control Provider mencionado en una respuesta mismos que VisualHG carece de al menos 2 cosas:

  • por alguna razón tienen pequeña cantidad de acciones contextuales (la culpa/anotaciones, por ejemplo, es NA)
  • costuras ambos se basan sólidamente en la API de control de fuente de MSVS (a diferencia de VisualSVN) y, por lo tanto, no proporcionan el estado de las carpetas de solución (lo mismo con HgSccPackage).

3) Charles Bailey señaló, que asas git renombra de todos modos. Sí, lo hace. No se necesita soporte IDE aquí (No estoy seguro sobre mercurial). Entonces, el soporte de git MSVS solo carece de buenas acciones contextuales, de un solo clic y de compatibilidad adecuada con el estado del árbol (también hay una línea amarilla, pero digamos que es muy bueno tenerlo, pero no es obligatorio en este momento).

+1

No es necesario que le digas a git sobre los cambios de nombre, no los registra como cambios de nombre en su historial; lo resuelve retrospectivamente. –

+0

@Charles Bailey Wow ... y ¿qué hay de la historia? ... Quiero decir, si cambio el nombre de un archivo de "A" a "B", ¿podré anotar "B" y ver las líneas de los autores como eran antes de cambiar el nombre? Git se trata de conjuntos de cambios y no de versiones de archivos, eso está bien. Pero la anotación correcta después de cambiar el nombre es imprescindible para mí. (Lo siento, por no haberlo comprobado yo mismo - git desinstalado como el tiempo de las investigaciones está fuera :() – Dandikas

+1

'git log -M' sigue el cambio de nombre; tiene un umbral de similitud configurable.' git log --sigue 'sigue a cambiar el nombre de un single path. –

Respuesta

0

Mi respuesta: No.

2 semanas pasaron en la investigación y ensayo de diversas herramientas y plug-ins. Curriculum vitae: en el momento de escribir no hay un solo control de fuente distribuida que se integre a MSVS tan fácilmente como SVN con VisualSVN.

SVN no se distribuye, y VisualSVN no es gratuito, es por eso que estaba buscando algo diferente.

2 semanas de investigación no es una investigación menor para mí, esta es la única razón por la que publico esta respuesta - espero que sea útil para otros que están "al borde del cambio".

También tenga en cuenta que reviso todas mis preguntas y las respuestas a ellas, siempre que alguien me demuestre que estoy equivocado, es decir,cuando haya disponibles herramientas decentes, eliminaré esta respuesta y marcaré una mejor como "la respuesta".


P.S. el futuro está en los sistemas de control de versiones distribuidas. Si debe seleccionar uno hoy, simplemente elija cualquiera. No perderás mucho de todos modos. Hoy probablemente iría por Git. Pero en realidad solo soy yo.

0

¿Has visto VisualHG como un complemento para Visual studio for Mercurial?
No soy un usuario de estudio visual, así que no puedo comentar sobre las funciones.

+1

OP ya tiene un veredicto: "no cerca de ese punto (suave como VisualSVN) en este momento ". –

+0

sí, lo miré y no, no es lo que esperaría que fuera. Es una lástima que le falte tan poco, pero ese poco es el 95% de cada día que se usa características :( – Dandikas

+0

Lo siento, lo perdí en la pregunta –

0

¿Has mirado Team Foundation Server, la herramienta de control de fuente MS compatible + solución de gestión de proyectos? La versión 2K10 es bastante sólida.

+2

No se distribuye – CaffGeek

+0

No, no lo hice, pero estoy realmente interesado en la fuente distribuida control. – Dandikas

2

Acerca de la integración de Visual Studio para GitExtensions. "Nosotros" no agregamos la integración que está buscando porque no funciona bien con el flujo de trabajo de Git. Sinse no hay problemas de bloqueo de archivos o cambio de nombre, simplemente puede olvidarse del control de código fuente hasta que confirme sus cambios.

Dicho esto: hay un complemento para Visual Studio que hace lo que está pidiendo. Puede encontrarlo aquí: http://visualstudiogallery.msdn.microsoft.com/en-us/63a7e40d-4d71-4fbb-a23b-d262124b8f4c Este complemento para Visual Studio agrega un proveedor de control de código fuente para las extensiones de Git y Git a Visual Studio.

No estoy seguro acerca de TortoiseGit, pero tan rápido como GitExtensions no hay planes para agregar un proveedor de control de código fuente para Visual Studio. Esto no es un problema técnico o de tiempo, ya está construido en la rama "scc". Los flujos de trabajo que Visual Studio usa son simplemente diferentes de lo que usa un DVCS típico. Si encuentra un proveedor de control de código fuente muy importante, tal vez sea mejor seguir con SVN, ya que esto se adapta mejor a su flujo de trabajo.

+0

Esto es realmente una respuesta interesante por al menos 2 razones. Primero es obviamente que "nosotros". Eso significa que Henk tomó al menos parte en el desarrollo de GitExtension (sin ofender, realmente no sé si es una parte o una gran parte - respeto en cualquier caso). La segunda razón no es tan obvia, así que primero diré que probé la herramienta que mencionaste. Para mí, cualquier control de fuente no es solo lo que hace, que mantiene segura la fuente del proyecto y ayuda desarrolladores para integrar sus cambios en un gran "todo", es decir, el código de trabajo. Es por mucho un valor predeterminado. Quiero decir que ningún control de origen es bueno si esto no está cubierto;) ... – Dandikas

+0

CONTINUACIÓN ... Anot su parte principal de cualquier control de fuente es que sirve como herramienta de "historia de desarrollo". Esa es realmente la parte más importante para mí. ... Y ahora dices: "simplemente puedes olvidarte del control de la fuente hasta que confirmes tus cambios". ... Ahora aquí es donde me detengo y digo NO. No, no puedo olvidar el control de fuente hasta que deba comprometerme. Lamento decirlo, pero utilizo la culpa/anotación más veces por día, que utilizo commit y update juntos.Y no trabajo en el mundo ideal donde el desarrollador trabaja en una sola característica a la vez, así que necesito ver qué archivos fueron cambiados para esa corrección de 5 minutos – Dandikas

+0

CONTINUACIÓN Entonces, para mí la posibilidad de comprometer una solución rápida mientras una función más grande está en el progreso es imprescindible No es que me guste o anime este tipo de trabajo, pero las cosas suceden, y no creo que sea sensato tratar de decirle a la gerencia "bueno, no vamos a seguir haciéndolo para quemar errores porque no funciona bien". con el flujo de trabajo de Git ". ... ¿tengo que dar un ejemplo, por qué es importante obtener el historial de cambios en el archivo o simplemente debo "olvidarme hasta que confirme mis cambios"? ... Trate de entender - No veo nada, repetiré CUALQUIER COSA que falte en la línea de comandos de git ... – Dandikas

3

He encontrado la integración VS para Git sin sentido. La única vez que necesita interactuar con Git es cuando desea organizar, enviar y enviar contenido al repositorio remoto.

Esto se hace cuando ha terminado de codificar y el código compila y pasa las pruebas, etc. ... Es en este punto que uso git a través de la línea de comandos o TortiseGit.

Me gusta cómo funciona el flujo de trabajo de Git, me permite trabajar sin saber que hay control de fuente, y solo entra en juego cuando tengo que compartir mi trabajo o comprometerme en un lugar seguro.

Hace algunos meses que utilizamos Git y TortiseGit en mi empresa, e incluso los usuarios de VisualSVN no se lo pierden.

+0

+1 usa las herramientas correctamente y aprenderás mucho en el proceso. No estoy seguro de por qué OP necesita integración visual ... –

+2

Disculpe, no hay manera de que pueda aceptar esta afirmación: "La única vez que necesita interactuar con Git es cuando desea organizar, comprometer y enviar contenido al repositorio remoto". La respuesta extendida está en comentarios a la publicación de Henk. – Dandikas

0

Esto puede sonar como poner las cosas patas arriba, pero así es como lo hago. Yo uso C++. Codigo en eclipse y compilo y depuro en VS. Eclipse tiene un plugin para Git, y si no me equivoco, hace más o menos lo que espera. (Es cierto que no los utilicé a todos, tampoco he usado anotaciones). Si no es así, es de código abierto, ¡así que puede mejorarlo!

Tienes que hacer dos proyectos y realizar un seguimiento de includes para dos proyectos diferentes, pero como beneficio adicional no solo tienes la integración de git, sino que también tienes un mejor esquema y resaltado de sintaxis, navegación y navegación con un solo clic botón, etc. Hay algunos aspectos de VS que son mejores, pero son problemas menores y estoy seguro de que eclipse cdt mejorará con el tiempo.

Cuestiones relacionadas