`svn st` для корневого каталога svn - PullRequest
0 голосов
/ 08 марта 2011

Когда я нахожусь в подкаталоге проекта subversion, такие команды, как svn st, будут работать только в текущем рабочем каталоге.Например:

$ svn co svn://example.com/trunk example
$ cd example
$ vi #editing files
$ svn st
M    base.c
M    s/inner.c
$ cd s
$ svn st
M    inner.c

Я хочу, чтобы, как и в git или hg, я мог видеть состояние всего извлеченного проекта.Я не нашел ни одной опции, похожей на hg -C, так что я смогу сделать:

$ svn -C ../
M    base.c
M    s/inner.c

Ответы [ 2 ]

0 голосов
/ 08 марта 2011

Простой обходной путь - определить $BASE в качестве корневого каталога проверки, а затем использовать svn st $BASE.Это не сработает, когда вы работаете с двумя подкаталогами Subversion.

Я придумал следующий скрипт bash, чтобы сделать более или менее то, что я искал, обратите внимание на галочки вокруг pwd:

$ cat svnb
#!/bin/sh
PREVDIR=`pwd`
while true; do
    if [ ! -d .svn ]; then break; fi
    PREVDIR=`pwd`
    cd ..
    if [ "`pwd`" == "$PREVDIR" ]; then break; fi
done
cd "$PREVDIR"
if [ -d .svn ]; then svn $@;
else echo Not in an version controlled directory
fi

Пример использования:

$ cd example/s
$ svnb st
M    base.c
M    s/inner.c
$ cd / && svnb st
Not in an version controlled directory
0 голосов
/ 08 марта 2011

SVN не имеет понятия о проекте. В нем есть каталоги и файлы, и вы организуете свой проект так, как хотите в репозитории. Но SVN не знает, что конкретный каталог является корнем проекта.

Таким образом, вы должны быть в правильном каталоге (или передать его в качестве аргумента svn st), чтобы иметь все изменения проекта.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...