=============================== РабоÑа в ÑенÑÑализованном ÑÑиле =============================== .. sectnum:: ÐÐ±Ð·Ð¾Ñ ===== ÐÑÐ¾Ñ Ð´Ð¾ÐºÑÐ¼ÐµÐ½Ñ Ð¾Ð¿Ð¸ÑÑÐ²Ð°ÐµÑ Ð¾Ð´Ð¸Ð½ из возможнÑÑ Ð¿Ð¾Ð´Ñ Ð¾Ð´Ð¾Ð² к иÑполÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Bazaar_. Рименно, иÑполÑзование ÑаÑпÑеделенной ÑиÑÑÐµÐ¼Ñ ÐºÐ¾Ð½ÑÑÐ¾Ð»Ñ Ð²ÐµÑÑий Bazaar_, в ÑенÑÑализованном ÑÑиле. Bazaar_ ÑазÑабоÑана, ÑÑо Ð±Ñ Ð±ÑÑÑ Ð³Ð¸Ð±ÐºÐ¾Ð¹ и допÑÑкаÑÑ ÑазлиÑнÑе Ð¿Ð¾Ð´Ñ Ð¾Ð´Ñ Ðº ÑабоÑе, наÑÐ¸Ð½Ð°Ñ Ð¾Ñ Ð¿Ð¾Ð»Ð½Ð¾ÑÑÑÑ Ð´ÐµÑенÑÑализованного, до пÑакÑиÑеÑки ÑенÑÑализованного. ÐÐ¾Ð´Ñ Ð¾Ð´ опиÑаннÑй здеÑÑ Ð¿Ð¾Ð·Ð²Ð¾Ð»ÑÐµÑ Ð½Ð¾Ð²Ñм полÑзоваÑелÑм пÑоÑе вникнÑÑÑ Ð² более пÑодвинÑÑое иÑполÑзование Bazaar_ и ÑмеÑиваÑÑ ÑенÑÑализованнÑе и деÑенÑÑализованнÑе опеÑаÑии. РобÑем ÑлÑÑае, даннÑй докÑÐ¼ÐµÐ½Ñ Ð¸Ð½ÑеÑеÑен Ð´Ð»Ñ Ð¿Ð¾Ð»ÑзоваÑелей пеÑÐµÑ Ð¾Ð´ÑÑÐ¸Ñ Ñ ÑенÑÑализованнÑÑ ÑиÑÑем, ÑÐ°ÐºÐ¸Ñ ÐºÐ°Ðº CVS, или Subversion. Ð ÑÐ°ÐºÐ¸Ñ ÑиÑÑÐµÐ¼Ð°Ñ Ð¾Ð±ÑÑно еÑÑÑ ÐµÐ´Ð¸Ð½ÑÑвеннÑй ÑенÑÑалÑнÑй ÑеÑÐ²ÐµÑ Ð½Ð° коÑоÑом Ñ ÑаниÑÑÑ ÐºÐ¾Ð´ пÑоекÑа и ÑÑаÑÑники ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ ÑабоÑаÑÑ Ð½Ð°Ð´ ÑÑим кодом, ÑÐ¸Ð½Ñ ÑонизиÑÑÑ ÑÐ²Ð¾Ñ ÑабоÑÑ. Такой Ñежим Ñак же Ð¿Ð¾Ð´Ñ Ð¾Ð´Ð¸Ñ Ð´Ð»Ñ ÑазÑабоÑÑика-одиноÑки, ÑабоÑаÑÑего на неÑколÑÐºÐ¸Ñ ÑазлиÑнÑÑ Ð¼Ð°ÑÐ¸Ð½Ð°Ñ . .. _Bazaar: http://bazaar.canonical.com .. contents:: СодеÑжание ÐаÑалÑнÑе ÑÑÑановки =================== Ð Ñамом наÑале, Ð´Ð»Ñ Ð±Ð¾Ð»ÐµÐµ Ñдобной ÑабоÑÑ Ñ Bazaar_, желаÑелÑно оÑÑÑеÑÑвиÑÑ Ð´Ð¾ÑÑаÑоÑно пÑоÑÑÑе Ñаги по наÑÑÑойке. ÐаÑÑÑойка e-mail полÑзоваÑÐµÐ»Ñ ----------------------------- СÑÑока иденÑиÑиÑиÑÑÑÑÐ°Ñ Ð¿Ð¾Ð»ÑзоваÑÐµÐ»Ñ ÑÐ¾Ñ ÑанÑеÑÑÑ Ð¿Ñи каждой ÑикÑаÑии. ХоÑÑ Ð¾Ð½Ð° не обÑзаÑелÑно должна бÑÑÑ Ð°ÐºÐºÑÑаÑной или ÑникалÑной она бÑÐ´ÐµÑ Ð¸ÑполÑзоваÑÑÑÑ Ð² ÑообÑениÑÑ Ð¶ÑÑнала и анноÑаÑиÑÑ , Ñаким обÑазом лÑÑÑе ÑÑо Ð±Ñ Ð¾Ð½Ð° бÑла Ð¿Ð¾Ñ Ð¾Ð¶Ð° на ÑÑо-Ñо ÑеалÑное. :: % bzr whoami "Ðван ÐÑпкин <ivan@pupkin.ru>" ÐаÑÑÑойка локалÑного ÑепозиÑоÑÐ¸Ñ -------------------------------- РобÑем ÑлÑÑае веÑки Bazaar_ копиÑÑÑÑ Ð¿Ð¾Ð»Ð½ÑÑ Ð¸ÑÑоÑÐ¸Ñ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ð¹ вмеÑÑе Ñ Ñобой, ÑÑо, кÑÑаÑи, позволÑÐµÑ ÑабоÑаÑÑ Ð² полноÑÑÑÑ Ð´ÐµÑенÑÑализованном ÑÑиле. Ðак опÑимизаÑÐ¸Ñ Ð´Ð»Ñ ÑвÑзаннÑÑ Ð²ÐµÑок возможно обÑединÑÑÑ Ð¸Ñ Ñ ÑанилиÑа Ñаким обÑазом, ÑÑо оÑÐ¿Ð°Ð´Ð°ÐµÑ Ð½ÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼Ð¾ÑÑÑ Ð² копиÑовании полной иÑÑоÑии изменений пÑи Ñоздании новой веÑки. ÐÑÑÑий ÑпоÑоб ÑделаÑÑ ÑÑо - ÑоздаÑÑ `РазделÑемÑй ÑепозиÑоÑий`_. РобÑем ÑлÑÑае, веÑки бÑдÑÑ ÑазделÑÑÑ Ñ ÑанилиÑе еÑли они Ð½Ð°Ñ Ð¾Ð´ÑÑÑÑ Ð² подкаÑалоге ÑÑого ÑепозиÑоÑиÑ. ÐавайÑе Ñоздадим `РазделÑемÑй ÑепозиÑоÑий`_ в наÑем домаÑнем каÑалоге и Ñаким обÑазом вÑе веÑки коÑоÑÑе Ð¼Ñ Ð±Ñдем ÑоздаваÑÑ Ð¿Ð¾Ð´ ним бÑдÑÑ ÑазделÑÑÑ Ñ ÑанилиÑе иÑÑоÑии. :: % bzr init-repo --trees ~ ÐаÑÑÑойка Ñдаленного ÑепозиÑоÑÐ¸Ñ -------------------------------- Ðо Ð¼Ð½Ð¾Ð³Ð¸Ñ ÑлÑÑаÑÑ Ð½Ñжно ÑоздаваÑÑ Ð¼ÐµÑÑо где даннÑе Ñ ÑанÑÑÑÑ Ð¾ÑделÑно Ð¾Ñ ÑабоÑего каÑалога. Такой Ð¿Ð¾Ð´Ñ Ð¾Ð´ Ð½ÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼ Ð´Ð»Ñ ÑенÑÑализованнÑÑ ÑиÑÑем (CVS/SVN). ÐбÑÑно ÑÑи каÑалоги Ð½Ð°Ñ Ð¾Ð´ÑÑÑÑ Ð½Ð° ÑазлиÑнÑÑ Ð¼Ð°ÑÐ¸Ð½Ð°Ñ , Ñ Ð¾ÑÑ Ð¸ не вÑегда. Ðа Ñамом деле ÑÑо доÑÑаÑоÑно Ñ Ð¾ÑоÑий Ð¿Ð¾Ð´Ñ Ð¾Ð´, оÑобенно в ÑабоÑей ÑÑеде. Так как здеÑÑ ÑÑÑеÑÑвÑÐµÑ ÑенÑÑалÑÐ½Ð°Ñ ÑоÑка, где могÑÑ Ð±ÑÑÑ ÑÐ¾Ñ ÑÐ°Ð½ÐµÐ½Ñ Ð²Ñе даннÑе и даже еÑли ÑÑо-Ñо ÑлÑÑиÑÑÑ Ñ Ð¼Ð°Ñиной ÑазÑабоÑÑика заÑикÑиÑÐ¾Ð²Ð°Ð½Ð½Ð°Ñ ÑабоÑа не бÑÐ´ÐµÑ Ð¿Ð¾ÑеÑÑна. ÐавайÑе Ñоздадим ÑазделÑемое меÑÑо Ð´Ð»Ñ Ð½Ð°Ñего пÑоекÑа на Ñдаленной маÑине и назовем его ``centralhost``. ÐÑ Ñнова иÑполÑзÑем `РазделÑемÑй ÑепозиÑоÑий`_ Ð´Ð»Ñ Ð¾Ð¿ÑимизаÑии иÑполÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð´Ð¸Ñков. :: % bzr init-repo --no-trees sftp://centralhost/srv/bzr/ Ðожно ÑаÑÑмаÑÑиваÑÑ ÑÑÐ¾Ñ Ñаг как Ð¿Ð¾Ñ Ð¾Ð¶Ð¸Ð¹ на ÑÑÑÐ°Ð½Ð¾Ð²ÐºÑ CVSROOT, или ÑепозиÑоÑÐ¸Ñ Subversion. ÐпÑÐ¸Ñ ``--no-trees`` ÑказÑÐ²Ð°ÐµÑ Bazaar не ÑоздаваÑÑ ÑабоÑий каÑалог в ÑепозиÑоÑии. Ðам ÑÑо Ð¿Ð¾Ð´Ñ Ð¾Ð´Ð¸Ñ, Ñ.к. никÑо не бÑÐ´ÐµÑ Ð½Ð°Ð¿ÑÑмÑÑ ÑÑо-Ñо изменÑÑÑ Ð½Ð° веÑÐºÐ°Ñ Ð² ÑенÑÑалÑном ÑепозиÑоÑии. ÐигÑаÑÐ¸Ñ ÑабоÑего пÑоекÑа в Bazaar ================================== ТепеÑÑ, когда Ñ Ð½Ð°Ñ ÐµÑÑÑ ÑепозиÑоÑий давайÑе Ñоздадим пÑÐ¾ÐµÐºÑ Ð¿Ð¾Ð´ конÑÑолем веÑÑий. РболÑÑинÑÑве ÑлÑÑаев Ñ Ð²Ð°Ñ Ñже еÑÑÑ ÐºÐ°ÐºÐ¾Ð¹-Ñо код Ñ ÐºÐ¾ÑоÑÑм Ð²Ñ ÑабоÑаеÑе и Ð´Ð»Ñ Ñ ÑÐ°Ð½ÐµÐ½Ð¸Ñ ÐºÐ¾ÑоÑого Ð²Ñ Ñ Ð¾Ñели Ð±Ñ Ð¸ÑполÑзоваÑÑ Bazaar_. ÐÑли код изнаÑалÑно Ñже бÑл под конÑÑолем веÑÑий ÑÑÑеÑÑвÑÐµÑ Ð¼Ð½Ð¾Ð³Ð¾ ÑпоÑобов конвеÑÑиÑоваÑÑ Ð¿ÑÐ¾ÐµÐºÑ Ð² Bazaar_ без поÑеÑи иÑÑоÑии изменений. Ðо ÑÑи ÑпоÑÐ¾Ð±Ñ Ð½Ð°Ñ Ð¾Ð´ÑÑÑÑ Ð²Ð½Ðµ Ñем ÑаÑÑмаÑÑиваемÑÑ Ð² данном докÑменÑе. СмоÑÑиÑе `ÐÑÑлеживание изменений на оÑновной веÑке`_ Ð´Ð»Ñ Ð½ÐµÐºÐ¾ÑоÑÑÑ ÑпоÑобов (ÑекÑÐ¸Ñ "ÐонвеÑÑиÑование и ÑÐ¾Ñ Ñанение иÑÑоÑии"). .. _ÐÑÑлеживание изменений на оÑновной веÑке: http://wiki.bazaar.canonical.com/TrackingUpstream .. TODO: Ðа Ñамом деле нам нÑжен дÑÑгой докÑÐ¼ÐµÐ½Ñ Ð´Ð»Ñ Ð¾Ð¿Ð¸ÑÐ°Ð½Ð¸Ñ ÐºÐ¾Ð½Ð²ÐµÑÑиÑÐ¾Ð²Ð°Ð½Ð¸Ñ Ð¿ÑоекÑа. Ðо пока ÑÑÑлка вÑÑе - ÑÑо лÑÑÑее. РазÑабоÑÑик 1: Создание пеÑвой Ñевизии -------------------------------------- СнаÑала нам нÑжно ÑоздаÑÑ Ð²ÐµÑÐºÑ Ð² наÑем Ñдаленном ÑепозиÑоÑии, Ñам где Ð¼Ñ Ñ Ð¾Ñели Ð±Ñ Ñ ÑаниÑÑ Ð½Ð°Ñ Ð¿ÑоекÑ. ÐопÑÑÑим, ÑÑо Ñ Ð½Ð°Ñ Ñже еÑÑÑ Ð¿ÑÐ¾ÐµÐºÑ "sigil", коÑоÑÑй Ð¼Ñ Ñ Ð¾Ñели Ð±Ñ Ñ ÑаниÑÑ Ð¿Ð¾Ð´ конÑÑолем веÑÑий. :: % bzr init sftp://centralhost/srv/bzr/sigil ÐÑо можно ÑаÑÑмаÑÑиваÑÑ ÐºÐ°Ðº веÑÐºÑ "HEAD" в ÑеÑÐ¼Ð¸Ð½Ð°Ñ CVS, или как "trunk" в ÑеÑÐ¼Ð¸Ð½Ð°Ñ Subversion. Ðазовем ÑÑо веÑкой ÑазÑабоÑки ``dev``. Я пÑедпоÑиÑÐ°Ñ ÑабоÑаÑÑ Ð² подкаÑалоге моего домаÑнего каÑалога, ÑÑо Ð±Ñ Ð¸Ð·Ð±ÐµÐ³Ð°ÑÑ ÐºÐ¾Ð»Ð»Ð¸Ð·Ð¸Ð¹ Ñо вÑеми дÑÑгими Ñайлами коÑоÑÑе в ней Ð½Ð°Ñ Ð¾Ð´ÑÑÑÑ. Также нам понадобиÑÑÑ ÐºÐ°Ñалог Ð´Ð»Ñ Ð¿ÑоекÑа где Ð¼Ñ Ñможем Ñ ÑаниÑÑ ÑазлиÑнÑе веÑки пÑоекÑа над коÑоÑÑми ÑабоÑаем. :: % cd ~ % mkdir work % cd work % mkdir sigil % cd sigil % bzr checkout sftp://centralhost/srv/bzr/sigil dev % cd dev % cp -ar ~/sigil/* . % bzr add % bzr commit -m "ÐеÑвÑй импоÑÑ Sigil" ÐÑÑе Ð¼Ñ Ñоздали пÑÑÑÑÑ Ð²ÐµÑÐºÑ ``/sigil`` на ``centralhost`` и заÑем загÑÑзили ÑÑÑ Ð¿ÑÑÑÑÑ Ð²ÐµÑÐºÑ Ð½Ð° наÑÑ ÑабоÑÑÑ Ð¼Ð°ÑÐ¸Ð½Ñ ÑÑо Ð±Ñ Ð´Ð¾Ð±Ð°Ð²Ð¸ÑÑ ÑÐ°Ð¹Ð»Ñ Ð¸Ð· наÑего ÑÑаÑого пÑоекÑа. ÐÑÑÑ Ð¼Ð½Ð¾Ð³Ð¾ ÑпоÑобов наÑÑÑоиÑÑ Ñвой ÑабоÑий каÑалог, но Ñаги вÑÑе ÑпÑоÑаÑÑ Ð´Ð°Ð»ÑнейÑÑÑ ÑабоÑÑ Ñ Ð²ÐµÑками Ð´Ð»Ñ ÑабоÑÑ Ð½Ð°Ð´ оÑибками, или новÑми ÑÑнкÑиÑми. Родна из наиболее ÑилÑнÑÑ ÑÑоÑон Bazaar_ - ÑÑо именно оÑлиÑÐ½Ð°Ñ ÑабоÑа Ñ Ð²ÐµÑками. Ðа ÑÑом ÑÑапе, Ñ.к. Ð¼Ñ Ñоздали ÑабоÑÑÑ ÐºÐ¾Ð¿Ð¸Ñ (checkout) Ñдаленной веÑки, вÑе ÑикÑаÑии коÑоÑÑе бÑдÑÑ ÑÐ´ÐµÐ»Ð°Ð½Ñ Ð² ``~/work/sigil/dev/`` бÑдÑÑ Ð°Ð²ÑомаÑиÑеÑки ÑÐ¾Ñ ÑÐ°Ð½ÐµÐ½Ñ Ð¸ локалÑно и на ``centralhost``. РазÑабоÑÑик N: ÐолÑÑение ÑабоÑей копии пÑоекÑа ---------------------------------------------- Так как пеÑвÑй ÑазÑабоÑÑик пÑоделал вÑÑ ÑабоÑÑ Ð¿Ð¾ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ð¿ÑоекÑа вÑе оÑÑалÑнÑе ÑазÑабоÑÑики могÑÑ Ð¿ÑоÑÑо полÑÑиÑÑ ÑабоÑÑÑ ÐºÐ¾Ð¿Ð¸Ñ Ð²ÐµÑки. ХоÑÑ **они вÑе еÑе Ð´Ð¾Ð»Ð¶Ð½Ñ ÑледоваÑÑ** Ñазделам `ÐаÑÑÑойка e-mail полÑзоваÑелÑ`_ и `ÐаÑÑÑойка локалÑного ÑепозиÑоÑиÑ`_. ÐолÑÑим ÑабоÑÑÑ ÐºÐ¾Ð¿Ð¸Ñ ÑекÑÑего деÑева ÑазÑабоÑки:: % cd ~/work/sigil % bzr checkout sftp://centralhost/srv/bzr/sigil dev ТепеÑÑ, когда два Ñеловека Ð¸Ð¼ÐµÑ ÑабоÑÑÑ ÐºÐ¾Ð¿Ð¸Ñ ``sftp://centralhost/srv/bzr/sigil`` бÑдÑÑ ÑиÑÑаÑии когда одна из копий бÑÐ´ÐµÑ Ð½Ðµ ÑÐ¸Ð½Ñ ÑонизиÑована Ñ ÑекÑÑей веÑÑией. Ðо вÑÐµÐ¼Ñ ÑикÑаÑии Bazaar_ пÑоинÑоÑмиÑÑÐµÑ Ð¿Ð¾Ð»ÑзоваÑÐµÐ»Ñ Ð¾Ð± ÑÑом и не допÑÑÑÐ¸Ñ ÑикÑаÑии. ÐÐ»Ñ Ð¿Ð¾Ð»ÑÑÐµÐ½Ð¸Ñ Ð¿Ð¾ÑÐ»ÐµÐ´Ð½Ð¸Ñ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ð¹ нÑжно иÑполÑзоваÑÑ ``bzr update``. ÐÑа команда Ð¼Ð¾Ð¶ÐµÑ Ð¿Ð¾ÑÑебоваÑÑ ÑазÑеÑÐµÐ½Ð¸Ñ ÐºÐ¾Ð½ÑликÑов еÑли бÑли Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ñ Ð¾Ð´Ð½Ð¸ и Ñе же ÑайлÑ. РазÑабоÑка на оÑделÑнÑÑ Ð²ÐµÑÐºÐ°Ñ ============================== Ðо ÑÑого моменÑа вÑе ÑабоÑали и ÑикÑиÑовали Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð½Ð° Ð¾Ð´Ð½Ñ Ð¸ ÑÑ Ð¶Ðµ веÑкÑ. ÐÑо знаÑиÑ, ÑÑо каждÑй должен пеÑиодиÑеÑки обновлÑÑÑ ÑÐ²Ð¾Ñ Ð²ÐµÑÐºÑ Ð¸ имеÑÑ Ð´ÐµÐ»Ð¾ Ñ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñми дÑÑÐ³Ð¸Ñ ÑазÑабоÑÑиков. Так же еÑли один ÑазÑабоÑÑик ÑикÑиÑÑÐµÑ ÑÑо-Ñо, ÑÑо пÑÐ¸Ð²Ð¾Ð´Ð¸Ñ Ðº оÑибкам, Ñо поÑле ÑÐ¸Ð½Ñ ÑонизаÑии ÑÑа пÑоблема коÑнеÑÑÑ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾. ÐбÑÑно лÑÑÑе веÑÑи ÑазÑабоÑÐºÑ Ð½Ð° ÑазлиÑнÑÑ Ð²ÐµÑÐºÐ°Ñ Ð¸ заÑем, как ÑолÑко Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð´Ð¾ÑÑаÑоÑно ÑÑабилÑнÑ, инÑегÑиÑоваÑÑ Ð¸Ñ Ð¾Ð±ÑаÑно на оÑновнÑÑ Ð²ÐµÑкÑ. ÐÑо одно из наиболÑÑÐ¸Ñ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ð¹ по ÑÑÐ°Ð²Ð½ÐµÐ½Ð¸Ñ Ñ ÑабоÑой в CVS/SVN. Ðбе ÑÑи ÑиÑÑÐµÐ¼Ñ Ð¿Ð¾Ð·Ð²Ð¾Ð»ÑÑÑ ÑабоÑаÑÑ Ñ Ð¾ÑделÑнÑми веÑками, но Ð¸Ñ Ð°Ð»Ð³Ð¾ÑиÑÐ¼Ñ Ð¾Ð±ÑÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ Ð´Ð¾ÑÑаÑоÑно ÑÐ»Ð°Ð±Ñ Ð¸ поÑÑÐ¾Ð¼Ñ Ñ Ð½Ð¸Ð¼Ð¸ Ñложно деÑжаÑÑ Ð²Ñе ÑÐ¸Ð½Ñ ÑонизиÑовано. Bazaar_ оÑÑÐ»ÐµÐ¶Ð¸Ð²Ð°ÐµÑ ÑÑо Ñже бÑло обÑединено и Ð¼Ð¾Ð¶ÐµÑ Ð´Ð°Ð¶Ðµ пÑикладÑваÑÑ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ðº Ñайлам коÑоÑÑе бÑли пеÑеименованÑ. Создание и ÑабоÑа на новой веÑке -------------------------------- ÐÑ Ð±Ñ Ñ Ð¾Ñели, ÑÑо Ð±Ñ Ð½Ð°Ñи Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð±Ñли доÑÑÑÐ¿Ð½Ñ Ð´ÑÑгим даже еÑли они пока еÑе не законÑенÑ. Таким обÑазом Ð¼Ñ Ñоздадим новÑÑ Ð¿ÑблиÑнÑÑ Ð²ÐµÑÐºÑ Ð½Ð° ``centralhost`` и бÑдем оÑÑлеживаÑÑ ÐµÐµ локалÑно. :: % cd ~/work/sigil % bzr branch sftp://centralhost/srv/bzr/sigil \ sftp://centralhost/srv/bzr/sigil/doodle-fixes % bzr checkout sftp://centralhost/srv/bzr/sigil/doodle-fixes doodle-fixes % cd doodle-fixes ТепеÑÑ Ñ Ð½Ð°Ñ ÐµÑÑÑ Ð¼ÐµÑÑо где Ð¼Ñ Ð¼Ð¾Ð¶ÐµÐ¼ иÑпÑавлÑÑÑ Ð²Ñе оÑибки Ð´Ð»Ñ ``doodle``. Ð Ð¼Ñ Ð½Ðµ бÑдем пÑеÑÑваÑÑ Ð½Ð¸ÐºÐ¾Ð³Ð¾ кÑо ÑабоÑÐ°ÐµÑ Ð½Ð°Ð´ дÑÑгими ÑаÑÑÑми кода. Так как Ñ Ð½Ð°Ñ ÐµÑÑÑ ÑабоÑÐ°Ñ ÐºÐ¾Ð¿Ð¸Ñ (checkout) вÑе ÑикÑаÑии коÑоÑÑе Ð¼Ñ Ð´ÐµÐ»Ð°ÐµÐ¼ на ``~/work/sigil/doodle-fixes/`` Ñак же поÑвÑÑÑÑ Ð¸ на ``centralhost``. [#nestedbranches]_ Также возможно, ÑÑо Ð±Ñ Ð´Ð²Ð° ÑазÑабоÑÑика ÑовмеÑÑно ÑабоÑали над одной из ÑÑÐ¸Ñ Ð²ÐµÑок, Ñак же как они ÑовмеÑÑно ÑабоÑаÑÑ Ð½Ð°Ð´ веÑкой ``dev``. [#cbranch]_ .. [#nestedbranches] ÐÐ¾Ð¶ÐµÑ Ð¿Ð¾ÐºÐ°Ð·Ð°ÑÑÑÑ ÑÑÑаннÑм имеÑÑ Ð²ÐµÑÐºÑ Ð² подкаÑалоге дÑÑгой веÑки. Ðо ÑÑо ноÑмалÑно, можно дÑмаÑÑ Ð¾Ð± ÑÑом как о иеÑаÑÑ Ð¸ÑеÑком пÑоÑÑÑанÑÑве имен где Ð²Ð»Ð¾Ð¶ÐµÐ½Ð½Ð°Ñ Ð²ÐµÑка ÑвлÑеÑÑÑ Ð¿Ñоизводной Ð¾Ñ Ð²Ð½ÐµÑней веÑки. .. [#cbranch] Ðогда иÑполÑзÑеÑÑÑ Ð¼Ð½Ð¾Ð¶ÐµÑÑво незавиÑимÑÑ Ð²ÐµÑок каждÑй Ñаз набиÑаÑÑ Ð¿Ð¾Ð»Ð½Ñй URL Ð·Ð°Ð½Ð¸Ð¼Ð°ÐµÑ Ð¼Ð½Ð¾Ð³Ð¾ вÑемени. ÐÑ ÑаÑÑмаÑÑиваем ÑазлиÑнÑе меÑодÑ, ÑÑо Ð±Ñ Ð¾Ð±Ð¾Ð¹Ñи ÑÑо, напÑÐ¸Ð¼ÐµÑ Ð¿ÑÐµÐ²Ð´Ð¾Ð½Ð¸Ð¼Ñ Ð´Ð»Ñ Ð²ÐµÑок и Ñ.п. Ðо пока плагин bzrtools_ пÑедоÑÑавлÑÐµÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ ``bzr cbranch``. ÐÑа команда на оÑнове базовой веÑки ÑÐ¾Ð·Ð´Ð°ÐµÑ Ð½Ð¾Ð²ÑÑ Ð¿ÑблиÑнÑÑ Ð²ÐµÑÐºÑ Ð¸ ÑабоÑÑÑ ÐºÐ¾Ð¿Ð¸Ñ ÑÑой веÑки вÑего одной командой. ÐонÑигÑÑиÑование ``cbranch`` не Ð²Ñ Ð¾Ð´Ð¸Ñ Ð² Ñамки опиÑÐ°Ð½Ð¸Ñ ÑÑого докÑменÑа, но ÑиналÑÐ½Ð°Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð° вÑглÑÐ´Ð¸Ñ ÑледÑÑÑим обÑазом: :: % bzr cbranch dev my-feature-branch .. _bzrtools: http://wiki.bazaar.canonical.com/BzrTools ÐбÑединение изменений обÑаÑно ----------------------------- Ðогда ÑеÑено ÑÑо некоÑоÑÑе Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð¸Ð· ``doodle-fixes`` гоÑÐ¾Ð²Ñ Ð´Ð»Ñ Ð¾Ð±ÑÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ Ð½Ð° оÑновнÑÑ Ð²ÐµÑÐºÑ Ð½Ñжно пÑоÑÑо ÑделаÑÑ ÑледÑÑÑее:: % cd ~/work/sigil/dev % bzr merge ../doodle-fixes ТепеÑÑ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð´Ð¾ÑÑÑÐ¿Ð½Ñ Ð½Ð° веÑке ``dev``, но они пока еÑе не бÑли заÑикÑиÑованÑ. Ð ÑÑÐ¾Ñ Ð¼Ð¾Ð¼ÐµÐ½Ñ Ð½Ñжно пÑоÑмоÑÑеÑÑ ÑиналÑнÑе Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð¸ пÑовеÑиÑÑ, ÑÑо код компилиÑÑеÑÑÑ Ð¸ пÑÐ¾Ñ Ð¾Ð´ÑÑ Ð²Ñе ÑеÑÑÑ. ÐÐ¾Ð¼Ð°Ð½Ð´Ñ ``bzr status`` и ``bzr diff`` Ñ Ð¾ÑоÑие инÑÑÑÑменÑÑ Ð´Ð»Ñ ÑÑого. Так же нÑжно ÑазÑеÑиÑÑ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ñе конÑликÑÑ. Bazaar_ не допÑÑÑÐ¸Ñ ÑикÑаÑии пока не бÑдÑÑ ÑазÑеÑÐµÐ½Ñ Ð²Ñе конÑликÑÑ. Ð ÑÑом ÑлÑÑае Ð²Ñ ÑлÑÑайно не заÑикÑиÑÑеÑе маÑкеÑÑ ÐºÐ¾Ð½ÑликÑа. Ðоманда ``bzr status`` Ð¿Ð¾ÐºÐ°Ð¶ÐµÑ ÐºÐ¾Ð½ÑликÑÑ Ð¸ изменениÑ, или можно иÑполÑзоваÑÑ ``bzr conflicts`` ÑÑо Ð±Ñ ÑвидеÑÑ ÑолÑко конÑликÑÑ. ÐÑполÑзÑйÑе ``bzr resolve file/name``, или ``bzr resolve --all`` как ÑолÑко конÑликÑÑ Ð±Ñли ÑазÑеÑенÑ. [#resolve]_ ÐÑли ÑÑÑеÑÑвÑÑÑ ÐºÐ¾Ð½ÑликÑÑ ÐºÐ¾ÑоÑÑе оÑобенно Ñложно ÑазÑеÑиÑÑ Ð¼Ð¾Ð¶Ð½Ð¾ иÑполÑзоваÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ ``bzr remerge``. ÐÑа команда Ð¿Ð¾Ð·Ð²Ð¾Ð»Ð¸Ñ Ð¸ÑполÑзоваÑÑ Ð´ÑÑгие алгоÑиÑÐ¼Ñ Ð¾Ð±ÑÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ Ð¸ Ñакже Ð¿Ð¾Ð·Ð²Ð¾Ð»Ð¸Ñ ÑвидеÑÑ ÑÑÑоки оÑигиналÑного кода (``--show-base``). .. [#resolve] ÐекоÑоÑÑе ÑиÑÑÐµÐ¼Ñ Ð¿Ð¾Ð·Ð²Ð¾Ð»ÑÑÑ ÑазÑеÑаÑÑ ÐºÐ¾Ð½ÑликÑÑ ÐºÐ°Ðº ÑаÑÑÑ Ð¿ÑоÑеÑÑа обÑединениÑ. ÐÑ Ð¾Ð±Ð½Ð°ÑÑжили, ÑÑо обÑÑно пÑоÑе ÑазÑеÑаÑÑ ÐºÐ¾Ð½ÑликÑÑ ÐºÐ¾Ð³Ð´Ð° можно пÑоÑмаÑÑиваÑÑ Ð¿Ð¾Ð»Ð½Ð¾Ðµ деÑево, а не ÑолÑко оÑделÑнÑе ÑайлÑ. ÐÑо Ð´Ð°ÐµÑ Ð½Ð°Ð¼Ð½Ð¾Ð³Ð¾ болÑÑе конÑекÑÑа и Ñакже позволÑÐµÑ Ð·Ð°Ð¿ÑÑкаÑÑ ÑеÑÑÑ ÐºÐ¾Ð³Ð´Ð° пÑоблема бÑÐ´ÐµÑ ÑеÑена. РекомендаÑии по ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ð²ÐµÑок ------------------------------ Ðдин из ÑаÑÑо иÑполÑзÑемÑÑ ÑпоÑобов ÑабоÑÑ Ñ Ð½Ð°Ð±Ð¾Ñом веÑок - ÑÑо даÑÑ ÐºÐ°Ð¶Ð´Ð¾Ð¼Ñ ÑазÑабоÑÑÐ¸ÐºÑ ÑÐ²Ð¾Ñ ÑобÑÑвеннÑÑ Ð²ÐµÑÐºÑ Ð¸ ÑобÑÑвенное меÑÑо Ð´Ð»Ñ ÑабоÑÑ Ð½Ð° ÑенÑÑалÑном ÑеÑвеÑе. ÐÑо можно ÑделаÑÑ Ñак:: % bzr branch sftp://centralhost/srv/bzr/sigil \ sftp://centralhost/srv/bzr/sigil/user-a % bzr branch sftp://centralhost/srv/bzr/sigil \ sftp://centralhost/srv/bzr/sigil/user-b ÐÑо Ð´Ð°ÐµÑ ÐºÐ°Ð¶Ð´Ð¾Ð¼Ñ ÑазÑабоÑÑÐ¸ÐºÑ ÑобÑÑвеннÑÑ Ð²ÐµÑÐºÑ Ð´Ð»Ñ ÑабоÑÑ. Рони ÑмогÑÑ Ð»ÐµÐ³ÐºÐ¾ ÑоздаÑÑ Ð½Ð¾Ð²Ñе веÑки Ñ Ð¿Ð¾Ð¼Ð¾ÑÑÑ [#cbranch]_ :: % bzr branch sftp://centralhost/srv/bzr/sigil/user-a \ sftp://centralhost/srv/bzr/sigil/user-a/feature % cd ~/work/sigil % bzr checkout sftp://centralhost/srv/bzr/sigil/user-a/feature myfeature ÐлоÑÑаÑий ========= РазделÑемÑй ÑепозиÑоÑий ----------------------- Bazaar_ поддеÑÐ¶Ð¸Ð²Ð°ÐµÑ ÐºÐ¾Ð½ÑепÑÐ¸Ñ "РазделÑемÑй ÑепозиÑоÑий". ÐÑа конÑепÑÐ¸Ñ Ð¿Ð¾Ñ Ð¾Ð¶Ð° на ÑÑадиÑионнÑе конÑепÑии ÑепозиÑоÑиев в дÑÑÐ³Ð¸Ñ ÑиÑÑÐµÐ¼Ð°Ñ ÐºÐ¾Ð½ÑÑÐ¾Ð»Ñ Ð²ÐµÑÑий, ÑÐ°ÐºÐ¸Ñ ÐºÐ°Ðº CVS, или Subversion. ÐапÑимеÑ, в Subversion Ñ Ð²Ð°Ñ ÐµÑÑÑ ÑдаленнÑй ÑепозиÑоÑий, где Ñ ÑаниÑÑÑ Ð²ÑÑ Ð¸ÑÑоÑÐ¸Ñ Ð¸ локалÑно иÑÑоÑÐ¸Ñ Ð½Ðµ Ñ ÑаниÑÑÑ, а Ñ ÑаниÑÑÑ ÑолÑко ÑабоÑÐ°Ñ ÐºÐ¾Ð¿Ð¸Ñ Ñайлов. ÐонеÑно "РазделÑемÑй" в данном конÑекÑÑе знаÑиÑ, ÑÑо он Ñазделен Ð¼ÐµÐ¶Ð´Ñ Ð²ÐµÑками. Ðн *можеÑ* бÑÑÑ Ñазделен Ð¼ÐµÐ¶Ð´Ñ Ð»ÑдÑми, но оÑделÑнÑе веÑки Ñакже могÑÑ Ð±ÑÑÑ ÑÐ°Ð·Ð´ÐµÐ»ÐµÐ½Ñ Ð¼ÐµÐ¶Ð´Ñ Ð»ÑдÑми. Ð Bazaar_ ÑеÑмин "РазделÑемÑй ÑепозиÑоÑий" - ÑÑо меÑÑо где неÑколÑко веÑок могÑÑ *ÑазделÑÑÑ* Ð¸Ñ Ð¸ÑÑоÑÐ¸Ñ Ñевизий. ЧÑо Ð±Ñ Ð¿Ð¾Ð´Ð´ÐµÑживаÑÑ Ð´ÐµÑенÑÑализованнÑÑ ÑÑ ÐµÐ¼Ñ ÑабоÑÑ ÐºÐ°Ð¶Ð´Ð°Ñ Ð²ÐµÑка Ð¼Ð¾Ð¶ÐµÑ Ñ ÑаниÑÑ ÑÐ²Ð¾Ñ ÑобÑÑвеннÑÑ Ð¸ÑÑоÑÐ¸Ñ Ñевизий. Ðо ÑаÑÑо ÑÑо не ÑÑÑекÑивно, Ñ.к. завиÑимÑе веÑки ÑазделÑÑÑ Ð¸ÑÑоÑÐ¸Ñ Ð¸ они могÑÑ Ñак же ÑазделÑÑÑ Ð¸ Ñ ÑанилиÑе иÑÑоÑии. .. vim: tw=74 ft=rst spell spelllang=en_us