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


300

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

Ответы:


518

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


12
«R»: Этот файл был заменен
манифест

8
Как насчет E? Вся документация гласит: «Существовал», что не очень полезно.
появляется

2
+1, но «G: Изменения в репо были автоматически объединены в рабочую копию» не в указанном источнике (больше?)
Julian

86

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

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

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



19

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

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

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

U = элемент (U) обновлен до версии хранилища

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

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

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

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


О статусе «G». У меня было 2 копии изменений в 2 разных проверенных каталогах. Я зафиксировал изменения из одного checkout-dir, и когда я обновил другой checkout-dir, он показал состояние «G», указывающее, что изменения в локальном каталоге были объединены с хранилищем.
GuruM

18

Также есть статус «E»

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

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


13

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

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


1
Это не перечисляет статус G.
Арк-кун

13

Столбцы статуса 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

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

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

 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, ожидают, что команда выполнит команду, даже не осознавая, что она сравнивает только текущее состояние файла с информацией, полученной с сервера при последнем обновлении.

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

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



7

Если у вас нет доступа к документации ( 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>"
}

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


1
IMO, это не «когда вы спешите», а «когда у вас нет доступа к документации» (например, SVNBook).
16:45

@bahrep спасибо, это способ посмотреть на это. Исправлено как предложено.
Алан
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.