Câu trả lời:
Tôi không biết bất kỳ bzr
lệnh nào thực hiện điều này, nhưng thực ra kịch bản rất dễ sử dụng API python Launchpad . Ví dụ:
#!/usr/bin/env python
import os, sys
from launchpadlib.launchpad import Launchpad
cachedir = os.path.expanduser("~/.launchpadlib/cache/")
launchpad = Launchpad.login_anonymously('find_branches',
'production',
cachedir)
try:
project = launchpad.projects[sys.argv[1]]
for b in project.getBranches():
if b.lifecycle_status not in ["Abandoned", "Merged"]:
print b.bzr_identity
except KeyError:
print "Project unknown... \nUsage: " + sys.argv[0] + " lp_project_name"
Vì vậy, với python find_branches.py deluge
chúng tôi nhận được:
lp:deluge
lp:~vcs-imports/deluge/trunk
lp:~mvoncken/deluge/ajax-template-dev
lp:~deluge-team/deluge/master
lp:~shaohao/deluge/0.9
lp:~damoxc/deluge/master
Bạn có thể chạy hoang dã với nó và làm những việc như sắp xếp theo date_created
, date_last_modified
hoặc tạo dựa trên kinh nghiệm của riêng bạn cho những gì các chi nhánh là thú vị cho bạn. Xem:
Bazaar là một hệ thống kiểm soát phiên bản không hơn thế, dự án hoàn toàn tách biệt với Launchpad .
Có thể phân tích trực tiếp trang HTML của nhánh dự án hoặc nguồn cấp tin tức Atom của nó.
Khai báo hàm shell:
lslp() {
wget -q -O - http://feeds.launchpad.net/$1/branches.atom | xml2 | grep "/feed/entry/title=" | cut -c 19-;
}
wget -q -O - http://feeds.launchpad.net/projectname/branches.atom
lấy nguồn cấp tin tức chi nhánh (Atom xml)
xml2
chuyển đổi tài liệu XML sang định dạng phẳng
grep "/feed/entry/title="
lọc ra các dòng có "/ feed / entry / title =", các nút XML có chứa tên nhánh
cut -c 19-
xóa "/ feed / entry / title =" khỏi dòng kết quả.
Thí dụ:
$ lslp deluge
lp:deluge
lp:~vcs-imports/deluge/trunk
lp:~damoxc/deluge/master
lp:~deluge-team/deluge/master
lp:~shaohao/deluge/0.9
lp:~mvoncken/deluge/ajax-template-dev