<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    最近有項目需要多人在異地協同開發,用什么來做配置管理呢?
    當然,分布式的版本控制系統是首選,目前比較流行的有兩個,Git和Mercurial(hg),為了比較決策,在網上搜了下,在Windows下開發的話,覺得hg更方便點,尤其是有tortoiseHG,異地共享更簡單,當然,是指針對人數不多的團隊,不是太大的項目,沒有考慮性能問題。否則,可能還是Git有優勢,想想看Linus的作品,目前用來管理Linux Kernel的開發,自然就明白了。

    當然,mercurial也不是不行,python的開發就是用mercurial在管理,具體誰更好就不討論了,關鍵是對我而言,哪個更加好用,簡便才是硬道理!

    覺得最方便的就是在于TortoiseHG集成了WEB Server,這樣,在同步的時候,只要簡單地從右鍵菜單上啟動web Server,就可以把repository 發布出來,的確夠方便吧?

    show 下圖片:

    Start HG Web Server

    啟動后是這樣的:

    當然,在啟動前,你還可以把相關的參數配置一下,仔細研究下,里面的東西不少。


    ps: 今天打開看了下,閱讀量一夜之間就有了不少,謝謝大家的關注,想想應該補充下內容,以對得起大家的時間。

    如果,你的機器在防火墻后,或者是沒有公共的域名,使用WEB Serve的方式就有些不方便。當然,有不少的免費域名可以通過3322.org或者花生殼申請賬號,并通過客戶端使用。配置工作稍微麻煩點,這里就不寫了,有興趣的朋友可以參考下其他網上的說明。

    在這里要補充的是一個利用郵件來共享repository的途徑。

    還是看圖說話,寫個簡要的梗概,具體的細節部分需要大家親自試一下才能體會得到。
    1. 配置好郵箱設置


    2. 發送變更

    注:郵件中也可以發送patch,只是用文件附在郵件內容中,需要手工再處理下,不推薦。
    如果只是在交流溝通時用倒也方便,僅是看看,不實際合并時比較好。

    3. 協作者從郵件附件中獲得:


    相對而言,Git在windows上的GUI就簡陋了些,尤其是沒有簡便的web發布功能令它遜色好多---對我這個實用的懶人而言,呵呵。盡管我用Git比HG早:)
    Git GUI
    相對于這個GUI界面而言,個人覺得bash的命令行界面還更靈活些,在Linux平臺下,一些插件也使工作更加輕松和有效率。

    附圖是MinGW下的Git Bash使用界面,包含有命令自動完成,幫助使用等,也還算比較方便。




    附: 這是另外一個人的意見,英文的,就不翻譯了。 

    當然,他也有他的道理----兼聽則明,自己根據實際需要選擇合適的才是最重要的,畢竟,有助于輕松完成項目才是最重要的。

    Git vs Mercurial - Why I chose git

    Background and Our Needs

    I first heard about distributed version control systems from Allan Odgaard on the TextMate blog. We’ve been working for about a year on Unison, which is a web application to develop online training. Our development has been so fast-paced at times we’ve been forced to push out releases more quickly than we could test them thoroughly. More than once we’ve needed to push out a less-than-stable feature for a high-profile client. We would later realize something wrong with the feature, but there was no way to go back.Branching and reverting changes in version control software is supposed to allow you to do these things, but both are so annoying in SVN that we never actually used either. We only kept a branch around when we wanted to make a release and continue development in the trunk. We would never have dared roll back any commits

    Enter Distributed Version Control

    Distributed Version Control promised to solve these problems for us. We would be able to branch as often as we liked, which would then allow us to keep branches around for longer without worrying about merging them later.

    I first looked at git, then tried mercurial (hg) for awhile, then finally decided on git. I’m going to try to provide an unbiased review of some of their strengths and weaknesses.

    Realize that both tools are good at merging, both have strong user communities, and they are very similar choices. I found good comparisons hard to come by.

    Mercurial

    Mercurial has several advantages over git.
    Excellent Documentation: The hgbook helped me to understand the concepts
    Cleaner Commands: The interface requires fewer options and flags
    Intuitive Commands: The names they picked for reverting changes make more sense
    Windows Support: They have a full windows client, although using it to make lots of branches would get crazy fast
    It also has some disadvantages
    “Named Branches” suck: They added this feature as an afterthought. The way everyone branches is by “cloning” a repository. So, if you want to work in a new branch, you have to make a brand new copy of everything. The implementation of named branches simply isn’t workable
    Rewriting History is difficult: hg doesn’t have the features git does here

    Git

    Git has its own strengths
    Branching is Supreme: This is a big one. Git lets you make new branches at any time, and lets you switch back and forth between them in one working copy.
    Remote Branches: Git can send and receive changes from several different public repositories. This is useful if you need to publish more than one branch so others can download your changes.
    Merging and Rewriting History: You can squash several commits together into one big commit when you merge, getting rid of the useless messages. You can easily pull a new version of the code you’re working on into your experimental branches.
    Disadvantages
    Slightly more confusing: There are more commands by default, and the reverting commands are hard to keep straight at first

    The Wrapup

    The interface to Mercurial is easier, and I like their mainstream approach, but git is simply far better with anything advanced. I don’t feel that Mercurial can handle making branches for each feature you are developing, and doesn’t do a good job of pushing/pulling changes from public repositories.

    In the end, we picked Git. I’m going to revisit mercurial in another year and see if they’ve finished adding a few more necessary features. I wanted a DVCS in the first place so I could branch like crazy, and Mercurial really doesn’t support it well enough.

    Posted in Environs.

    其實,從DVCS本身來講,我也傾向于Git,它的功能更加完善,可能有些命令不是那么直接,不太容易理解,也比較多。但考慮到一個眾多志愿者參與的項目,像Linux Kernel這樣的集市式的開發項目,Git作為一個目前來講近乎理想的方案的確為Linux的快速發展起到了很大的作用,并且,它是Linus在長期的BitKeeper使用經驗的基礎上開發的,無論從需求把握的角度,還是從它的性能方面的設計考慮都有很多過人之處。

    就我本人的經驗而言,從開始做軟件開發到現在,也有將近10個年頭了,經歷過幾個公司,也參與過不少的大的項目,使用過幾種商業的、或是開源的VCS,不少是被動接受的,后來自己選擇,決策用什么,算是有些經驗,但總體來講,這些VCS是各有千秋,適用才是最好的。

    從接觸的先后順序來說,依次使用過VSS、CVS、ClearCase、Perforce、SVN、Git,前段時間才聽說HG,覺得不錯,現在為了新的項目,臨時學了下,總體來講,一般在局域網環境中使用的話,我還是喜歡CVS,畢竟,這是個大家都熟悉的工具,簡單易用,也不必再為了這個工具來專門花時間來培訓團隊人員,否則在使用過程造成的麻煩可能會帶來些不必要的開銷。 但在異地開發、或者是項目比較大,各部分難以齊頭并進的時候,DVCS系統才是更好的選擇,另外一種應該選用DVCS的情況是,當項目需要嚴格的對外發布版本控制時,選擇DVCS可以讓各小組內部先保證小范圍的集成順利進行,這樣可以避免在用集中式版本控制系統時,在deadline前,出現大家同時提交,沖突不斷,拼命加班的情形。

    如果,團隊成員學習能力都比較強,建議在局域網內開發時,也選擇用Git這樣的DVCS,畢竟,個人習慣不一樣,每個人的開發速度也不同,Git強大的分支管理和歷史記錄回溯功能,可以為項目進展提供強大的靈活性,也肯定會提高整體的開發效率。

    相信,以后的版本管理中,類似Git的工具將會成為主流,Git也會變得更加簡便易用的。




    Feedback

    # re: Git Vs Mercurial hg? 異地協同開發,分布式SCM方案選擇!  回復  更多評論   

    2009-04-29 05:35 by yuz estetigi
    thank you very good site...

    # re: Git Vs Mercurial hg? 異地協同開發,分布式SCM方案選擇!  回復  更多評論   

    2009-04-29 05:36 by yuz estetigi
    thank you very good site

    # re: Git Vs Mercurial hg? 異地協同開發,分布式SCM方案選擇!  回復  更多評論   

    2009-05-06 07:31 by bwlee
    有個朋友看了我的這篇筆記后,給我提了點意見,在這兒回復一下,順便作點簡單的說明:

    他的第一個意見是,這東西寫得不太清楚,比如HG跟Mercurial是什么關系沒說清楚,我想,這個問題應該這樣來看,博客是自我的筆記,大家可以互相參考下,能帶來點思路的啟發,但不是教科書,官網上這類東西很多。再說了,寫博客也沒稿費的,呵呵

    第二個意思是方案的選擇理由,以及相關的異地開發并不只是要解決這一個軟件配置管理就夠了,這個倒是有點道理,的確,軟件配置管理只是一個基本的問題,還有需求管理,開發、團隊間的交流討論,成員工作量的考核等,都是影響項目成敗的重要問題。 但這一展開就太大了,沒準備寫成一本書:-)。
    不過既然提到了這些,順便把我的想法和做法大概列一下,歡迎批評指正。

    需求管理的工具很多,但工具之間必須配合好,才容易起到1+1>2的效果,所謂管理出效益,也是這個道理,簡單的把人頭堆積起來更是不能直接加速項目進程的,甚至可能起反效果。 比如ClearRequest和ClearCase之間就是個比較好的配合,但關鍵點是太貴了,這家伙是在大公司呆慣了,資源無限,從來不知道體諒下我等窮人的難處,呵呵。不過開源免費的東西也有,像Trac這個就是跟SVN結合得比較好的工具。但最終還是要有個中心的配置服務器才方便使用,我這個輕量級的方案(其實是超輕量級的,呵呵),要用這個的話,也得搞個服務器,弄上Apache+SVN+Trac,或者是用比較流行的Bugzilla,但我對這些都有點不太感冒,說實話,在我的理解中,這些對故障跟蹤的系統用在需求管理上,總還是有點不自在,后期維護用才差不多。
    我更傾向于功能點的劃分,在提交時就是根據功能點來做,每個功能點提交一個變更集,其他的東西,可以在DVCS內部作分支來解決,也就是在每個人的master分支上作團隊同步,個人工作如果習慣上需要頻繁修改提交,可以在分支上進行,先自行合并到master上,然后再同步。
    這個只允許按功能點提交變更的方法以前在用CVS時試過,效果還不錯,強調寫好每次的注釋,嚴格按功能點來做,這樣,我在后期用statCVS統計的時候,也能比較清晰地弄明白各成員的工作量,方便項目總結時提供相關圖表給大家,而不是簡單憑印象來評價團隊的工作,造成團隊部分成員的情緒問題。Mercurial HG和Git目前都沒有這類的工具,是個缺憾,但應該很快就會有的,這兩類工具的變更集和日志更完善,也支持外部插件,做個統計分析的工具成插件都可以。
    至于團隊間的交流也好辦,大家約好時間,定下會議議程,開個網絡視頻會議就搞掂了,至于工具,NetMeeting, MSN,還有skype什么的一大堆,關鍵是如何用好,我傾向于會議主要討論計劃及通報進展,影響全體的技術問題在會上討論下,否則,技術問題還是在成員間自由交流比較合適,至于,技術的共享和培訓,在前期做下相關技術的培訓,后期團隊成員的項目總結上作正式的交流比較好,項目進行過程中還是不搞形式上太正式的技術研討,因為容易流于形式,也不會有太深入的理解,除非是里程碑點出現了嚴重的偏差需要糾正,否則還是私下交流點實用的經驗更合適。

    # re: Git Vs Mercurial hg? 異地協同開發,分布式SCM方案選擇!  回復  更多評論   

    2009-11-24 19:10 by saç ekimi
    very useful informations thanks for sharing.They are too neccessary for me. I bookmarked.

    posts - 44, comments - 43, trackbacks - 0, articles - 5

    Copyright © 小李飛刀

    涉足江湖,廣交朋友
    尋找有共同興趣愛好者一起開創掌上移動應用!


    歡迎光臨!您是第 hit counter 位訪客。
    主站蜘蛛池模板: 毛片亚洲AV无码精品国产午夜| 亚洲视频精品在线观看| 亚洲精品自偷自拍无码| 亚洲免费视频网址| 亚洲精品日韩专区silk| 51视频精品全部免费最新| 亚洲自偷自拍另类12p| 91香蕉国产线在线观看免费| 亚洲av日韩av高潮潮喷无码 | 亚洲精品无码久久久| 黄色一级视频免费| 狠狠亚洲狠狠欧洲2019| 成年女人A毛片免费视频| 亚洲精品无码久久久久去q | 午夜国产羞羞视频免费网站| 免费大片黄在线观看| 综合亚洲伊人午夜网| 99视频免费播放| 一区二区亚洲精品精华液| 日本免费观看网站| 久久久久久久久久免免费精品| 久久亚洲国产精品一区二区| 19禁啪啪无遮挡免费网站| 亚洲国产AV一区二区三区四区| 亚洲伊人久久综合影院| 日韩电影免费在线观看中文字幕 | 中文字幕亚洲精品资源网| 免费在线观看视频网站| 337P日本欧洲亚洲大胆艺术图| 国产a v无码专区亚洲av| 人妻丰满熟妇无码区免费| 亚洲AV色欲色欲WWW| 亚洲香蕉网久久综合影视| 免费看黄视频网站| 免费人成大片在线观看播放电影| 亚洲精品乱码久久久久久按摩| 99免费观看视频| 免费看一级一级人妻片| 亚洲黄网站wwwwww| 亚洲AⅤ视频一区二区三区| 日韩精品人妻系列无码专区免费 |