2017-02-10 19 views
0

У меня есть подпапка репозитория SVN. Я хотел бы написать сценарий svn diff -r$OLDESTREVISION > diff && vim diff && rm diff, чтобы я мог использовать его как-то вроде difforig.Как вы можете проверить самый старый вариант подпапки в SVN?

OLDESTREVISION будет отличаться для каждой вложенной папки, в которой я хочу запустить это, поэтому я не могу просто жестко кодировать его. Я мог бы svn log и проанализировать вывод для самого старого столбца, но для этого потребуется ввод пароля и больше времени, чем я бы хотел.

svn help diff возвращает

-r [--revision] ARG  : ARG (some commands also take ARG1:ARG2 range) 
          A revision argument can be one of: 
           NUMBER  revision number 
           '{' DATE '}' revision at start of the date 
           'HEAD'  latest in repository 
           'BASE'  base rev of item's working copy 
           'COMMITTED' last commit at or before BASE 
           'PREV'  revision just before COMMITTED 

но svn diff -rBASE не работает как задумано.

ответ

1

Если вы хотите дифф первую и последнюю версию файла, вы можете использовать что-то вроде ая или Grep, чтобы извлечь первый номер версии и строить динамически ваши изменения для серии файлов:

svn diff -"$(svn log -r 1:HEAD --limit 1 ./gnu_regex/regex.c | ag -o 'r[0-9]+'):HEAD" ./gnu_regex/regex.c