Tag: version

  • 在 Python 中偵測執行環境版本

    一直很想好好學 Python。不過這事已經放在心上兩年了吧 最近這陣子工作比較空閒, 才開始摸索 Python 3 的旅程。 在 setup 開始環境的時候有點好奇自己在 vscode 裡面跑 task 時是用 Mac 內建的 2.7 還是我用 Homebrew 安裝的 3.6,才有了這個題目。 一樣是來自 Stack Overflow 的解答,稍做筆記。 第一種方法如下 import platform print(platform.python_version()) 輸出的結果 3.6.3 第二種方法如下 import sys print(sys.version_info) print(sys.version_info[0]) # 輸出大版號 print(sys.version_info[1]) # 輸出次版號 print(sys.version_info[2]) # 輸出微版號 輸出的結果 sys.version_info(major=3, minor=6, micro=4, releaselevel=’final’, serial=0)  

  • Git: Archive modified files only

    專案上線後通常還會視需求追加功能或修正臭蟲,公司的政策是每次的版更都只佈署變動過的檔案,以減少不必要的風險。 不過每次版更,都要從版本紀錄裡把修改過的檔案一支一支挑出來,打包成 ZIP 檔寄給 MIS。這個步驟非常消耗腦細胞,一次佈署可能動輒數十支檔案,一支一支挑出來非常麻煩,還有可能漏失檔案。 科技始終來自於人性,在這樣手動更新了幾次後就受不了了,來研究一下可行的方案。 Git 有 archive 指令可以打包檔案,但看來只能打包一整個版本的全部檔案 (?)。 另外有 git diff 指令可以查詢特定版本之間的差異。跟 Mac OS bash 的指令結合一下就可以了。 zip <filename>`git diff –name-only 版號1 版號2` filename 就是要輸出的檔名,我通常會用 PROJECT_NAME_patch_revXXXXX.zip 的方式命名,讓 mis 能馬上看懂這是什麼專案 (PROJECT_NAME) 的第幾個版本 (revXXXXX) 以什麼型式封裝 (patch) 的檔案,如果是整個專案的檔案而非變動檔的話,用 full 的字樣代替。 所以指令長這個樣子: zip qodingus_patch_rev23c5ae.zip `git diff -name-only HEAD df923h` 版號可以用 tag 名稱代替。接著我只要把這個熱騰騰的 zip 傳送給 mis,我的工作就結束了,輕鬆愉快。

  • SVN: How to get list of files changed between two revisions

    公司在更新客戶的程式碼時慣例上是只傳送有變動的程式碼。 老實說我覺得還挺麻煩的,不是每個 SVN Client 都有提供這方面的功能,目前我還只會手動處理,希望能有更方便的方法匯出特定版本區間的變動檔案。 列出 x 與 y 兩個版本區間的變動檔案列表 svn diff -r x:y –summarize 打包變動過的檔案 zip patch_vXXX.zip `svn diff -r x:y –summarize . | grep . | awk ‘{print $2}’ | grep -E -v ‘^\.$’` 列出資料夾裡的所有檔案 find . -type f 計算檔案數量 find . -type f | wc -l