Alguém sabe se os seguintes comandos estão detalhados ou listados em alguma tabela ou arquivo de configuração?
Tabela: tbl_Version Campo: Comando
- Item da lista
- Editar = 2
- Tipo = 4
- Adicionar pasta = 5
- Adicionar arquivo = 7
- Renomear = 8
- Renomear,editar = 10
- Excluir = 16
- Excluir, renomear = 24
- Recuperar = 32
- Recuperar,editar = 34
- Filial = 68
- Filial, excluir = 84
- Mesclar = 128
- Mesclar, editar = 130
- Mesclar, digitar, editar = 134
- Mesclar, renomear, editar = 138
- Mesclar, excluir = 144
- Mesclar, excluir, renomear = 152
- Mesclar, cancelar exclusão = 160
- Mesclar, cancelar exclusão, editar = 162
- Mesclar, ramificar = 196
- Mesclar, ramificar, editar = 198
Responder1
Caso alguém esteja tentando consultar tbl_Version (TFS 2017 Update3), os bits enummostrado por Jessédeve ser deslocado um lugar no banco de dados. Não sei por que o enum ChangeType seria configurado como Jesse descreve, pois violariaDiretriz de design .NET CA1008e bom senso, aparentemente definindo 'None' = 1 em vez de 0. Isso faz com queValores de Rick Webmuito perto de corrigir. Os sinalizadores de bit da coluna 'Command' no banco de dados são, portanto:
(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
Aqui estão alguns SQL ruins para decodificá-los como uma lista separada por espaços em seu 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
Responder2
Eles são um sinalizador binário (por exemplo, Merge, Undelete é Merge+Undelete => 128+32 = 160) os valores base são armazenados no Microsoft.TeamFoundation.VersionControl.Client.ChangeType
(documentos aqui) e o valor base de cada tipo de mudança pode ser encontrado referenciando a Microsoft.TeamFoundation.VersionControl.Client
montagem ou refletindo as fontes:
[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
}
PS: parece que sua tabela original contém vários erros.