visual tortoise studio plugin para integrar for visual-studio svn plugins

visual-studio - para - tortoise svn plugin for visual studio 2017



Complemento "SVN Blame" para VisualStudio (5)

En VisualSVN soporta la culpa en cierta medida: puede hacer clic derecho en un archivo y seleccionar "Culpar". Sin embargo, aparece una nueva ventana, que puede no estar tan integrada como desee.

Encontré esta pregunta, pero las opciones mencionadas no dicen nada acerca de apoyar la "culpa". Lo que estoy buscando es una forma integrada de preguntar "¿Quién editó la línea debajo del cursor?".

Sé que la mayoría de los clientes de SVN dan esto de alguna forma, pero me gustaría algo que lo haga lo suficientemente fácil como para hacerlo a mi antojo: "Humm, ¿quién lo escribió? [Toca el tap] Oh, él".


Utilizo un conjunto de herramientas externas conectadas a TortoiseProc.exe para realizar operaciones SVN como log, diff, culpa, revertir, confirmar, actualizar, etc. Luego, creo accesos directos de barra de herramientas a estas herramientas externas para que tenga todas las operaciones básicas de SVN accesibles dentro del IDE.

Estos son los pasos para crear un botón para echarle la culpa al archivo actual:

  1. Vaya a herramientas -> herramientas externas y haga clic en "Agregar"
  2. Ingrese el título que desee (por ejemplo, "Culpar")
  3. Para el comando, ingrese lo siguiente (la ruta será diferente si instaló TortoiseSVN en un directorio diferente): c: / Archivos de programa / TortoiseSVN / bin / TortoiseProc.exe
  4. Para los argumentos, ingrese lo siguiente: / command: culpa / ruta: "$ (ItemPath)" / notempfile
  5. Para el directorio inicial, ingrese: $ (ItemDir)

Ahora, cada vez que tenga un archivo abierto, simplemente vaya a herramientas -> Culpar y debería generar la Culpa en una ventana emergente. También puede personalizar la barra de herramientas y crear un atajo para esta herramienta externa para que sea aún más fácil.


Escribí una macro de Visual Studio para obtener la información del número de línea y pasarla a tortoiseproc.exe (que es parte de TortoiseSVN)

Eche un vistazo a la información del parámetro: http://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-automation.html

Aquí está mi macro:

Sub Blame() sCurrFileFull = DTE.ActiveDocument.FullName Dim activeDoc As Document activeDoc = DTE.ActiveDocument Dim nLine As Integer nLine = activeDoc.Selection.CurrentLine sShellCommand = sTorEXE & " /command:blame /startrev:1 /endrev:-1 /path:""" & sCurrFileFull & """ /notempfile /line:" & nLine.ToString() Shell(sShellCommand, AppWinStyle.MaximizedFocus, False) End Sub


Las versiones diarias de AnkhSVN 2.0 tienen una implementación de anotación completamente nueva (culpa) inspirada en la función de anotación TFS.

AnkhSVN Annotate Preview http://b.qqn.nl/f/2009//20090120-AnkhSVN-Annotate.jpg

No es realmente visible en estas capturas de pantalla, pero usa el editor de Visual Studio para colorear la sintaxis, etc. (Puede ver que el tamaño de () en la parte inferior derecha de la siguiente imagen es azul). Como puede ver en la segunda imagen, también permite varios comandos en las regiones de revisión en la barra izquierda.

Actualmente no implementa el salto a la línea activa. Pero puede usar el comando Visual Studio goto line (Ctrl + G). (Es posible que pueda escribir esto en una macro)

La manera más fácil de comenzar a anotar es hacer clic derecho en el editor -> Subversión-> Anotar.

Comandos de AnkhSVN Annotate http://b.qqn.nl/f/2009//20090120-AnkhSVN-Annotate-Detail.jpg

[Actualización 2009-02-03: esta característica ahora está comúnmente disponible en la nueva versión estable]


Aquí hay una versión funcional de crashmstr y el código de macro de Derek Dahmer :

Sub Blame() Dim sCurrFileFull = DTE.ActiveDocument.FullName Dim activeDoc = DTE.ActiveDocument Dim nLine = activeDoc.Selection.CurrentLine Dim sTorEXE = "TortoiseProc.exe" '' Add path if you don''t have TortoiseSVN on your PATH Dim sShellCommand = sTorEXE & " /command:blame /startrev:1 /endrev:-1 /path:""" & sCurrFileFull & """ /notempfile /line:" & nLine.ToString() Shell(sShellCommand, AppWinStyle.MaximizedFocus, False) End Sub

De acuerdo con las instrucciones de Derek Dahmer , agréguelo a un módulo macro nuevo o existente utilizando las Tools > Macros > Macro IDE .

Para facilitar el acceso, agregué la macro al menú contextual de mi ventana de código:

Customize > Commands > Context menu > Editor Context Menus | Code Window Add Command > Macros > Find your macro Modify Selection > Name: Bla&me

Tenerlo en el menú contextual permite un fácil acceso al teclado, pero, por supuesto, también puedes agregarle un atajo de teclado. Lo tengo en Ctrl-Shift-M, que no es usado por nada útil por defecto :).