Что означают коды результатов в SVN?

Что означают коды результатов в SVN? Мне нужна быстрая справка.

Ответов (9)

Решение

Дополнительные сведения см. В SVNBook: «Состояние файлов и каталогов рабочих копий» .

Общие статусы:

U : Рабочий файл обновлен

G : Изменения в репо были автоматически объединены в рабочую копию

M : Рабочая копия изменена

C : этот файл конфликтует с версией в репо

? : Этот файл не находится под контролем версий

! : Этот файл находится под контролем версий, но отсутствует или является неполным

A : Этот файл будет добавлен в систему контроля версий (после фиксации)

A + : этот файл будет перемещен (после фиксации)

D : этот файл будет удален (после фиксации)

S : это означает, что файл или каталог был переключен с пути к остальной части рабочей копии (с помощью переключателя svn) на ветку

I : игнорируется

X : Внешнее определение

~ : Тип изменен

R : Элемент был заменен в вашей рабочей копии. Это означает, что файл был запланирован для удаления, а затем на его место было запланировано добавление нового файла с тем же именем.

L : элемент заблокирован

E : Предмет существовал в том виде, в каком он был бы создан при обновлении svn.

Я хочу сказать кое-что о статусе "G",

G: Изменения в репо были автоматически объединены в рабочую копию

Я думаю, что приведенное выше определение не является ясным, оно может вызвать небольшую путаницу, потому что все файлы автоматически объединяются в рабочую копию, правильным должно быть:

U = элемент (U), обновленный до версии репозитория

G = локальные изменения элемента, добавленные (G) с репозиторием

C = локальные изменения элемента (C) в репозитории

D = элемент (D) выбран из рабочей копии

A = элемент (A) добавлен в рабочую копию

Также есть статус "E"

E = Файл существовал до обновления

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

Столбцы статуса SVN

$ svn status
L index.html

Вывод команды разделен на шесть столбцов, но это не очевидно, потому что иногда столбцы пусты. Возможно, имело бы смысл обозначать пустые столбцы тире, так ls -l, а не ничего. Тогда, например, это L index.html будет выглядеть так --L--- index.html, что делает очевидным, что единственная информация, которая у нас есть, находится в третьем столбце, посвященном блокировке. В любом случае, как только вы узнаете, что это начинает иметь больше смысла.

Первый столбец статуса SVN: A, D, M, R, C, X, I,?,!, ~

Первый столбец указывает, что элемент был добавлен, удален или иным образом изменен.

      Никаких модификаций.

 A    Товар запланирован для добавления.

 D    Объект запланирован на удаление.

 M    Товар был изменен.

 R    Элемент был заменен в вашей рабочей копии. Это означает, что файл был запланирован для удаления, а затем на его место было запланировано добавление нового файла с тем же именем.

 C    Содержимое (в отличие от свойств) элемента конфликтует с обновлениями, полученными из репозитория.

 X    Пункт связан с определением внешнего вида.

 I    Элемент игнорируется (например, со свойством svn: ignore).

 ?    Товар не находится под контролем версий.

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

 ~    Элемент версируется как объект одного типа (файл, каталог, ссылка), но был заменен объектом другого типа.

Второй столбец статуса SVN: M, C

Во втором столбце указывается статус свойств файла или каталога.

      Никаких модификаций.

 M    Свойства этого элемента были изменены.

 C    Свойства этого элемента конфликтуют с обновлениями свойств, полученными из репозитория.

Третий столбец статуса SVN: L

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

      Товар не заблокирован.

 L    Товар заблокирован.

Четвертый столбец статуса SVN: +

Четвертый столбец заполняется, только если элемент запланирован для добавления с историей.

      Нет истории, запланированной с фиксацией.

 +    История запланирована с фиксацией.

Пятая колонка статуса SVN: S

Пятый столбец заполняется только в том случае, если рабочая копия элемента переключена относительно его родительского элемента.

      Элемент является дочерним по отношению к родительскому каталогу.

 S    Пункт переключен.

Шестой столбец статуса SVN: K, O, T, B

Шестой столбец заполнен информацией о блокировке.

      Когда используется –show-updates, файл не блокируется. Если –show-updates не используется, это просто означает, что файл не заблокирован в этой рабочей копии.

 K    Файл заблокирован в этой рабочей копии.

 O    Файл заблокирован либо другим пользователем, либо в другой рабочей копии. Это появляется только при использовании –show-updates.

 T    Файл был заблокирован в этой рабочей копии, но блокировка была украдена и недействительна. В настоящее время файл заблокирован в репозитории. Это появляется только при использовании –show-updates.-

 B    Файл был заблокирован в этой рабочей копии, но блокировка снята и недействительна. Файл больше не заблокирован. Появляется только при использовании –show-updates.

Седьмой столбец статуса SVN: *

Устаревшая информация отображается в седьмом столбце (только если вы передаете параметр –show-updates). Это то, что люди, которые плохо знакомы с 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>"
}

введите описание изображения здесь

Обычно я использую svn через графический интерфейс, мою IDE или клиент. Из-за этого я никогда не могу вспомнить коды, когда мне приходится прибегать к командной строке.

Я считаю, что эта шпаргалка мне очень поможет: Шпаргалка по Subversion

Взгляните на ссылку книги Subversion: "Статус файлов и каталогов рабочих копий"

Настоятельно рекомендуется для всех, кто что-либо делает с SVN.

Также обратите внимание, что код результата во втором столбце относится к свойствам файла. Например:

U   filename.1
 U  filename.2  
UU  filename.3

filename.1: файл был обновлен
filename.2: свойство или свойства файла (например, svn: ключевые слова) были обновлены
filename.3: обновлены и файл, и его свойства

Вы всегда можете получить список, запустив:

svn status --help