Comandos de control de versiones de Team Foundation

Comandos de control de versiones de Team Foundation

¿Alguien sabe si los siguientes comandos están detallados o enumerados en alguna tabla o archivo de configuración?

Tabla: tbl_Version Campo: Comando

  • Elemento de lista
  • Editar = 2
  • Tipo = 4
  • Agregar carpeta = 5
  • Agregar archivo = 7
  • Cambiar nombre = 8
  • Cambiar nombre, editar = 10
  • Eliminar = 16
  • Eliminar, cambiar nombre = 24
  • Recuperar = 32
  • Recuperar, editar = 34
  • Sucursal = 68
  • Rama, eliminar = 84
  • Fusionar = 128
  • Fusionar, editar = 130
  • Fusionar, escribir, editar = 134
  • Fusionar, renombrar, editar = 138
  • Fusionar, eliminar = 144
  • Fusionar, eliminar, cambiar nombre = 152
  • Fusionar, recuperar = 160
  • Fusionar, recuperar, editar = 162
  • Fusionar, bifurcar = 196
  • Fusionar, bifurcar, editar = 198

Respuesta1

En caso de que alguien más esté intentando consultar tbl_Version (TFS 2017 Update3), los bits de enumeraciónmostrado por jessedebe desplazarse un lugar en la base de datos. No estoy seguro de por qué la enumeración ChangeType se configuraría como describe Jesse, ya que violaríaDirectriz de diseño .NET CA1008y sentido común al establecer aparentemente 'Ninguno'=1 en lugar de 0. Esto haceLos valores de Rick Webbastante cerca de corregir. Por lo tanto, los indicadores de bits de la columna 'Comando' en la base de datos son:

(None = 0)
Add = 1,
Edit = 2,
Encoding = 4,
Rename = 8,
Delete = 16,
Undelete = 32
Branch = 64,
Merge = 128,
Lock = 256,
Rollback = 512,
SourceRename = 1024,
Property = 4096

Aquí hay un SQL de mala calidad para decodificarlos como una lista separada por espacios en su SELECT-

SELECT TOP 10 RTRIM(
    CASE WHEN Command & 1 = 1 THEN 'Add ' ELSE '' END
    + CASE WHEN Command & 2 = 2 THEN 'Edit ' ELSE '' END
    + CASE WHEN Command & 4 = 4 THEN 'Encoding ' ELSE '' END
    + CASE WHEN Command & 8 = 8 THEN 'Rename ' ELSE '' END
    + CASE WHEN Command & 16 = 16 THEN 'Delete ' ELSE '' END
    + CASE WHEN Command & 32 = 32 THEN 'Undelete ' ELSE '' END
    + CASE WHEN Command & 64 = 64 THEN 'Branch ' ELSE '' END
    + CASE WHEN Command & 128 = 128 THEN 'Merge ' ELSE '' END
    + CASE WHEN Command & 256 = 256 THEN 'Lock ' ELSE '' END
    + CASE WHEN Command & 512 = 512 THEN 'Rollback ' ELSE '' END
    + CASE WHEN Command & 1024 = 1024 THEN 'SourceRename ' ELSE '' END
    + CASE WHEN Command & 2048 = 2048 THEN 'UNKNOWN ' ELSE '' END
    + CASE WHEN Command & 4096 = 4096 THEN 'Property ' ELSE '' END
    + CASE WHEN Command & 8192 = 8192 THEN 'UNKNOWN ' ELSE '' END
    + CASE WHEN Command & 16384 = 16384 THEN 'UNKNOWN ' ELSE '' END
    ) 'Commands' 
FROM tbl_Version

Respuesta2

Son un indicador binario (por ejemplo, Fusionar, Recuperar es Fusionar+Recuperar => 128+32 = 160). Los valores base se almacenan en Microsoft.TeamFoundation.VersionControl.Client.ChangeType(documentos aquí) y el valor base de cada tipo de cambio se puede encontrar haciendo referencia al Microsoft.TeamFoundation.VersionControl.Clientensamblaje o reflejando las fuentes:

[Flags]
public enum ChangeType
{
    Add = 2,
    Branch = 128,
    Delete = 32,
    Edit = 4,
    Encoding = 8,
    Lock = 512,
    Merge = 256,
    None = 1,
    Property = 8192,
    Rename = 16,
    Rollback = 1024,
    SourceRename = 2048,
    Undelete = 64
}

PD: parece que su tabla original tiene varios errores.

información relacionada