3

在 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 4sort-of 按变更列表编号对它们进行分组:

//path1/file1 1 add  1234 text
//path2/file2 2 edit 1234 text
//path2/file3 3 edit 5678 xbinary

但我想将每个更改列表编号和描述视为标题。

4

2 回答 2

4

最简单的方法是这样的:

p4 changes -s pending -c $P4CLIENT | awk '{print $2}' | p4 -x - describe -s

这列出了您当前客户端(又名工作区)和调用的所有未决更改p4 describe -s

于 2013-06-10T10:48:12.723 回答
3

这是我在 .bashrc 中创建 p4pending 别名以实现类似目标的一段代码。我使用“p4 changes”为每个更改列表生成标题,并使用“p4 opens -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'  
于 2015-08-21T07:58:47.677 回答