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

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

9 ответов

Решение

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

E: Элемент существовал, как он был бы создан, обновлением SVN.

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

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

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

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

svn status --help

Я хочу сказать кое-что о статусе "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 Status четвертый столбец: +

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

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

 +  История запланирована с коммитом.

SVN Status пятая колонка: S

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

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

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

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

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

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

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

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

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

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

SVN Status седьмой столбец: *

Устаревшая информация отображается в седьмом столбце (только если вы пропустите параметр –show-updates). Это то, что люди, которые являются новичками в SVN, ожидают, что команда выполнит команду, даже не осознавая, что она сравнивает только текущее состояние файла с информацией, полученной с сервера при последнем обновлении.

    Элемент в вашей рабочей копии обновлен.

 *  На сервере существует более новая версия элемента.

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

Я нахожу этот шпаргалку большой помощью: Шпаргалка Subversion

Взгляните на справочник 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>"
}

Другие вопросы по тегам