Как определить, является ли каталог частью рабочей копии Subversion? - PullRequest
5 голосов
/ 24 августа 2011

У меня есть скрипт, который копирует некоторые файлы в проект. Такой проект обычно является рабочей копией Subversion, но не всегда. Если это рабочая копия, я хочу добавить файлы в Subversion автоматически. Но как мне узнать, что каталог является частью рабочей копии Subversion? До сих пор я проверял наличие подпапки .svn, но это не работает с Subversion 1.7. Мне просто нужно знать, сработает ли svn add files..., другие данные не нужно извлекать.

Ответы [ 4 ]

4 голосов
/ 24 августа 2011

Просто запустите svn status.Вы получите следующее сообщение, если это не рабочая копия:

svn: warning: '.' is not a working copy

Редактировать: Если вас беспокоит рекурсивный характер svn status, вы можете ограничитьглубина (в зависимости от версии клиента) либо

svn status --depth=empty

, либо

svn status --non-recusive

(последний формат указан как устаревший в последних версияхклиент).

2 голосов
/ 24 августа 2011

Вы можете использовать свойство svn info и затем pipe, чтобы получить URL следующим образом:

svn info -R | FIND "URL:" >urlText

затем загрузите этот вывод в другую переменную, и вы можете работать с ним как:

set /p urlRepo= <urlText
del urlText
0 голосов
/ 22 октября 2015

Более простая версия этого решения:

WCBRANCH=`svn info ${WCDIR} 2> /dev/null | wc -l`
if [ ${WCBRANCH} -eq 0 ]
 then
   echo "Error: directory ${WCDIR} exists and is not part of a working copy."
   exit 1
 fi
0 голосов
/ 24 августа 2011

Вы делаете сценарий так ... решение в форме сценария:)

 REPO="http://repository_url"
 WCDIR="dir_you_are_checking"
 WCBRANCH=`svn info ${WCDIR} 2> /dev/null | grep "^URL:" | cut -d" " -f2 | sed s,${REPO}/,,`
 if [ -z "${WCBRANCH}" ]
 then
   echo "Error: directory ${WCDIR} exists and is not part of a working copy."
   exit 1
 fi
 # WCBRANCH will contain the WCDIR path inside repository
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...