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

StackOverflow https://stackoverflow.com/questions/2034

  •  08-06-2019
  •  | 
  •  

Вопрос

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

Это было полезно?

Решение

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

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

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

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

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

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

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

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

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

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

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

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

Я:Проигнорированный

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

~:Изменен тип

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

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

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

Другие советы

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

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

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

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

svn status --help

Существует также статус "E"

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

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

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

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

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

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

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

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

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

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

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

Я нахожу эту шпаргалку большим подспорьем:Шпаргалка по Подрывной деятельности

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

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

Столбцы состояния 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:игнорировать).

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

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

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

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

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

      Никаких изменений.

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

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

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

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

      Элемент не заблокирован.

 L    Элемент заблокирован.

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

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

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

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

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

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

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

 S    Элемент переключен.

Статус SVN шестая колонка:К, О, Т, Б

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

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

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

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

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

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

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

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

enter image description here

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top