Как просмотреть разницу файла в наборе изменений по сравнению с его предыдущим набором изменений в командной строке tfs tf.exe?

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

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

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

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

Нет такой удачи. Может быть, вы могли бы написать сценарий ....

jessehouwing 13.09.2018 21:15
0
1
60
1

Ответы 1

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

Другие вопросы по теме