2009-03-14 16 views
6

Moja strona internetowa to sprawdzona wersja repozytorium SVN. Mam na myśli foldery .svn umieszczone na serwerze sieciowym. Nie używam publikowania w Internecie.Jak dynamicznie wyświetlać wersję SVN na stronie internetowej?

I chcę wyświetlić aktualną wersję projektu (całą witrynę) w stopce. Jak mogę to zrobić?

Jeśli korzystałem z publikowania w Internecie, mogłem określić wersję na build/publish i zapisać ją jako statyczny html.

Jak uzyskać dynamiczną aktualizację? Czytaj bezpośrednio pliki .svn? Czy są lepsze sposoby?

Widziałem inne takie pytania, ale odpowiedź była przy użyciu SubWCRev.exe, nie jest to niestety do przyjęcia.

Edytuj:Tarn dał ciekawy pomysł na temat haków SVN przy zatwierdzaniu. Jakieś inne pomysły?

Odpowiedz

2

Możesz pisać hooki dla SVN. Możesz napisać hak, aby zaktualizować plik z bieżącą kompilacją w ramach procesu realizacji transakcji. Następnie możesz odczytać, zapisać w pamięci podręcznej i wyświetlić numer kompilacji na swojej stronie.

+0

Dzięki za pomysł! Czy możesz podać trochę więcej informacji na temat pisania haków SVN? – abatishchev

+1

Phil Haack napisał na blogu o pisaniu haseł SVN w .NET przy użyciu CaptainHook http://haacked.com/archive/2006/07/31/CaptainHookIsOnSourceForge.aspx – tarn

0

Jedyne, co mogę wymyślić, to użyć plików binarnych svn CLI i wywołać je ze strony. W ten sposób możesz usunąć resztę i pobrać numer wersji. Szczerze mówiąc, jest to dość brzydkie rozwiązanie.

+0

Czym są pliki binarne svn CLI? – abatishchev

+0

Pliki binarne SVN = polecenia używane w linii poleceń, takie jak "aktualizacja svn" i podobne. Wpisz "svn help" (bez cudzysłowów) w wierszu poleceń, aby uzyskać pomocną listę poleceń, których można użyć. –

8

użyć keyword substitution. włącz zastępowanie plików, które mają wyświetlać informacje o wersji, i umieść tam słowo kluczowe, na przykład $Revision: 144 $.

nuta że

$ Rev $ rozszerza pokazać ostatnią rewizji, w którym plik zmieniony, nie ostatnią wersję, do którego został aktualizowane

(patrz link powyżej) . jeśli chcesz wyświetlić numer rewizji globalnego repozytorium, lepiej użyj svnversion.

również, zobacz Powiązane.

+0

Zrobiłem to w zmiennej aplikacji, działało naprawdę dobrze. – ccook

+0

Zostanie wyświetlona wersja, w której * ten konkretny plik * ostatnio się zmienił (N). To nie jest to samo, co wersja, gdy część repozytorium zawierająca ostatnio zmienioną stronę internetową (M). N <= M. – bendin

+0

Nie mogę uwierzyć, że nie wiedziałem o tym dzięki za wskazówkę –

1

Jeśli chcesz wyświetlić najnowszy numer rewizji całego/repozytorium lub oddziału, podstawienie słów kluczowych nie pomoże, myślę, że lepszym rozwiązaniem byłoby użycie oprogramowania do zarządzania buildami/ciągłej integracji, takiego jak CruiseControl.NET lub TeamCity z dobrym skompiluj skrypt.

Duplikat:

+1

to * jest * 645945/how-to-display-svn-wersja-na-stronie-dynamicznie –

1

Ten poprzednie pytanie na SO ma jakąś dyskusję, która może być przydatna: Always Commit the same file with SVN.

Zawsze robiłem to uruchamiając skrypt, który użyłby sed do zamiany komentarza na bieżący znacznik czasu w moim pliku $ Rev $. W ten sposób zawartość pliku zmieni się, a Subversion go zatwierdzi.Nieco ręczne, ale można napisać skrypt, aby najpierw to zrobić, a następnie wykonaj rzeczywistą komendę svn commit.

Powiązane problemy