Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> SVN wyciąganie plików o określonej rewizji
strife
post
Post #1





Grupa: Przyjaciele php.pl
Postów: 2 605
Pomógł: 96
Dołączył: 22.10.2004
Skąd: UK

Ostrzeżenie: (0%)
-----


Witam,

Jak w temacie, jak wyciągnać z repozytorium, tylko te pliki, które są powiedzmy > r20. Tak aby wyciągnać tylko, te pliki większe od tego numeru rewizji, wszystkie inne chciałbym, aby zostały pominięte. Krótko mówiąc pracując na jakimś skrypcie chce stworzyć do niego patch'a, ale nie mam za bardzo pojęcia jak to zrobić.

Wiem, że istnieje coś takiego w svn jak patch, tyle że nie wiem jak się tego używa i do czego to służy. Szukałem trochę na google, ale nic konkretnego na ten temat nie znalazłem. Być może idę w złym kierunku, dlatego też prosiłbym o małe nakierowanie.

Będę wdzięczny za pomoc (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Również chętnie posłucham innych rozwiązań, jak Wy tworzycie patch'e, łatki do gotowych skryptów?

Pozdrawiam serdecznie.
Go to the top of the page
+Quote Post
Jabol
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 1 467
Pomógł: 13
Dołączył: 22.02.2003

Ostrzeżenie: (0%)
-----


Pacze robie do katalogów a nie do plików i wygląda to tak (przykładowo):

diff -INNE_OPCJE -ruwbEN devilspie-0.20.2-org/src/ devilspie-0.20.2/src/ > applepie.patch
a potem wchodzę do katalogu gdzie jest katalog devilspie-0.20.2 i wpisuje
patch -OPCJE < applepie.patch

Wydaje mi się, że svn także czyta patche w tym formacie (diff/patch to standardowy zestawa do łatkowania).

Ten post edytował Jabol 16.01.2008, 08:39:32
Go to the top of the page
+Quote Post
strife
post
Post #3





Grupa: Przyjaciele php.pl
Postów: 2 605
Pomógł: 96
Dołączył: 22.10.2004
Skąd: UK

Ostrzeżenie: (0%)
-----


No dobrze, dziękuje za odpowiedź, ale mam jeszcze jedno małe pytanie, mianowicie Twój sposób wymaga dostępu do svn na serwerze prod. prawda? A ja chciałbym stworzyć sobie taką 'łatkę', którą będę mógł bez problemu wgrać na FTP bez patrzenia ręcznie, który plik jest większy od danej rewizji. Krótko mówiąc chce uzyskać, svn export, ale aby wydobyć tylko te pliki i katalogi, które są powyżej podanej rewizji. Jak wpiszę svn export -r 20 to uzyskam, również poprzednie pliki, które były np. z initial import'u (r1), a chce uzyskać tylko te, które są powyżej > r20. Mam nadzieję, że teraz dosyć jasno to napisałem.

Macie jakiś pomysł? Bo chyba nie będę musiał samemu tego pisać (IMG:http://forum.php.pl/style_emoticons/default/snitch.gif)

Pozdrawiam serdecznie.
Go to the top of the page
+Quote Post
Cezar708
post
Post #4





Grupa: Zarejestrowani
Postów: 1 116
Pomógł: 119
Dołączył: 10.05.2005
Skąd: Poznań

Ostrzeżenie: (0%)
-----


ja proponuję:

jeśli od dwudziestej rewizji to:

Kod
$ svn diff -r 20:HEAD > rev20.patch


w pliku rev20.patch masz patcha, którego po prostu wykonujesz za pomocą shellowego patch na serwerze produkcyjnym

Ten post edytował Cezar708 16.01.2008, 16:39:23
Go to the top of the page
+Quote Post
strife
post
Post #5





Grupa: Przyjaciele php.pl
Postów: 2 605
Pomógł: 96
Dołączył: 22.10.2004
Skąd: UK

Ostrzeżenie: (0%)
-----


Cytat(Cezar708 @ 16.01.2008, 16:37:16 ) *
ja proponuję:

jeśli od dwudziestej rewizji to:

Kod
$ svn diff -r 20:HEAD > rev20.patch


w pliku rev20.patch masz patcha, którego po prostu wykonujesz za pomocą shellowego patch na serwerze produkcyjnym

Nie mam dostępu do svn na serwerze prod. Tylko FTP.

Inaczej wam to zobrazuję, mam sobie projekt, który zawiera 10,000 plików, w ciągu kilku miesięcy robię na nim poprawki, edytuje ok. 1400 plików. Oczywiście nie pamiętam co edytowałem, i chce exportować tylko te pliki, które są powyżej np. r1 (czyli powyżej Initial Importu). Chce uniknąć wgrywania na serwer wszystkich 10,000 plików, a wgrać tylko te, które edytowałem, jedynie te 1400. Mam nadzieję, że teraz jest już jasno (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif)

Pozdrawiam serdecznie, i jeśli ktoś ma jakieś pomysły to śmiało. Może ja źle myślę, i rozwiązanie jest gdzie indziej.
Go to the top of the page
+Quote Post
DeyV
post
Post #6





Grupa: Zarząd
Postów: 2 277
Pomógł: 6
Dołączył: 27.12.2002
Skąd: Wołów/Wrocław




Niestety - gdy szukałem jakiegoś narzędzia do tego, z roku temu, to mimo intensywnych poszukiwań nic nie udało mi się znaleźć.

W sumie wszystko sprowadziło się do FTP i wrzucania plików modyfikowanych w ciągu określonego czasu wstecz (niektóre klienty to potrafią) lub monitorowani modyfikacji plików w określonym folderze "na żywo".

Z tego co wiem, jest jakiś skrypt, który potrafi wyciągnąć te zmiany z SVN, ale nie udało mi się znaleźć chodzącej wersji, którą dałbym radę uruchomić (głównie z braku czasu...)
(np. http://svn.haxx.se/dev/archive-2007-08/0318.shtml lub svn2web )
Go to the top of the page
+Quote Post
strife
post
Post #7





Grupa: Przyjaciele php.pl
Postów: 2 605
Pomógł: 96
Dołączył: 22.10.2004
Skąd: UK

Ostrzeżenie: (0%)
-----


Hej,

Znalazłem rozwiązanie problemu, lekko przerobiłem skrypt znaleziony w sieci i stworzyłem swoje svn2web, - to narzędzie pozwoli nam wyciągnąć pliki o określonej rewizji, przykład użycia:

Kod
svn2web 120:HEAD https://localhost/svn/project /home/user/temp/patch


Podajemy zakresy rewizji, w moim przypadku od 120 do aktualnej (HEAD), następnie ścieżkę do repo i gdzie mają te pliki wylądować. Jest to bardzo pomocne narzędzie ponieważ, wiedząc że na serwerze FTP mamy rewizję 100, natomiast po poprawkach mamy 120 - jesteśmy w stanie zaktualizować tylko te pliki, które się zmieniły bez nadpisywania innych (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Link: http://dev.strife.pl/svn2web.tar.gz

Pozdrawiam.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 16.09.2025 - 04:34