Как я могу предотвратить блокировку базы данных TortoiseSVN? - PullRequest
0 голосов
/ 09 ноября 2018

У меня есть ПК с Windows 7 с последней версией TortoiseSVN (1.11.0 x64). Почти каждый раз, когда я хочу зафиксировать изменения на сервере, я получаю следующую ошибку:

Commit failed (details follow):
Failed to load properties: sqlite[S5]: database is locked
Error unlocking locked dirs (details follow): sqlite[S5]: database is locked

Another process is blocking the working copy database, or the underlying filesystem does
not support file locking; if the working copy is on a network filesystem, make sure file
locking has been enabled on the file server.

Это легко исправить - я просто захожу в корневую папку проекта, выполняю очистку SVN, а затем коммит работает нормально. Однако, если я захочу сделать коммит снова через несколько минут, он, скорее всего, снова потерпит неудачу и вынудит меня сделать еще одну очистку. Это становится действительно раздражающим.

Можно ли как-то предотвратить эти блокировки? Любые настройки, которые я могу изменить в TortoiseSVN, или что-то в этом роде?

Еще несколько деталей:

  • Оба моих проекта SVN и сам TortoiseSVN размещены на моем локальном жестком диске (без сетевой файловой системы), а их папки исключены из антивирусного программного обеспечения.
  • Папка рабочей копии не является общей для сети (ни локально, я единственный пользователь на этом ПК).
  • У меня нет Dropbox, Google Drive или любого другого облачного программного обеспечения, синхронизирующего папку.
  • Это специфично для TortoiseSVN, я никогда не получаю эту ошибку, когда фиксирую свои изменения из Eclipse.
  • Я действительно не думаю, что это ошибка TortoiseSVN, хотя я недавно обновил версию 1.9.6 до 1.11.0, и у обоих была одна и та же проблема, если бы это действительно была ошибка, она наверняка была бы исправлена ​​... верно ? :)
  • Я единственный разработчик, в настоящее время работающий с проектами (проблема не в том, что моя локальная база данных устарела или существуют конфликты).

1 Ответ

0 голосов
/ 29 марта 2019

Похоже, что проблема вызвана Eclipse. Мы обычно структурируем наши проекты SVN так:

/trunk
  /docs
  /etc
  /scripts
  /source
    /pom.xml
    /src/main/...

Я извлекаю весь ствол (или некоторую ветвь), а затем импортирую исходные проекты в Eclipse.

Чтобы управлять изменениями кода, я использую представление синхронизации SVN в Eclipse, которое более удобно для пользователя (только мое мнение), чем TortoiseSVN. Для изменений вне папки / source я должен использовать TortoiseSVN, поскольку файлы не находятся в Eclipse.

Проблема в том, что, очевидно, в Eclipse есть некоторый фоновый процесс, который «обновляет SVN-кэш» каждые несколько минут, даже если вы ничего не изменили в этом проекте, просто открыв его в рабочей области. И это портит TortoiseSVN, отсюда и ошибки, если я не выполню очистку.

Полагаю, мой единственный выбор здесь - использовать разные папки извлечения для Eclipse и TortoiseSVN (тьфу ...) или отключить SVN в Eclipse и всегда использовать TortoiseSVN (тьфу ...). В Eclipse, под Team> SVN> Performance, есть опция , которая позволяет отключить кэш состояния SVN. Я думаю, это должно помочь с проблемой ... или, может быть, теперь у меня будут ошибки блокировки в Eclipse и Tortoise:)

...