Visual Studio/TFS uppdatera kod med version vid incheckning

Permalänk
Medlem

Visual Studio/TFS uppdatera kod med version vid incheckning

Hej!

Arbetar i Visual Studio och checkar in kod till TFS.
Ibland får vi fråga om exakt vilken version av olika kodbitar som ligger i olika miljöer. Det är inte så enkelt att hålla koll på allt när man är 10+ utvecklare som konstant jobbar med både små och stora ändringar. Vissa saker ta 10 minuter och andra kan ta över en månad.
Min förhoppning var att kunna ha en variabel som uppdateras varje gång man checkar in med någon form av version eller changeset.

Har sökt runt en hel del efter information om detta men inte hittat något än. Förstår att changeset kan vara svårt eftersom det skapas i incheckningen.

Har ni tips eller idéer?

Permalänk
Medlem

Lite osäker på vilken strategi ni jobbar med och exakt vad det är du vill uppnå?

Om ni kör release isolation så bör det ju egentligen bara räcka med att ni håller koll på vilken branch och changeset ni byggt och driftsatt till en viss miljö, förslagsvis sätter man en Label med release/version på det changeset man driftsätter om man enkelt vill kunna backa till en viss version i en branch utan att hålla koll på changeset nummer.

Se:
https://docs.microsoft.com/en-us/vsts/tfvc/branching-strategi...

Sedan vet jag inte hur det funkar i TFS då vi kör online i VSTS (cloud), men där kan man i alla fall också lägga till policy så det krävs att man anger ett Work Item och en Kommentar när man checkar in, då får man alla changesets som hör till en viss Work Item samlade rätt smidigt.

Permalänk
Medlem

Idé, ej testat själv:

Det går att få ut changeset för sitt workspace med kommandoraden. Det bör gå att göra i pre-build-event. Skriv changeset-nummret till en fil och läs filen runtime (se till att den kommer med i bygget på ett eller annat sätt).

Skrivet av Pake:

Förstår att changeset kan vara svårt eftersom det skapas i incheckningen.

Ja, det kräver förstås att man har checkat in innan bygger för deploy. Använder ni byggserver? I så fall är ju kod som byggs för deploy garanterat incheckad.

Gjort själv, runt 2010:
Sätt AssemblyVersion till "1.0.*" i lämplig dll (i AssemblyInfo.cs). Läs ut versionen runtime och tolka Build som dagar sedan 2000-01-01 och Revision som sekunder sedan midnatt. Då får du byggtiden som du kan skriva ut. Om ni använder byggserver så går det antagligen att (manuellt) lista ut kodversionen som byggdes vid den tiden. Inte riktigt vad du ville, men kanske en bra nog workaround?