TortoiseSVN: Что вызывает серую галочку? - PullRequest
5 голосов
/ 13 февраля 2009

Позвольте мне начать с объяснения нашей установки:

Я работаю с некоторыми подрядчиками. Они используют Visual Source Safe для контроля версий, а наша компания использует Subversion. Каждые несколько дней они предварительно регистрируют наш репозиторий, выполняя следующие действия:

  1. Оформление заказа из нашего репозитория (они единственные, кто работает над этим, так что на самом деле это ничего не делает)
  2. Скопируйте в каталог все файлы приложения
  3. Фиксация назад

Это ужасный процесс, и мы планируем рассмотреть его в следующей итерации, но он работает. За исключением того, что иногда это не так. Иногда после выполнения коммита некоторые файлы имеют наложение серой галочки.

Я не уверен, что это значит. Поиск в Google подразумевает, что это может быть связано с блокировкой, но никто явно ничего не блокирует! Файлы, кажется, зафиксированы, но они отсутствуют, когда я делаю проверку. Я уверен, что что-то упустил.

Может кто-нибудь объяснить, что такое гонг и как его исправить?

Ответы [ 7 ]

11 голосов
/ 13 февраля 2009

от здесь :

Если вы установили свойство svn: needs-lock для файла, Subversion сделает этот файл доступным только для чтения, пока вы не заблокируете этот файл. Файлы только для чтения имеют это наложение, чтобы указать, что вам нужно сначала получить блокировку, прежде чем вы сможете редактировать этот файл.

Мы здесь не используем блокировку потребностей, поэтому я не могу объяснить больше. Это только начало.

Редактировать: поскольку они используют VSS, для файлов будет установлен атрибут только для чтения, если они не извлечены. TortoiseSVN может интерпретировать это как установление блокировки потребностей.

4 голосов
/ 13 февраля 2009

Это файл, у которого установлено свойство svn: needs-lock. Для редактирования этих файлов вы должны сначала заблокировать их.

Вот объяснение из файла справки TortoiseSVN:

Если вы установили svn: needs-lock свойство файла, Subversion делает этот файл только для чтения, пока вы не получите заблокировать этот файл. Такие файлы есть это наложение, чтобы указать, что у вас есть чтобы получить блокировку, прежде чем вы сможете отредактируйте этот файл.

Обычно используется с двоичными файлами (изображения, текстовые документы и т. Д.), Которые не могут быть легко объединены при редактировании несколькими людьми. Блокировка предотвращает редактирование файла более чем одним человеком одновременно.

Если вы хотите удалить свойство svn: needs-lock, щелкните правой кнопкой мыши файл, выберите TortoiseSVN -> Properties и удалите свойство.

Обновление : что может заставить файл иметь свойство svn: needs-lock:

  • либо он был явно установлен кем-то
  • или у вас есть некоторые правила в файле конфигурации Subversion (TortoiseSVN -> Настройки -> Редактировать файл конфигурации Subversion). Проверьте раздел [auto-props] этого файла. Например, мы автоматически устанавливаем свойство needs-lock для всех файлов MS-Office, добавляя соответствующие расширения файлов в раздел [auto-props] файла конфигурации subversion.
1 голос
/ 13 февраля 2009

Если вы собираетесь продолжить этот ужасный план, могу ли я предложить вам изучить сценарий svn_load_dirs ? Он используется для применения изменений из не версионной иерархии каталогов к репозиторию SVN. В этом случае ваши не версионные файлы фактически будут из VSS, но это не считается версионным для этой цели. По сути, он заметил, что было добавлено и что было удалено, дает вам возможность сказать, что некоторые из этих добавлений / удалений были фактически переименованными / перемещенными, а затем он применяет изменения к вашему репо. Это гораздо лучше, чем просто вставлять файлы в рабочую копию, так как последний подход не будет правильно обрабатывать добавленные / удаленные файлы или каталоги.

Чтобы ответить на исходный вопрос, серая галочка означает, что файл доступен только для чтения. Обычно это происходит только тогда, когда файл должен быть заблокирован для записи в него, но я почти уверен, что он пометит любой файл только для чтения серой галочкой, а не только те, для которых установлен svn: needs-lock , Что касается того, почему файлы не будут отображаться при извлечении, это почти наверняка, потому что они никогда не регистрировались ... если они находятся на сервере, они будут отображаться в вашей рабочей копии при обновлении / оформлении заказа ( или это даст вам четкое сообщение об ошибке о чем-то, что им мешает).

1 голос
/ 13 февраля 2009

Это может помочь?

http://www.nabble.com/Document-locked,-won%27t-release-td15162692.html

атрибут только для чтения был установлен.

Они должны исправить это на своей стороне, вероятно.

и обязательно заставьте их использовать вашу систему контроля версий

0 голосов
/ 05 марта 2009

Чтобы показать вам наложения значков файлов и папок, TortoiseSVN должен получать статус каждый раз, когда вы открываете такую ​​папку в проводнике. Обычно это занимает доли секунды, но может занять гораздо больше времени, если у вас медленный жесткий диск или очень большой каталог. Вот несколько вещей, на которые стоит обратить внимание: Сетевые диски могут очень медленно реагировать, поэтому вам может потребоваться отключить наложение значков для таких дисков. Однако схема кэширования обычно делает ее работоспособной. Всякий раз, когда время последнего изменения файла изменялось, TortoiseSVN должен выполнить полный diff (!) Этого файла, чтобы узнать, изменился ли он. Если вы часто меняете файл, отменяете изменения и сохраняете файл снова, вы столкнетесь с замедлением просмотра. Вы можете исправить это состояние, выполнив Очистку ваших папок с рабочими копиями. Вокруг есть несколько антивирусных сканеров, которые мешают работе TortoiseSVN. Большую часть времени они блокируют файлы в каталоге состояния .svn, что может привести к зависанию TortoiseSVN или к очень медленной работе. Иногда вы можете даже получить сообщение об отказе в доступе. Попробуйте настроить свой антивирусный сканер так, чтобы он игнорировал каталоги .svn. Если вы работаете в Windows XP, вы также можете отключить zipfolders. Это также увеличит скорость просмотра. 1. Выберите Run из меню Пуск 2. Введите regsvr32 / u% windir% \ system32 \ zipfldr.dll в командной строке и нажмите кнопку ОК. 3. Изменение вступит в силу немедленно, но вам может потребоваться перезагрузить Windows, чтобы исчезли все следы встроенной поддержки ZIP. Если в любой момент вы захотите снова включить встроенную поддержку ZIP в Windows XP, выполните следующие действия: 4. Выберите Run из меню Пуск. 5. Введите в командной строке regsvr32% windir% \ system32 \ zipfldr.dll и нажмите кнопку ОК. 6. Изменения вступят в силу немедленно, но вам, возможно, придется перезапустить Windows, чтобы все следы встроенной поддержки ZIP были доступны. Проверьте свою систему на наличие шпионского ПО, программного обеспечения для обеспечения соблюдения политики или локальных поисковых систем (например, Google Desktop). Все они могут очень эффективно мешать нормальному использованию.

0 голосов
/ 13 февраля 2009

Это бинарные файлы? Если это так, это означает, что файлы являются эксклюзивными для блокировки на сервере, так что никто не может проверить их одновременно.

0 голосов
/ 13 февраля 2009

Я его погуглил и, видимо, файл заблокирован. http://tortoisesvn.net/node/138

...