Я использую Enterprise Architect, который использовал svn lock
для блокировки файлов модели внутри репозитория subversion. Например:
>svn status
K Documents\UML\eaB\B2ACB6CFF398.xml
K Documents\UML\eaB\BE1936A1AE75.xml
K Documents\UML\eaC\C3B74A5737E1.xml
Я узнал, что на svn commit
вы теряете блокировки, если не используете опцию --keep-locks
. Начиная с Subversion 1.8 я заметил, что svn update
now также открывает:
>svn update
Aktualisiere ».«:
UB Documents\UML\eaB\BE1936A1AE75.xml
UB Documents\UML\eaB\B2ACB6CFF398.xml
UB Documents\UML\eaC\C3B74A5737E1.xml
Hole externen Verweis nach »Homeserver\Library\src\test\resources\config-current«:
Externer Verweis aktualisiert zu Revision 22020.
Revision 22020.
>svn status
Обратите внимание, что после svn status
ничего нет. Замок пропал! Но у svn update
нет --keep-locks
и нет статуса B:
>svn help update
update (up): Aktualisiert die Arbeitskopie mit Änderungen aus dem Projektarchiv.
Aufruf: update [PFAD...]
…
A Added - Hinzugefügt
D Deleted - Gelöscht
U Updated - Aktualisiert
C Conflict - Konflikt
G Merged - Zusammengeführt
E Existed - Existierend
R Replaced - Ersetzt
Хорошо, это немецкий. Но вам не нужно говорить по-немецки, чтобы увидеть, что в этом списке нет B.
Если я сейчас попытаюсь повторно заблокировать, мне сообщат, что файлы уже заблокированы:
>svn lock Documents\UML\eaB\BE1936A1AE75.xml Documents\UML\eaB\B2ACB6CFF398.xml Documents\UML\eaC\C3B74A5737E1.xml
svn: Warnung: W160035: Path '/AndroidApp/trunk/Documents/UML/eaB/BE1936A1AE75.xml' is already locked by user 'martin.krischik' in filesystem '/srv/svn/…/db'
svn: Warnung: W160035: Path '/AndroidApp/trunk/Documents/UML/eaC/C3B74A5737E1.xml' is already locked by user 'martin.krischik' in filesystem '/srv/svn/…/db'
svn: Warnung: W160035: Path '/AndroidApp/trunk/Documents/UML/eaB/B2ACB6CFF398.xml' is already locked by user 'martin.krischik' in filesystem '/srv/svn/…/db'
Это ошибка или есть причина такого странного поведения?
Обновлять:
Благодаря пользователю @user655063 теперь я знаю, что B означает сломанный замок. Это приводит к следующим вопросам: «Почему замки всегда ломаются».
Не только при блокировке Enterprise Architect. Если я повторно заблокирую файлы в командной строке, блокировки будут считаться сломанными и разблокированными в следующем svn update
.