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 ('+').
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
@Milovidov Bạn có thể loại bỏ '+' với sự trợ giúp của 'replace()': 'VERSION = $$ thay thế (VERSION," + "," ")' – Bill
@Bill, dont'work. Ký hiệu "+" sẽ không được thay thế. – Milovidov