Подтвердить что ты не робот

Как я могу найти корневую папку данной рабочей копии подрывной работы

Довольно часто я сижу посреди рабочей копии подрывной работы, и я хочу сделать быстрый svn status, чтобы узнать, какие изменения я внес с момента последней проверки. Однако svn status работает только с текущей папкой и дочерними. (Аналогично и для svn up)

Я бы хотел быстро перейти в корневую папку рабочей копии subversion, чтобы я мог запустить svn status и увидеть все измененные файлы, возможно, проверку или обновление, а затем вернуться к работе где я был раньше.

4b9b3361

Ответ 1

Вот мой первый ответ: я написал немного bash script под названием svnbase:

#!/bin/bash -u

# this command outputs the top-most parent of the current folder that is still 
# under svn revision control to standard out

# if the current folder is not under svn revision control, nothing is output
# and a non-zero exit value is given

parent=""
grandparent="."

while [ -d "$grandparent/.svn" ]; do
    parent=$grandparent
    grandparent="$parent/.."
done

if [ ! -z "$parent" ]; then
    echo $parent
else
    exit 1
fi

Итак, теперь я могу это сделать:

[~/work/scripts/XXX/code/speech-detection/framework]$ cd $(svnbase)
[~/work/scripts/XXX]$ svn status
?      code/speech-detection/framework/output.old
[~/work/scripts/XXX]$ cd -
/home/XXXX/work/scripts/XXX/code/speech-detection/framework
[~/work/scripts/XXX/code/speech-detection/framework]$ 

Ответ 2

Если вы используете git-svn в качестве своего клиента Subversion, вы можете прозрачно взаимодействовать с репозиторием Subversion, используя команды Git локально. Git автоматически показывает, что вы ожидаете ответа на весь репозиторий, когда вы используете команды типа git status в любом месте дерева.

Ответ 3

В Windows:

svn info . |findstr /C:"Working Copy Root Path:"

В Linux:

svn info . |grep -F "Working Copy Root Path:"

Его можно назначить переменной, используя небольшую манипуляцию с строкой. Версия для Windows:

FOR /F "delims=" %%i IN ('svn info . ^|findstr /C:"Working Copy Root Path:"') DO SET SOME_TEMP_VAR=%%i
SET WORKING_COPY_ROOT=%SOME_TEMP_VAR:~24%

Ответ 4

Это невозможно. SVN может быть проверен с любой глубины, и любой субдилер действует как новая проверка.

edit: svnbase script в предварительных комментариях, но это не точно.

Ответ 5

Фактически, если вы заглянете в свой файл .svn/entries, вы найдете базу, указанную там, как правило, вокруг строки 6. В любом случае формат вашего svn-url даст вам некоторые важные подсказки: P О да, я взял на себя смелость смотреть, и svn info также расскажет вам.

... вздох, это не то, что вы просили. Мне нравится решение в первом ответе: P

Ответ 6

В linux с svn, версия 1.9.3 (r1718519), я запускаю это: svn info --show-item wc-root