В git
есть нотация каретки ^
для обозначения того, что находится перед ним.
В командной строке tf.exe я должен указать 2 номера набора изменений, чтобы файл diff. Меня интересует только разница с предыдущим набором изменений, поэтому мне нравится, что приведенная ниже работа работает, но она не работает:
tf diff path/to/file.cpp /version:^69~69
Обоснование состоит в том, что я не хочу хлопот вырезать, вставлять и искать предыдущий номер набора изменений.
Поскольку казалось, что TFS tf.exe его не поддерживает, поэтому ниже я предлагаю альтернативное решение, которое работает в оболочке cygwin
. Вы должны сначала создать символическую ссылку tf
, где находится ваш tf.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 действительно не может этого сделать.
Нет такой удачи. Может быть, вы могли бы написать сценарий ....