2016-08-30 18 views
1

У меня есть сценарий, в котором у меня есть файл, и мне нужно знать, какая версия в исходном файле этого файла.SVN: способ определения версии путем сравнения содержимого файла или файла

У меня могут быть сотни изменений в конкретном файле и файл, соответствующий одному или нескольким из этих исправлений. Есть ли способ в черепахе, Cornerstone или через командную строку?

Извинения, если вопрос не самый ясный. Честно говоря, я не уверен, как фразовать то, что я ищу.

Я нашел аналогичный вопрос о git здесь;

GIT: determine revision based on a file

ответ

1

списывание немного прочь this answer, вот быстрый и грязный пакетный файл, который будет выполнять задание, если входной файл уже находится под управлением версиями.

@echo off 

set file=%1 
set temp_file="temp.file" 

if [%file%] == [] (
    echo Usage: "%0 <file>" 
    exit /b 
) 

for /F "tokens=1 delims=-r " %%R in ('"svn log -q %file%"') do (
    svn cat -r %%R %file% > %temp_file% 
    fc %temp_file% %file% > nul 
    if errorlevel 0 if not errorlevel 1 echo Matches revision r%%R 
    del /Q %temp_file% 
) 

Это получает журнал для файла заданного, и для каждой версии выполняет следующие действия:

  • выводит версию файла в этой ревизии во временный файл на диске
  • сравнивает сбрасывал пересмотр с входным файлом
  • , если они эквивалентны, fc наборов errorlevel к 0, поэтому проверьте, что и выход Matches revision r###
  • удаляет временный файл
0

Если вы должны использовать любые содержание вне VCS и определить соответствующие resisions и не добавлять эти данные в файл (текстовый файл) или хранилище (двоичные файлы) - это ваш провал (Git -boys must страдают и мучаются, потому что у них нет ключевых слов напрямую/но есть смазывание чистых фильтров и свойств ревизии /? /, но в SVN у вас есть эти возможности). Переосмыслите свой рабочий процесс и начните использовать Power!

В текущем состоянии (без ключевых слов, без метаданных) можно (для каждого файла)

  • стоимости любого доступные хэша для неверсированного
  • вычислить тот же хэш для этого файла для всех изменений о котором идет речь в репо
  • сравнить хэши и найти совпадение (ов)

 Смежные вопросы

  • Нет связанных вопросов^_^