2009-02-23 9 views
8

Pracuję nad projektem, w którym aktywnie używamy ciągu $Id$ wygenerowanego przez subversion, aby zapisać numer wersji w dokumentacji. Na przykład parsujemy ten ciąg:

$Id: filename 999 2009-02-23 22:51:29Z author $ 

i drukujemy "999" w tytule dokumentacji.

Ale co teraz, a następnie, po popełnić, informacje zostaną usunięte, a my zostajemy z zaledwie

$Id$ 

To oczywiście łamie rzeczy trochę. Czy ktoś wie, dlaczego tak się dzieje?


OK, oczywista odpowiedź była prawidłowa; svn:keywords nie zostały już ustawione dla tego pliku. Ale przysięgam, że kiedyś byli! Każdy pomysł, jak/dlaczego svn:keywords zostałaby wyczyszczona z pliku, gdyby nikt nie zauważył/nie zrobił czegoś celowo?

Odpowiedz

10

Właściwość svn: keywords może nie być prawidłowo ustawiona dla tego pliku. Trzeba ustawić go na (co najmniej) „id”:

svn ps svn:keywords 'Id' filename.txt 
+0

Dzięki, powinienem to sprawdzić; słowa kluczowe nie zostały ustawione dla tego pliku, jak podejrzewasz - ale przysięgam, że były! –

+0

Jeśli używasz klienta SVN z linii poleceń, możesz ustawić wartości domyślne dla tych rzeczy w pliku ~/.subversion/config. Że _może_ zastosować także do TortoiseSVN, ale nie cytuj mnie na ten temat. –

2

słowa kluczowe są rozszerzane na kasie tylko wtedy, gdy „svn: słowa kluczowe” własność jest zdefiniowana. Podczas korzystania z narzędzi do przeglądania repozytoriów, takich jak ViewSVN, nie należy ich rozszerzać, tj. są wyświetlane jako $ Id $.

+0

Więc jeśli "straciłem" słowa kluczowe SVN (słowa kluczowe są ustawione, ale nie zostały rozwinięte), czy istnieje sposób, w jaki mogę wymusić "kasę", która je rozszerza? –

2

Wybrana odpowiedź jest prawidłowa. Możesz dodatkowo przyjrzeć się ustawianiu automatycznych rekwizytów, aby automatycznie włączyć właściwość słowa kluczowego. Zobacz http://svnbook.red-bean.com/en/1.1/ch07s02.html#svn-ch-7-sect-2.4

Kiedy zrobiłeś, że można od czasu do czasu uruchomienia svn_apply_autoprops.py z http://subversion.tigris.org/tools_contrib.html

svn_apply_autoprops.py sprawdzi ustawienia autoprops i przejść przez repozytorium ustawienie to wszystko.

0

Okay, oczywista odpowiedź brzmiała: poprawna; svn: słowa kluczowe nie zostały ustawione dla tego pliku więcej niż . Ale przysięgam, że były kiedyś! Każdy pomysł jak/dlaczego svn: słowa kluczowe zostałyby wyczyszczone z pliku bez nikogo zauważając/robiąc cokolwiek na temat celu ?

Pierwszym powodem mogę myśleć byłoby: Jeśli plik został svn dodanej, a następnie przeniósł/przemianowany przed pierwszym popełnić właściwości auto nie zostały zastosowane.

Błąd, który powoduje, że plik traci swoje właściwości w tym przypadku, zostanie rozwiązany w Subversion 1.5.6 i 1.6.0.

6

Upewnij się, że twój plik jest w UTF-8, a NIE w Unicode. Unicode nie jest rozwijany, ponieważ SVN uważa, że ​​to nie są pliki tekstowe ... Użyłem Notatnika Zapisz jako UTF-8, aby rozwiązać problem.

+2

Spędziłem 6 godzin dzisiaj próbując dowiedzieć się, dlaczego istniejący plik tekstowy w SVN nie może uzyskać svn: rozszerzenie słów kluczowych działa. Kodowanie pliku tekstowego było problemem. Uratowałeś mnie przed szaleństwem! – tyriker

Powiązane problemy