2012-05-11 30 views

Trả lời

7

Nếu bạn có thể lấy phiên bản từ lệnh trình bao, bạn có thể gán nó cho biến có chức năng qqake $$system.

Vì vậy, ví lanh lợi, bạn có thể thử:

# if the version tag is <major version>.<minor version> 
VERSION = $$system(hg parents --template '{latesttag}.{latesttagdistance}') 
# or if you fill all 3 positions manually: <major>.<minor>.<patchset> 
VERSION = $$system(hg parents --template '{latesttag}') 

Hoặc nếu bạn đang sử dụng phiên bản số địa phương như các phiên bản:

VERSION = $$system(hg parents --template '{rev}') 

mà sẽ chỉ in số lượng rằng nếu không có sự thay đổi không bị giam chỉ báo ('+').

+0

Cảm ơn. Nhưng tồn tại giải pháp dễ dàng hơn. Bạn có thể sử dụng $$ system ($$ (PWD)/hg id -n). Trong trường hợp này sẽ trả về số phiên bản của kho lưu trữ. Nhưng vấn đề là các mercurial có thể trả về số với ký hiệu "+". Đây là ký tự không hợp lệ trong số phiên bản. – Milovidov

+0

@Milovidov Bạn có thể loại bỏ '+' với sự trợ giúp của 'replace()': 'VERSION = $$ thay thế (VERSION," + "," ")' – Bill

+0

@Bill, dont'work. Ký hiệu "+" sẽ không được thay thế. – Milovidov

Các vấn đề liên quan