Що означають коди результатів у SVN?


300

Що означають коди результатів у SVN? Мені потрібна швидка довідка.

Відповіді:


518

Додаткову інформацію див. У SVNBook: "Стан робочих копій файлів та каталогів" .

Загальні статуси:

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

G : Зміни в репо-файлі автоматично були об'єднані в робочу копію

М : Робоча копія модифікована

C : Цей файл суперечить версії репо

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

! : Цей файл знаходиться під контролем версій, але відсутній або неповний

A : Цей файл буде додано до контролю версій (після фіксації)

A + : Цей файл буде переміщено (після фіксації)

D : Цей файл буде видалено (після фіксації)

S : Це означає, що файл або каталог перейшли з шляху решти робочої копії (за допомогою перемикача svn) до гілки

Я : Проігноровано

X : Зовнішнє визначення

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

R : Елемент замінено у вашій робочій копії. Це означає, що файл було заплановано на видалення, а потім на його місце було заплановано додавання нового файлу з такою ж назвою.

L : Елемент заблокований

E : Елемент існував, як це було б створено, оновленням svn.


12
"R": Цей файл замінено
маніфест

8
Про що E? У всій документації написано "Існувало", що не так корисно.
Попс

2
+1, але "G: Зміни в РЕПО автоматично були об'єднані у робочу копію" немає у вказаному джерелі (більше?)
Джуліан

86

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

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

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



19

Я хочу сказати щось про статус "G",

G: Зміни в репо-файлі автоматично були об'єднані в робочу копію

Я думаю, що вищезазначене визначення не є зрозумілим, воно може створити невелику плутанину, оскільки всі файли автоматично об'єднуються у робочу копію, правильним має бути:

U = позиція (U), додана до версії сховища

G = локальні зміни елемента, сумісні з (G) ed із сховищем

C = локальні зміни пункту (C), пов'язані з сховищем

D = пункт (D), обраний із робочої копії

A = пункт (A), доданий до робочої копії


Про статус "G". У мене було 2 примірники змін у двох різних перевірених каталогах. Я вніс зміни з одного каси-dir, і коли я оновив інший check-dir, він показав статус "G", що вказує на те, що зміни в локальному каталозі були об'єднані з сховищем.
ГуруМ

18

Також є статус "Е"

E = Файл існував до оновлення

Це може статися, якщо ви вручну створили папку, яка була б створена шляхом оновлення.


13

Зазвичай я використовую svn через gui, або IDE, або клієнт. Через це я ніколи не можу запам'ятати коди, коли мені доводиться вдаватися до командного рядка.

Я вважаю цю шпаргалку чудовою підмогою: Subversion Cheat Sheet


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 статус четвертого стовпця: +

Четвертий стовпець заповнюється лише в тому випадку, якщо елемент призначений для додавання з історією.

      Жодна історія не планується з комітом.

 +    Історія запланована з фіксацією.

SVN Статус п'ятий стовпець: S

П'ятий стовпчик заповнюється лише в тому випадку, якщо робоча копія елемента переключена відносно його батьківського

      Елемент є дочірнім його батьківського каталогу.

 S    Елемент перемикається.

SVN Статус шостий стовпчик: K, O, T, B

Шостий стовпець заповнений інформацією про блокування.

      Якщо використовується показ-оновлення, файл не блокується. Якщо –показ-оновлення не використовується, це просто означає, що файл не зафіксований у цій робочій копії.

 K    Файл заблокований у цій робочій копії.

 O    Файл блокується або іншим користувачем, або іншою робочою копією. Це з'являється лише тоді, коли використовується оновлення шоу.

 T    Файл був заблокований у цій робочій копії, але блокування було вкрадено та недійсне. Зараз файл заблокований у сховищі. Це з’являється лише тоді, коли використовується оновлення шоу.-

 B    Файл був заблокований у цій робочій копії, але блокування було порушено і недійсне. Файл більше не заблокований. Це з’являється лише тоді, коли використовуються –показ-оновлення.

SVN статус сьомого стовпця: *

Інформація про застарілу інформацію з’являється в сьомому стовпці (лише якщо ви перейдете до перемикача –оновлення). Це те, що люди, які є новими у 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).
bahrep

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