CentOS上升級Subversion

來源:互聯網
上載者:User

      這些天一直被SVN的分支間的合并(Merge)折磨的夠嗆,大家也都反映:在連個分支之間合并太麻煩了,有時候根本不知道上次合并了哪個版本。當時想了一些方法,爭取從流程上防止出現錯誤:

      1. 每個人都只合并自己的修改

            有時候一個fix會涉及多個人的修改。

      2. 每一個fix就合并一次,以免修改太多,記不清

            大部分時候一個fix都要反反覆複修改,並且修複的同時,可能還會新的需求過來。

      3. 合并後提交時,在注釋中寫明合并到了哪個版本。

            雖然可以寫的清楚,但是在log中也不好尋找,而有時候合并是要跳過某些版本的。

      大家都在“抱怨”這個合并過程,並且前幾天還出現過一次嚴重的問題。當時,由於著急發布,而合并時又出現了,開發人員就用主分支中的最新內容覆蓋了發布分支中的代碼,一些還沒有測試的代碼就被發布了。還好那天沒有出現大的問題,隨後就有穩定版本上線。一個很現實的問題擺在了眼前:如何才能很好地跟蹤合并曆史。。

 

      有高手推薦了Git,我本人並不對反對使用Git,但是現在改用Git,必然會帶來更多的學習開銷。不過好像也沒有別的方法,就開始嘗試git。在Git的介紹中,提到了一個顯著的特性就是合并跟蹤,而最意外的收穫就是:SVN從1.5(2008年呀。再次鄙視一下自己的孤陋寡聞)開始就支援合并跟蹤了。那就繼續使用SVN了。

      先交代一下項目中使用SVN的情境:CentOS,Apache2 + Subversion

 

      到伺服器上看下當前SVN伺服器的版本(svn --version)是1.4,首先想到的就是升級:

      # yum update subversion

      還是真有福氣呀,現在Cent OS中的倉庫中已經有了1.6.11。

      然後在本地工作目錄使用TortoiseSVN更新,得到錯誤資訊:could not open the requested svn filesystem。在伺服器上查看httpd的error.log,發現了:(20014)Internal error: Expected FS format '2'; found format '4'。

      原來伺服器端程式升級完以後,倉庫也需要升級:

      # svnadmin upgrade myrespository

      倉庫升級完畢後,重新啟動httpd,再使用用TortoiseSVN更新時,又得到了另外的錯誤:Can't open file '/var/www/svn/myrepository/db/txn-current-lock': Permission denied。看起來是許可權有問題,不過myrepository的許可權都屬於apache.apache,好像是沒有問題。於是進入myrepository,查看個子目錄或者檔案的許可權,發現其中一個新檔案format屬於root.root。和其他目錄下的format進行對比,果真是這個檔案有問題,使用:

      # chown apache.apache format

進行修改。然後再重啟httpd服務。

      完成了以上步驟後,用戶端和伺服器端都可以正常使用了。

 

      這時,當完成一次合并後,再合并時就會發現已合并的版本變成了灰色。

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.