在Cygwin bash中,我如何列出当前工作空间中打开的所有文件,按挂起的更改列表分组(忽略空或搁置的更改列表)?
例如,如果我在以下更改列表中打开了以下文件,我希望以这种(或类似的)格式显示它:
1234: Changelist 1234's description
//path1/file1 1 add text
//path2/file2 2 edit text
5678: Changelist 5678's description
//path2/file3 3 edit xbinary
p4 opened|sed "s/([-#()]|change)/ /g"|column -t|sort -k 4
sort-按变更列表编号对它们进行分组:
//path1/file1 1 add 1234 text
//path2/file2 2 edit 1234 text
//path2/file3 3 edit 5678 xbinary
但我希望看到每个更改列表编号和描述作为标题
最简单的方法是:
p4 changes -s pending -c $P4CLIENT | awk '{print $2}' | p4 -x - describe -s
列出当前客户端(即工作区)的所有未决更改并调用p4 describe -s
。
这是我在.bashrc中创建p4pending别名以实现类似目标的一段代码。我使用'p4 changes'为每个更改列表生成标题,'p4 opened -c'列出在更改列表中打开的文件。这给了我几乎相同的结果,我得到的P4V。
__desc_chg()
{
echo "$1"
num=`echo $1 | awk '{print $2}'`
p4 opened -c $num 2>&1 | awk '{print " "$1,$2,$3,$6}'
echo
}
__p4pending()
{
__desc_chg "Change default by $P4USER@$P4CLIENT *pending*"
p4 changes -u $P4USER -c $P4CLIENT -s pending | sort -k2 -n | while read -r l; do __desc_chg "$l"; done
}
alias p4pending='__p4pending'