Как просмотреть diff файла в наборе изменений относительно его предыдущего набора изменений в командной строке TFS tf.exe? - PullRequest
0 голосов
/ 13 сентября 2018

В git есть обозначение каретки ^, чтобы указать, что находится перед ним.

В командной строке tf.exe я должен поместить 2 номера набора изменений для сравнения. Меня интересует только сравнение с предыдущим набором изменений, поэтому мне нравится, что ниже работает, но оно не работает:

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

Обоснование в том, что я не хочу хлопот по вырезанию, вставке и поиску предыдущего номера набора изменений.

1 Ответ

0 голосов
/ 14 сентября 2018

Поскольку похоже, что 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 действительно не сможет этого сделать.

...