Subversion revisions nummer

Tags:    programmering

Hej

Jeg har en subversion server til at hoste mine source filer. Jeg vil gerne have Subversion til ved alle successfulde commits at opdater en h-fil ( filerne er til c++ projekter).

Det eneste jeg har behov for er at en define bliver sat lig med revision nummer for commit'en.

Kan det lade sig gøre?

/Jens



5 svar postet i denne tråd vises herunder
1 indlæg har modtaget i alt 3 karma
Sorter efter stemmer Sorter efter dato
%



Indlæg senest redigeret d. 10.08.2011 17:09 af Bruger #13771
Hvis du skriver $Rev$ i dine filer inden commit, vil svn indsætte revisions nummeret.

Så du burde kunne

#define MY_VERSION = "$Rev$"

Der er også en række andre du kan bruge i stedet for Rev, så vidt jeg husker kan du også bruge $Date$



Hvis du skriver $Rev$ i dine filer inden commit, vil svn indsætte revisions nummeret.

Så du burde kunne

#define MY_VERSION = "$Rev$"

Der er også en række andre du kan bruge i stedet for Rev, så vidt jeg husker kan du også bruge $Date$


Men det kræver at man ændrer filen for hvert commit.
Jeg plejer at have det som en del af mit build system at den tjekker hvilken revision, jeg arbejder på og indsætter det ét eller andet sted. Jeg submitter så ikke den ændring.



Subversion har en række hooks som du kan benytte. Hvordan du ændrer data i en fil ved jeg desværre ikke lige, men det må kunne lade sig gøre. Jeg har før brugt hooksne til at tvinge et checkout i en filmappe når jeg commitede fra en anden host, men jeg er overbevist om at du også kan ændre i filer. Jeg vil anbefale at du kigger i manualen under hook systemet, det kan være du kan finde noget.

Edit:
Nu kom jeg selvfølgelig i tanke om at Subversion jo er en client-server baseret ting. Jeg ved ikke om de betyder noget, men det kan være at den af den grund ikke vil lade dig foretage ændringer af commitet på serverens side.



Indlæg senest redigeret d. 14.06.2008 23:14 af Bruger #2330
Subversion har en række hooks som du kan benytte. Hvordan du ændrer data i en fil ved jeg desværre ikke lige, men det må kunne lade sig gøre. Jeg har før brugt hooksne til at tvinge et checkout i en filmappe når jeg commitede fra en anden host, men jeg er overbevist om at du også kan ændre i filer. Jeg vil anbefale at du kigger i manualen under hook systemet, det kan være du kan finde noget.

Edit:
Nu kom jeg selvfølgelig i tanke om at Subversion jo er en client-server baseret ting. Jeg ved ikke om de betyder noget, men det kan være at den af den grund ikke vil lade dig foretage ændringer af commitet på serverens side.


Hooks virker på repository basis, så det vil være ligemeget, om det er et lokalt repository eller client/server baseret. Men jeg tvivler stærkt på, at du kan ændre en fil og få den med i det oprindelige commit. Du vil kunne lave et checkout og så ændre en fil og så committe igen, men så bliver det altså også et (godt nok automatisk) ekstra og separat commit, hvor revisions nummeret i filen bliver ændret.
Det er selvfølgelig en smagssag, om det er brugbart, men personligt foretrækker jeg at lade min Makefil finde nuværende revision og lægge dette i en 'config.h' eller sådan noget, som så ikke committes.



t