Мне нужно собрать Perforce Change List details
для provided users
и с предоставленным date - (ie... from 01-06-22 to 25-12-22)
в формате csv.
Ожидаемый результат в csv для каждого списка изменений: -
Большое спасибо за чтение, и любая помощь очень ценится.
Используйте p4 changes
с флагом -u
, чтобы указать пользователя и даты, указанные в качестве аргумента диапазона изменений:
C:\Perforce\workshop>p4 changes -u samwise @2009/01/01,2010/01/01
Change 7479 on 2009/11/12 by samwise@samwise-silver 'Fix typo in last change. '
Change 7113 on 2009/01/22 by samwise@samwise-silver 'Make VSStoP4 html page a redire'
Чтобы переформатировать это во что-то похожее на CSV в CLI, вы можете использовать флаг -F
:
p4 -Ztag -F %user%,%change%,%client%,%desc% changes -u samwise @2009/01/01,2010/01/01
samwise,7479,samwise-silver,Fix typo in last change.
samwise,7113,samwise-silver,Make VSStoP4 html page a redire
Я бы лично использовал Python, а не Bash, чтобы довести это до желаемой формы:
import csv
from datetime import datetime
import sys
from P4 import P4
out = csv.writer(sys.stdout)
out.writerow([
"S.No",
"Perforce Username",
"Change List",
"Submitted Date",
"Workspace",
"Description"
])
my_users = {'samwise'}
with P4().connect() as p4:
for i, change in enumerate(p4.run_changes('@2009/01/01,2010/01/01'), 1):
if change['user'] not in my_users:
# This makes it easy to handle multiple users
continue
out.writerow([
i,
change['user'],
change['change'],
datetime.fromtimestamp(int(change['time'])).date(),
change['client'],
change['desc'].strip()
])
производит:
S.No,Perforce Username,Change List,Submitted Date,Workspace,Description
1,samwise,7479,2009-11-12,samwise-silver,Fix typo in last change.
2,samwise,7113,2009-01-22,samwise-silver,Make VSStoP4 html page a redire