Team-Foundation-Server

Team Foundation 版本控制命令

  • November 15, 2020

有誰知道以下命令是否詳細或列在任何表或配置文件中?

表:tbl_Version 欄位:命令

  • 項目清單
  • 編輯 = 2
  • 類型 = 4
  • 添加文件夾 = 5
  • 添加文件 = 7
  • 重命名 = 8
  • 重命名,編輯 = 10
  • 刪除 = 16
  • 刪除,重命名 = 24
  • 取消刪除 = 32
  • 取消刪除,編輯 = 34
  • 分支 = 68
  • 分支,刪除 = 84
  • 合併 = 128
  • 合併,編輯 = 130
  • 合併、類型、編輯 = 134
  • 合併、重命名、編輯 = 138
  • 合併、刪除 = 144
  • 合併、刪除、重命名 = 152
  • 合併,取消刪除 = 160
  • 合併、取消刪除、編輯 = 162
  • 合併,分支 = 196
  • 合併、分支、編輯 = 198

如果其他人嘗試查詢 tbl_Version (TFS 2017 Update3),則Jesse 顯示的列舉位應在數據庫中移動一個位置。我不確定為什麼會像 Jesse 所描述的那樣設置 ChangeType 列舉,因為它顯然會設置 ‘None’=1 而不是 0,從而違反.NET 設計指南 CA1008和常識。這使得Rick Web 的值非常接近正確。因此,DB 中“命令”col 的位標誌為:

(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

這是一些糟糕的 SQL,用於將它們解碼為 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

引用自:https://serverfault.com/questions/898557