如何在 TFS tf.exe 命令行中查看变更集中文件与其先前变更集的差异?

  • 本文关键字:文件 集中 命令行 exe tf TFS git tf-cli
  • 更新时间 :
  • 英文 :


git中,有^插入符号来表示它前面的概念。

在 tf.exe 命令行中,我必须输入 2 个变更集编号才能到 a diff。我只对与以前的变更集的差异感兴趣,所以我喜欢下面的工作,但它不起作用:

tf diff path/to/file.cpp /version:^69~69

理由是,我不想麻烦剪切、粘贴和搜索以前的变更集编号是什么。

由于看起来 TFS tf.exe 不支持它,因此我在下面提供了一个在 shell 中工作的替代解决方案cygwin。您必须首先创建一个符号链接tftf.exe的位置。并在.bashrc中添加以下功能:

tf_diff () {
[ $# -ne 2 ] && return
local TLINES=$(tput lines)
local ARTIFACT=$1
local CHANGESET=$2
local $PREVIOUS=$(tf history . /recursive | sed -n "/$CHANGESET/{n;p;}" | cut -d' ' -f1)
local TMPFILE=$(mktemp --suffix=.diff)
rm -f $TMPFILE
tf diff $ARTIFACT /version:$PREVIOUS~$CHANGESET > $TMPFILE;
if [ $(wc -l < $TMPFILE) -gt $TLINES ]; then
vim $TMPFILE
else
cat $TMPFILE
fi
rm -f $TMPFILE
}

您可以选择将以前的历史记录保存到文件中,以便只有在变更集不在文件中时才能远程查询 TFS 历史记录。

一旦我确定确实 TFS tf.exe 做不到,我就会接受这个答案。

最新更新