Mam kopię roboczą SVN, w której wykonałem następujące polecenie
znajdź ./source * -type f -exec sed "s / @ wersja 0.5.3/@version 0.5.4 /" -i {} \;
wszystkie pliki są aktualizowane, ale svn nie rozpoznaje żadnych zmian podczas wykonywania jednego z nich
status svn ./source
svn diff ./source
svn commit ./source
Próbowałem też napisać skrypt, który powinien sprawdzić $? z sed i jest w porządku, „dotknij” pliku, aby zaktualizować, to mdate, ale wydaje się, że sed zawsze zwraca 0 -. -
co mogę teraz zrobić? -.-
-I
opcję. Być może wybrałeś tę-i
opcję. Czy to naprawdę polecenie, które wykonałeś?Odpowiedzi:
Problem polega na tym, że używasz
find
:Dopasuje wszystkie pliki w strukturze katalogów, w tym te znajdujące się w
.svn
katalogach. Pliki w.svn
to pliki używane do wykonaniasvn diff
przeciwko. Zasadniczo zmodyfikowałeś wszystkie kopie plików w drzewie, a nie tylko kopie robocze.Wypróbuj tę składnię:
źródło
*/.svn/text-base/
są kopiami zapasowymi plików na serwerze subversion. NIE Modyfikuj ich.