Team Foundation-Versionskontrollbefehle

Team Foundation-Versionskontrollbefehle

Weiß jemand, ob die folgenden Befehle detailliert aufgeführt oder in irgendwelchen Tabellen oder Konfigurationsdateien aufgeführt sind?

Tabelle: tbl_Version Feld: Befehl

  • Listenpunkt
  • Bearbeiten = 2
  • Typ = 4
  • Ordner hinzufügen = 5
  • Datei hinzufügen = 7
  • Umbenennen = 8
  • Umbenennen, Bearbeiten = 10
  • Löschen = 16
  • Löschen, Umbenennen = 24
  • Wiederherstellen = 32
  • Wiederherstellen, Bearbeiten = 34
  • Zweig = 68
  • Verzweigung, löschen = 84
  • Zusammenführen = 128
  • Zusammenführen, Bearbeiten = 130
  • Zusammenführen, Eingeben, Bearbeiten = 134
  • Zusammenführen, umbenennen, bearbeiten = 138
  • Zusammenführen, Löschen = 144
  • Zusammenführen, löschen, umbenennen = 152
  • Zusammenführen, Wiederherstellen = 160
  • Zusammenführen, Wiederherstellen, Bearbeiten = 162
  • Zusammenführen, Verzweigung = 196
  • Zusammenführen, Verzweigen, Bearbeiten = 198

Antwort1

Falls jemand anderes versucht, eine Abfrage gegen tbl_Version (TFS 2017 Update3) durchzuführen, die Enumerationsbitsgezeigt von Jessesollte um eine Stelle in der Datenbank verschoben werden. Ich bin mir nicht sicher, warum die ChangeType-Aufzählung so eingerichtet werden sollte, wie Jesse es beschreibt, da dies gegen.NET-Designrichtlinie CA1008und gesunden Menschenverstand, indem anscheinend 'None' = 1 statt 0 gesetzt wird. Dies machtRick Webs Werteziemlich genau richtig. Die Bitflags der Spalte „Befehl“ in der Datenbank lauten daher:

(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

Hier ist ein bisschen beschissenes SQL, um sie als eine durch Leerzeichen getrennte Liste in Ihrem SELECT- zu dekodieren.

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

Antwort2

Es handelt sich um binäre Flags (z. B. Zusammenführen, Wiederherstellen ist Zusammenführen+Wiederherstellen => 128+32 = 160). Die Basiswerte werden in Microsoft.TeamFoundation.VersionControl.Client.ChangeType(Dokumente hier) und der Basiswert jedes Änderungstyps kann entweder durch Referenzieren der Microsoft.TeamFoundation.VersionControl.ClientAssembly oder durch Reflektieren der Quellen gefunden werden:

[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: Es sieht so aus, als ob Ihre Originaltabelle zahlreiche Fehler enthält.

verwandte Informationen