{"id":165,"date":"2011-02-06T18:21:43","date_gmt":"2011-02-06T17:21:43","guid":{"rendered":"http:\/\/blog.fafara.net\/?p=165"},"modified":"2014-10-09T19:37:51","modified_gmt":"2014-10-09T18:37:51","slug":"svn-synchronizacja-i-export","status":"publish","type":"post","link":"http:\/\/blog.fafara.net\/index.php\/2011\/02\/06\/svn-synchronizacja-i-export\/","title":{"rendered":"SVN synchronizacja i export"},"content":{"rendered":"<p>System\u00f3w kontroli wersji jest dost\u0119pnych na rynku wiele i nie b\u0119d\u0119 si\u0119 stara\u0142 nikogo przekona\u0107 do tego czy innego rozwi\u0105zania. Ka\u017cdy system ma swoje wady i zalety, a w wi\u0119kszo\u015bci przypadk\u00f3w wybieramy to co nam najbardziej odpowiada, albo po prostu jest to kwestia przyzwyczajenia. Osobi\u015bcie od dawna ju\u017c korzystam z <a title=\"Subversion\" href=\"http:\/\/subversion.apache.org\/\" target=\"_blank\">Subversion<\/a> czyli w skr\u00f3cie poczciwego SVN&#8217;a i o nim chcia\u0142em paroma przemy\u015bleniami si\u0119 podzieli\u0107.<\/p>\n<p>Tak jak ju\u017c wspomnia\u0142em ka\u017cdy system ma swoje wady i zalety. Mo\u017ce nie tyle o wadach co pewnych brakach chcia\u0142em, dla potomnych (albo raczej w\u0142asnej sklerozy), napisa\u0107. W codziennym u\u017cyciu najbardziej doskwiera mi brak dw\u00f3ch funkcji:<br \/>\n&#8211; automatycznego dodawania si\u0119 i kasowania plik\u00f3w skasowanych\/dodanych lokalnie do repozytorium<br \/>\n&#8211; mo\u017cliwo\u015bci wykonania eksportu tylko tych plik\u00f3w kt\u00f3re zosta\u0142y zmienione pomi\u0119dzy jakimi\u015b rewizjami (najcz\u0119\u015bciej pomi\u0119dzy jak\u0105\u015b rewizj\u0105 a najnowsz\u0105)<\/p>\n<p>W tym celu napisali\u015bmy wsp\u00f3lnie z <a title=\"Marcin Laber\" href=\"http:\/\/marcin.laber.pl\" target=\"_blank\">Marcinem<\/a> dwa skrypty, kt\u00f3re ca\u0142\u0105 t\u0105 magi\u0119 wykonuj\u0105 za nas:<\/p>\n<p>&#8211; <a title=\"svn sync\" href=\"http:\/\/blog.fafara.net\/wp-content\/uploads\/2011\/02\/svn-sync.zip\" target=\"_blank\">svn-sync<\/a> (autorstwa Marcina)<br \/>\n&#8211; <a title=\"svn changes\" href=\"http:\/\/blog.fafara.net\/wp-content\/uploads\/2011\/02\/svn-changes.zip\" target=\"_blank\">svn-changes<\/a> (moje dzie\u0142o)<\/p>\n<p>svn-sync por\u00f3wnuje struktur\u0119 plik\u00f3w w katalogu roboczym i w repozytorium, po czym automatycznie dodaje brakuj\u0105ce (nowe) pliki do repozytorium i usuwa te kt\u00f3re zosta\u0142y lokalnie skasowane. Wywo\u0142uje si\u0119 po prostu:<\/p>\n<p><code>svn-sync<\/code> &#8211; w katalogu roboczym, po czym mo\u017cna spokojnie &#8222;commitowa\u0107&#8221; swoje zmiany<\/p>\n<p>svn-changes wykonuje svn diff -r REV:REV &#8211;summary i na podstawie listy zmian generuje odpowiedni export w katalogu roboczym, wywo\u0142anie:<\/p>\n<p><code>svn-changes -r x:y<\/code> &#8211; gdzie x i y to numery rewizji, albo odpowiednie sta\u0142e np. HEAD<\/p>\n<p>Pliki najlepiej umie\u015bci\u0107 sobie w katalogu \/usr\/bin i nada\u0107 im prawo wykonywania (chmod +x).<\/p>\n","protected":false},"excerpt":{"rendered":"<p>System\u00f3w kontroli wersji jest dost\u0119pnych na rynku wiele i nie b\u0119d\u0119 si\u0119 stara\u0142 nikogo przekona\u0107 do tego czy innego rozwi\u0105zania. Ka\u017cdy system ma swoje wady i zalety, a w wi\u0119kszo\u015bci przypadk\u00f3w wybieramy to co nam najbardziej odpowiada, albo po prostu jest to kwestia przyzwyczajenia. Osobi\u015bcie od dawna ju\u017c korzystam z Subversion czyli w skr\u00f3cie poczciwego [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[19,39,36],"tags":[47,38,37,46],"class_list":["post-165","post","type-post","status-publish","format-standard","hentry","category-linux","category-osx","category-programowanie","tag-export-zmian","tag-subversion","tag-svn","tag-synchronizacja-plikow"],"_links":{"self":[{"href":"http:\/\/blog.fafara.net\/index.php\/wp-json\/wp\/v2\/posts\/165","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/blog.fafara.net\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/blog.fafara.net\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/blog.fafara.net\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/blog.fafara.net\/index.php\/wp-json\/wp\/v2\/comments?post=165"}],"version-history":[{"count":10,"href":"http:\/\/blog.fafara.net\/index.php\/wp-json\/wp\/v2\/posts\/165\/revisions"}],"predecessor-version":[{"id":213,"href":"http:\/\/blog.fafara.net\/index.php\/wp-json\/wp\/v2\/posts\/165\/revisions\/213"}],"wp:attachment":[{"href":"http:\/\/blog.fafara.net\/index.php\/wp-json\/wp\/v2\/media?parent=165"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/blog.fafara.net\/index.php\/wp-json\/wp\/v2\/categories?post=165"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/blog.fafara.net\/index.php\/wp-json\/wp\/v2\/tags?post=165"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}