{"id":466,"date":"2010-01-15T12:41:10","date_gmt":"2010-01-15T09:41:10","guid":{"rendered":"http:\/\/seriyps.ru\/blog\/?p=466"},"modified":"2010-01-20T01:19:04","modified_gmt":"2010-01-19T22:19:04","slug":"import-git-repozitoriya-v-pustoj-svn","status":"publish","type":"post","link":"https:\/\/seriyps.com\/blog\/2010\/01\/15\/import-git-repozitoriya-v-pustoj-svn\/","title":{"rendered":"\u0418\u043c\u043f\u043e\u0440\u0442 GIT \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u044f \u0432 \u043f\u0443\u0441\u0442\u043e\u0439 SVN"},"content":{"rendered":"<p>\u0412 \u0441\u0442\u0430\u0442\u044c\u0435 \u043a\u0440\u0430\u0442\u043a\u043e \u043e\u043f\u0438\u0441\u0430\u043d\u043e \u043a\u0430\u043a \u0438\u043c\u043f\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0439 GIT \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0439 \u0432 \u0447\u0438\u0441\u0442\u0435\u043d\u044c\u043a\u0438\u0439 SVN \u0441\u043e \u0432\u0441\u0435\u0439 \u0438\u0441\u0442\u043e\u0440\u0438\u0435\u0439 \u043a\u043e\u043c\u043c\u0438\u0442\u043e\u0432 \u0438 \u043f\u0440.<\/p>\n<p>\u041f\u0435\u0440\u0432\u044b\u0439 \u0432\u043e\u043f\u0440\u043e\u0441, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043d\u0430\u043f\u0440\u0430\u0448\u0438\u0432\u0430\u0435\u0442\u0441\u044f &#8211; \u0417\u0410\u0427\u0415\u041c?<\/p>\n<p>\u041e\u0442\u0432\u0435\u0447\u0430\u044e &#8211; \u043f\u0440\u043e\u0441\u0442\u043e \u043f\u0440\u043e\u0435\u043a\u0442 \u0440\u0430\u0437\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u043b\u0441\u044f \u0432 \u043c\u043e\u0435\u043c \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e\u043c \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0438, \u0430 \u043f\u043e\u0441\u043b\u0435 \u0437\u0430\u043a\u0430\u0437\u0447\u0438\u043a \u043f\u043e\u043f\u0440\u043e\u0441\u0438\u043b \u0440\u0430\u0437\u043c\u0435\u0441\u0442\u0438\u0442\u044c \u0435\u0433\u043e \u0432 SVN. \u041c\u043e\u0436\u043d\u043e, \u043a\u043e\u043d\u0435\u0447\u043d\u043e, \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u044d\u0442\u043e \u0432\u0441\u0435 \u043e\u0434\u043d\u0438\u043c \u0431\u043e\u043b\u044c\u0448\u0438\u043c Initial \u043a\u043e\u043c\u043c\u0438\u0442\u043e\u043c, \u043d\u043e \u0445\u043e\u0447\u0435\u0442\u0441\u044f \u0447\u0442\u043e\u0431 \u0438\u0441\u0442\u043e\u0440\u0438\u044f \u0442\u043e\u0436\u0435 \u0438\u043c\u043f\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u043b\u0430\u0441\u044c. <!--more-->\u0422\u0430\u043a \u0432\u043e\u0442, \u0434\u043e\u043f\u0443\u0441\u0442\u0438\u043c \u0438\u043c\u0435\u0435\u0442\u0441\u044f SVN \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0439 https:\/\/svn.example.com\/repos\/someproject\/ \u0441\u043e \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0439 \u0438\u0435\u0440\u0430\u0440\u0445\u0438\u0435\u0439<br \/>\nhttps:\/\/svn.example.com\/repos\/someproject\/<br \/>\n&#8212;-\/trunk<br \/>\n&#8212;-\/tags<br \/>\n&#8212;-\/branches<\/p>\n<p>\u0438 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u044b\u0439 git \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0439 ~\/workspace\/someproject\/ \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043d\u0430\u0445\u043e\u0434\u044f\u0442\u0441\u044f \u043f\u0430\u043f\u043e\u0447\u043a\u0438<\/p>\n<p>~\/workspace\/someproject\/<br \/>\n&#8212;-\/.git<br \/>\n&#8212;-\/lib<br \/>\n&#8212;-\/config<br \/>\n&#8212;-\/&#8230;..<\/p>\n<p>\u0418 \u043c\u044b \u0445\u043e\u0442\u0438\u043c \u0432 SVN \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443<\/p>\n<p>https:\/\/svn.example.com\/repos\/someproject\/<strong>trunk\/<\/strong><br \/>\n&#8212;-\/lib<br \/>\n&#8212;-\/config<br \/>\n&#8212;-\/&#8230;..<\/p>\n<p>\u0414\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 SVN \u0438\u0437 GIT \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c \u043f\u0430\u043a\u0435\u0442 git-svn<\/p>\n<p>[codesyntax lang=&#8221;bash&#8221;]sudo apt-get install git-svn[\/codesyntax]<\/p>\n<p>\u0415\u0441\u043b\u0438 \u0434\u0435\u043b\u0430\u0442\u044c \u043f\u043e \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0439 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438<br \/>\n[codesyntax lang=&#8221;bash&#8221;]cd ~\/workspace\/someproject\/<br \/>\ngit-svn clone https:\/\/svn.example.com\/repos\/someproject\/trunk\/ .<br \/>\ngit svn rebase<br \/>\ngit-svn dcommit[\/codesyntax]<\/p>\n<p>\u0422\u043e \u043f\u043e\u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043e\u0448\u0438\u0431\u043a\u0430<\/p>\n<blockquote><p><strong>Use of uninitialized value in concatenation (.) or string at \/usr\/bin\/git-svn line 411.<br \/>\nCommitting to  &#8230;<\/strong><br \/>\n<strong> Unable to determine upstream SVN information from HEAD history<\/strong><\/p><\/blockquote>\n<p>\u0414\u043b\u044f \u0438\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u044f, \u043f\u043e\u0441\u043b\u0435 \u044d\u0442\u043e\u0439 \u043f\u043e\u043f\u044b\u0442\u043a\u0438, \u0434\u0435\u043b\u0430\u0435\u043c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435:<br \/>\n\u0423\u0431\u0435\u0436\u0434\u0430\u0435\u043c\u0441\u044f, \u0447\u0442\u043e \u0432\u0435\u0440\u0441\u0438\u044f GIT \u043d\u0435 \u043d\u0438\u0436\u0435, \u0447\u0435\u043c 1.6.3<br \/>\n[codesyntax lang=&#8221;bash&#8221;]git &#8211;version[\/codesyntax]<br \/>\n\u0415\u0441\u043b\u0438 \u0442\u0430\u043a, \u0442\u043e \u043a\u043e\u043c\u0430\u043d\u0434\u0443\u0435\u043c [codesyntax lang=&#8221;bash&#8221;]git branch -a[\/codesyntax] \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0434\u043e\u043b\u0436\u0435\u043d \u0432\u044b\u0432\u0435\u0441\u0442\u0438 \u0447\u0442\u043e-\u0442\u043e \u043d\u0430\u043f\u043e\u0434\u043e\u0431\u0438\u0435<\/p>\n<blockquote><p>* master<br \/>\n  <strong>remotes\/git-svn<\/strong><\/p><\/blockquote>\n<p>\u041e\u0431\u0440\u0430\u0442\u0438\u043c \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u043d\u0430 \u0441\u0442\u0440\u043e\u043a\u0443 remotes\/git-svn (\u043c\u043e\u0436\u0435\u0442 \u043e\u0442\u043b\u0438\u0447\u0430\u0442\u044c\u0441\u044f)<\/p>\n<p>\u041a\u043e\u043c\u0430\u043d\u0434\u0443\u0435\u043c:<br \/>\n[codesyntax lang=&#8221;bash&#8221;]git rebase &#8211;onto <strong>remotes\/git-svn<\/strong> &#8211;root master[\/codesyntax]<\/p>\n<p>\u0418 \u0432\u0443\u0430\u043b\u044f:<br \/>\n[codesyntax lang=&#8221;bash&#8221;]git-svn dcommit[\/codesyntax]\u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442!! \u041a\u043e\u043c\u043c\u0438\u0442\u044b \u043f\u043e\u0448\u043b\u0438 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c\u0441\u044f \u0432 SVN.<\/p>\n<p>\u0415\u0441\u043b\u0438 \u0442\u0435\u043f\u0435\u0440\u044c \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c<br \/>\n[codesyntax lang=&#8221;bash&#8221;]git log[\/codesyntax] \u0422\u043e \u0432 \u043a\u0430\u0436\u0434\u043e\u043c \u043a\u043e\u043c\u043c\u0438\u0442\u0435 \u0431\u0443\u0434\u0435\u0442 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0441\u0442\u0440\u043e\u043a\u0430 \u0442\u0438\u043f\u0430 git-svn-id: https:\/\/svn.example.com\/repos\/someproject\/trunk@49 78ca4877-544d-4e5c-8d06-6abf935*****<\/p>\n<p>\u0415\u0449\u0435 \u0440\u0430\u0437, \u0432\u0441\u0435 \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u043f\u043e-\u043f\u043e\u0440\u044f\u0434\u043a\u0443:<br \/>\n[codesyntax lang=&#8221;bash&#8221;]cd ~\/workspace\/someproject\/ #\u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u043c \u0432 \u043f\u0430\u043f\u043a\u0443 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 (\u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u043f\u0430\u043f\u043a\u0430 .git)<br \/>\ngit-svn clone https:\/\/svn.example.com\/repos\/someproject\/trunk\/ . #&#8221;\u043a\u043e\u043f\u0438\u0440\u0443\u0435\u043c&#8221; SVN \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0439 (\u043d\u0430 \u0441\u0430\u043c. \u0434\u0435\u043b\u0435 \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0438\u0440\u0443\u0435\u0442\u0441\u044f GIT<br \/>\ngit branch -a #\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u0432\u0435\u0442\u043a\u0438 remotes\/blablabla<br \/>\ngit rebase &#8211;onto remotes\/git-svn &#8211;root master # remotes\/git-svn \u0431\u0435\u0440\u0435\u043c \u0438\u0437 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0439 \u043a\u043e\u043c\u0430\u043d\u0434\u044b<br \/>\ngit-svn dcommit # \u043a\u043e\u043f\u0438\u0440\u0443\u0435\u043c GIT \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0439 \u0432 SVN \u0441\u043e \u0432\u0441\u0435\u0439 \u0438\u0441\u0442\u043e\u0440\u0438\u0435\u0439 \u043a\u043e\u043c\u043c\u0438\u0442\u043e\u0432 \u0438 \u043f\u0440.<br \/>\n[\/codesyntax]<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u0412 \u0441\u0442\u0430\u0442\u044c\u0435 \u043a\u0440\u0430\u0442\u043a\u043e \u043e\u043f\u0438\u0441\u0430\u043d\u043e \u043a\u0430\u043a \u0438\u043c\u043f\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0439 GIT \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0439 \u0432 \u0447\u0438\u0441\u0442\u0435\u043d\u044c\u043a\u0438\u0439 SVN \u0441\u043e \u0432\u0441\u0435\u0439 \u0438\u0441\u0442\u043e\u0440\u0438\u0435\u0439 \u043a\u043e\u043c\u043c\u0438\u0442\u043e\u0432 \u0438 \u043f\u0440. \u041f\u0435\u0440\u0432\u044b\u0439 \u0432\u043e\u043f\u0440\u043e\u0441, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043d\u0430\u043f\u0440\u0430\u0448\u0438\u0432\u0430\u0435\u0442\u0441\u044f &#8211; \u0417\u0410\u0427\u0415\u041c? \u041e\u0442\u0432\u0435\u0447\u0430\u044e &#8211; \u043f\u0440\u043e\u0441\u0442\u043e \u043f\u0440\u043e\u0435\u043a\u0442 \u0440\u0430\u0437\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u043b\u0441\u044f \u0432 \u043c\u043e\u0435\u043c \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e\u043c \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0438, \u0430 \u043f\u043e\u0441\u043b\u0435 \u0437\u0430\u043a\u0430\u0437\u0447\u0438\u043a \u043f\u043e\u043f\u0440\u043e\u0441\u0438\u043b \u0440\u0430\u0437\u043c\u0435\u0441\u0442\u0438\u0442\u044c \u0435\u0433\u043e \u0432 SVN. \u041c\u043e\u0436\u043d\u043e, \u043a\u043e\u043d\u0435\u0447\u043d\u043e, \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u044d\u0442\u043e \u0432\u0441\u0435 \u043e\u0434\u043d\u0438\u043c \u0431\u043e\u043b\u044c\u0448\u0438\u043c Initial \u043a\u043e\u043c\u043c\u0438\u0442\u043e\u043c, \u043d\u043e \u0445\u043e\u0447\u0435\u0442\u0441\u044f \u0447\u0442\u043e\u0431 \u0438\u0441\u0442\u043e\u0440\u0438\u044f \u0442\u043e\u0436\u0435 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[116],"tags":[141,142,129],"class_list":["post-466","post","type-post","status-publish","format-standard","hentry","category-programming","tag-git","tag-git-svn","tag-svn"],"_links":{"self":[{"href":"https:\/\/seriyps.com\/blog\/wp-json\/wp\/v2\/posts\/466","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/seriyps.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/seriyps.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/seriyps.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/seriyps.com\/blog\/wp-json\/wp\/v2\/comments?post=466"}],"version-history":[{"count":10,"href":"https:\/\/seriyps.com\/blog\/wp-json\/wp\/v2\/posts\/466\/revisions"}],"predecessor-version":[{"id":492,"href":"https:\/\/seriyps.com\/blog\/wp-json\/wp\/v2\/posts\/466\/revisions\/492"}],"wp:attachment":[{"href":"https:\/\/seriyps.com\/blog\/wp-json\/wp\/v2\/media?parent=466"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/seriyps.com\/blog\/wp-json\/wp\/v2\/categories?post=466"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/seriyps.com\/blog\/wp-json\/wp\/v2\/tags?post=466"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}