• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            HG 我就不做說明了。用過的人就知道了。他是一個分布式版本管理工具,具體使用方法網(wǎng)上有很多。我這里介紹的是,如果在提交版本的時候動態(tài)修改我程序的版本號。
            這里我以VS2008 中的C#項目為列介紹一下如果在程序提交的時候,讓HG來動態(tài)修改程序的版本號。

            C#中版本號主要是由項目中AssemblyInfo.cs 文件中的
            [assembly: AssemblyVersion("3.0.0.107)]
            [assembly: AssemblyFileVersion("3.0.0.107")]
            這兩據(jù)話來控制的。我們只需要在在HG提交版本的時候動態(tài)修改這兩句話就可以了。更準確的說是將107修改就可以了。
            首先我們需要建立一個版本文件的模板,在每回提交的時候通過模板來生產(chǎn)對應的版本控制文件。
            我們以新建一個叫TemplateAssemblyInfo的文件,文件內(nèi)容與VS編譯器生成的AssemblyInfo.cs一模一樣,不過需要將文件中的
            [assembly: AssemblyVersion("3.0.0.107)] 改為 assembly: AssemblyVersion("3.0.0.MyVersion)]
            [assembly: AssemblyFileVersion("3.0.0.107")] 改為 [assembly: AssemblyFileVersion("3.0.0.MyVersion")]
            現(xiàn)在模板文件建立好了
            現(xiàn)在我們修改.hg   目錄下的hgrc文件,
            在文件末尾添加一下兩句換
            [hooks]
            commit = python:.hg/commit_version.py:commit_version
            在文件提交的時候就會執(zhí)行commit_version.py 中的commit_version函數(shù)

            然后我們在目錄.hg中新建文件commit_version.py ,文件如下所示
            #!/usr/bin/env python
            #
             coding:utf-8

            """
            Created by ben on 2010/11/24 .
            Copyright (c) 2010 http://sa3.org All rights reserved. 
            """
            import shutil  
            import os  
            import os.path 
            import re
            PROJECT_PATH 
            = os.path.realpath(os.path.dirname(__file__))
            FILELISTSOURCE 
            = ['./LiveSwitch3/TemplateAssemblyInfo.cs','./LiveSwitch4/TemplateAssemblyInfo.cs']
            VERSION_STR 
            = 'MyVersion'
            TEMPLATE_STR
            ='Template'
            TARGETDIR_STR
            ='/Properties'
            TARGETFILE_STR
            ='/AssemblyInfo.cs'

            def commit_version(ui,repo,**kwargs):
                
                
            for filename in FILELISTSOURCE:
                    fOri 
            = open(filename, 'r+')
                    data 
            = fOri.read()
                    
                    strinfo 
            = re.compile(VERSION_STR)
                    vesion 
            = "%s" %(len(repo) - 1)
                    b 
            = strinfo.sub(vesion,data)
                    fOri.close() 
                    
                    
                    
                    nEndIndex 
            =  filename.rindex('/')
                    
                    fileTargetDir 
            = filename[0:nEndIndex]+TARGETDIR_STR
                    fileTargetFile 
            = fileTargetDir+TARGETFILE_STR
                    
            print fileTargetDir
                    
            print fileTargetFile
                    
                    
            if os.path.isfile(fileTargetFile):
                        os.remove(fileTargetFile)
                    
                    
            if not os.path.isdir(fileTargetDir) :
                        os.mkdir(fileTargetDir)
                    
                    fNew 
            = open(fileTargetFile, 'w+')
                    
            #print b
                    fNew.write(b)
                    fNew.close()

            if __name__=='__main__':
                
            pass

            然后我們可以提交代碼試一下,看看AssemblyInfo.cs中的版本號是否與HG中的版本號相同了


            posted on 2012-03-20 12:02 arrow8209 閱讀(1455) 評論(0)  編輯 收藏 引用

            統(tǒng)計

            亚洲精品蜜桃久久久久久| 欧美与黑人午夜性猛交久久久 | 女人高潮久久久叫人喷水| 久久婷婷色香五月综合激情| 久久精品国产久精国产一老狼| 亚洲国产精品高清久久久| 国产成人精品久久亚洲| 久久久亚洲裙底偷窥综合| 久久久精品免费国产四虎| 久久青青草原精品国产不卡| 精品国产乱码久久久久久郑州公司| 国产精品久久久久一区二区三区 | 久久人妻少妇嫩草AV无码专区| 久久久久久久综合日本亚洲| 三级三级久久三级久久 | 国产日产久久高清欧美一区| 欧美国产成人久久精品| 狠狠色丁香婷婷综合久久来来去| 色妞色综合久久夜夜| 亚洲欧美成人久久综合中文网| 免费精品99久久国产综合精品| 日韩人妻无码精品久久久不卡 | 少妇被又大又粗又爽毛片久久黑人 | 亚洲中文字幕无码久久精品1 | 久久亚洲精品国产精品| 精品久久久中文字幕人妻| 久久婷婷是五月综合色狠狠| 久久久久99精品成人片三人毛片| 久久国产精品-国产精品| 久久久久无码精品国产不卡| 欧洲成人午夜精品无码区久久 | 久久最近最新中文字幕大全 | 99久久精品费精品国产一区二区 | 久久久久亚洲精品无码蜜桃| 亚洲va久久久噜噜噜久久狠狠| 久久久这里只有精品加勒比| 日本WV一本一道久久香蕉| 亚洲天堂久久久| 久久综合狠狠综合久久| 99国产精品久久| 久久人人爽人爽人人爽av|