Мне кажется, что API поддерживает только выполнение команды 'svn' и ее различных параметров и переключателей. Проблема в том, что в Subversion используется другая исполняемая команда для получения правильного подробного номера версии, который называется 'svnversion'. Используя эту команду, я могу узнать, есть ли у меня смешанная версия, измененная версия и т. Д. Например:
[jim@localhost sb_rc1 993]$ svn info | grep Revision
Revision: 51159
[jim@localhost sb_rc1 994]$ svnversion
51159M
[jim@localhost sb_rc1 994]$
Угадай что? 'svn info' лжет мне здесь. Моя локальная копия изменена с оригинала 51159, поэтому svnversion сообщает номер версии с помеченной буквой М. Что если я экспериментирую с веткой, которая содержит смешанную версию? 'svnversion' может справиться с этим. 'svn info' не может. Хуже того, как показано выше, он предоставит вводящую в заблуждение и потенциально пагубную информацию, если, например, я основываюсь на выводе плохой информации.