Ответы:
Дополнительные сведения см. В SVNBook: «Состояние файлов и каталогов рабочей копии» .
Общие статусы:
U : рабочий файл обновлен
G : Изменения в репо были автоматически объединены в рабочую копию
М : Рабочая копия изменена
C : Этот файл конфликтует с версией в репозитории
? : Этот файл не находится под контролем версий
! : Этот файл находится под контролем версии, но отсутствует или не полностью
A : Этот файл будет добавлен в контроль версий (после коммита)
A + : этот файл будет перемещен (после коммита)
D : Этот файл будет удален (после коммита)
S : Это означает, что файл или каталог был переключен с пути остальной части рабочей копии (используя svn switch) на ветвь
Я : игнорируется
X : внешнее определение
~ : Тип изменен
R : Предмет был заменен в вашей рабочей копии. Это означает, что файл был запланирован для удаления, а затем на его место было запланировано добавление нового файла с тем же именем.
L : предмет заблокирован
E : Элемент существовал, как он был бы создан, обновлением SVN.
E
? Вся документация гласит: «Существовал», что не очень полезно.
Также обратите внимание, что код результата во втором столбце ссылается на свойства файла. Например:
U filename.1
U filename.2
UU filename.3
filename.1: файл был обновлен
filename.2: свойство или свойства файла (например, svn: Keywords) были обновлены
filename3: и файл, и его свойства были обновлены
Вы всегда можете получить список, запустив:
svn status --help
Я хочу сказать кое-что о статусе "G",
G: Изменения в репо были автоматически объединены в рабочую копию
Я думаю, что приведенное выше определение не является понятным, оно может вызвать небольшую путаницу, потому что все файлы автоматически объединяются в рабочую копию, правильное должно быть:
U = элемент (U) обновлен до версии хранилища
G = локальные изменения элемента, добавленные в хранилище (G)
C = локальные изменения элемента (C) по сравнению с хранилищем
D = элемент (D), выбранный из рабочей копии
A = элемент (A) добавлен в рабочую копию
Я обычно использую SVN через графический интерфейс, либо мою IDE или клиента. Из-за этого я никогда не могу вспомнить коды, когда мне приходится прибегать к командной строке.
Я нахожу этот шпаргалку большой помощью: Шпаргалка Subversion
$ svn status
L index.html
Вывод команды разбит на шесть столбцов, но это не очевидно, потому что иногда столбцы пусты. Возможно, имело бы больше смысла указывать пустые столбцы с тире, кстати ls -l
, вместо ничего. Тогда, например, L index.html
будет выглядеть --L--- index.html
, что делает очевидным, что единственная информация, которую мы имеем, находится в третьем столбце о блокировке. Во всяком случае, как только вы знаете, что это начинает иметь больше смысла.
Первый столбец указывает, что элемент был добавлен, удален или иным образом изменен.
Без изменений.
A
Предмет запланирован для дополнения.
D
Элемент запланирован для удаления.
M
Предмет был изменен.
R
Товар был заменен в вашей рабочей копии. Это означает, что файл был запланирован для удаления, а затем на его место было запланировано добавление нового файла с тем же именем.
C
Содержимое (в отличие от свойств) элемента конфликтует с обновлениями, полученными из хранилища.
X
Предмет связан с определением внешнего вида.
I
Элемент игнорируется (например, с помощью свойства svn: ignore).
?
Элемент не находится под контролем версий.
!
Предмет отсутствует (например, вы переместили или удалили его без использования SVN). Это также указывает на то, что каталог неполон (извлечение или обновление было прервано).
~
Элемент версионирован как один тип объекта (файл, каталог, ссылка), но был заменен другим типом объекта.
Во втором столбце указывается состояние свойств файла или каталога.
Без изменений.
M
Свойства этого элемента были изменены.
C
Свойства этого элемента конфликтуют с обновлениями свойств, полученными из хранилища.
Третий столбец заполняется только в том случае, если каталог рабочей копии заблокирован (обычно очистки svn должно быть достаточно для его очистки)
Элемент не заблокирован.
L
Предмет заблокирован.
Четвертый столбец заполняется, только если элемент запланирован для добавления с историей.
Нет истории, запланированной с коммитом.
+
История запланирована с коммитом.
Пятый столбец заполняется, только если рабочая копия элемента переключена относительно его родителя.
Элемент является дочерним по отношению к родительскому каталогу.
S
Пункт переключен.
Шестой столбец заполнен информацией о блокировке.
При использовании –show-updates файл не блокируется. Если –show-updates не используется, это просто означает, что файл не заблокирован в этой рабочей копии.
K
Файл заблокирован в этой рабочей копии.
O
Файл заблокирован другим пользователем или в другой рабочей копии. Это появляется только при использовании –show-updates.
T
Файл был заблокирован в этой рабочей копии, но блокировка была украдена и недействительна. В данный момент файл заблокирован в хранилище. Это появляется только при использовании –show-updates.-
B
Файл был заблокирован в этой рабочей копии, но блокировка была нарушена и является недействительной. Файл больше не заблокирован. Отображается только при использовании –show-updates.
Устаревшая информация отображается в седьмом столбце (только если вы пропустите параметр –show-updates). Это то, что люди, которые являются новичками в SVN, ожидают, что команда выполнит команду, даже не осознавая, что она сравнивает только текущее состояние файла с информацией, полученной с сервера при последнем обновлении.
Элемент в вашей рабочей копии обновлен.
*
На сервере существует более новая версия элемента.
Взгляните на справочник Subversion Book: «Состояние файлов и каталогов рабочей копии»
Настоятельно рекомендуется для тех, кто делает что-то с SVN.
Если у вас нет доступа к документации ( SVNBook ), введите (Linux):
svn help status | grep \'\?\'
svn help status | grep \'\!\'
svn help status | grep \'\YOUR_SYMBOL_HERE\'
или вставьте следующую функцию в ваш файл ~ / .bashrc, например так:
svncode() {
symbol=$1
[ $symbol ] && svn help status | grep \'$(echo $symbol)\' || \
echo "usage: svncode <symbol>"
}