我曾經參與過類似的問題。一個例子:How can I get the svn revision number in PHP?如何在我的網站上獲得Bazaar版本的文件?
但是今天我正在處理一個用BZR管理的項目。我需要獲取特定文件的bazaar版本,並在我們的網站上發佈該數字,以便在文件更新時自動更新。
該網站全部都是Python,所以我可以在後臺閱讀文件,但如果可以的話,我寧願選擇更爲被動的方法。
我曾經參與過類似的問題。一個例子:How can I get the svn revision number in PHP?如何在我的網站上獲得Bazaar版本的文件?
但是今天我正在處理一個用BZR管理的項目。我需要獲取特定文件的bazaar版本,並在我們的網站上發佈該數字,以便在文件更新時自動更新。
該網站全部都是Python,所以我可以在後臺閱讀文件,但如果可以的話,我寧願選擇更爲被動的方法。
一種方法是有一個腳本,推到你的網站,version.py這個腳本的情況下更新或類似的東西:
# update version
echo "VERSION = \"$(bzr revno)\"" > version.py
# push to website
rsync ...
# tag
bzr tag --force deployed-version
如果您需要獲得其中文件被修改的最新版本,你可以使用DOIT以下命令:
bzr log -l1 --line <file> | cut -f1 -d:
在Python:
from bzrlib.branch import Branch
b = Branch.open(location_of_your_branch)
b.lock_read()
try:
# Retrieve the contents of the last revision
t = b.basis_tree()
revid = t.get_file_revision(t.path2id(your_filename))
print ".".join([str(x) for x in b.revision_id_to_dotted_revno(revid)])
finally:
b.unlock()
的問題,我與所有的t發現他的bzr命令是他們只顯示最新的轉速數字。例如,如果有一個文件我在init中添加它之後沒有觸及,如果我運行'bzr revno file',則返回100'',則返回'101'。我想在這個例子中修改最後一個文件:'1'。 – Oli
bzr revno顯示整個樹的最後修訂版號,而不是單個文件的版本號。 – jelmer