Как определить, кто заблокировал файл с помощью SVN?

Мы используем SVN-сервер 1.4 (я думаю), при этом клиентами являются либо клиент командной строки, либо TortoiseSVN.

Ответы

Ответ 1

Клиент командной строки показывает владельца замка с командой "svn info".

В TortoiseSVN вы можете увидеть владельца блокировки в контекстном меню "Свойства" (вкладка "subversion" ).

Ответ 2

Используйте svn status --show-updates, чтобы обнаружить блокировки файлов. В следующем примере, Салли обнаруживает, что есть замок на raisin.jpg.

$ whoami
sally

$ svn status --show-updates
M              23   bar.c
M    O         32   raisin.jpg
       *       72   foo.h
Status against revision:     105

Как только вы знаете блокировку, вы можете использовать svn -info, чтобы узнать, кто установил блокировку. Обратите внимание на "Lock Owner" ниже:

$ svn info http://svn.example.com/repos/project/raisin.jpg
Path: raisin.jpg
Name: raisin.jpg
URL: http://svn.example.com/repos/project/raisin.jpg
Repository UUID: edb2f264-5ef2-0310-a47a-87b0ce17a8ec
Revision: 105
Node Kind: file
Last Changed Author: sally
Last Changed Rev: 32
Last Changed Date: 2005-01-25 12:43:04 -0600 (Tue, 25 Jan 2005)
Lock Token: opaquelocktoken:fc2b4dee-98f9-0310-abf3-653ff3226e6b
Lock Owner: harry
Lock Created: 2005-02-16 13:29:18 -0500 (Wed, 16 Feb 2005)
Lock Comment (1 line):
Need to make a quick tweak to this image.

Ответ 3

Используя функцию репо-браузера TortoiseSVN, есть столбец блокировки, в котором отображается пользователь, который заблокировал файл.

Щелкните правой кнопкой мыши на локальной рабочей копии → TortoiseSVN- > repo-browser.

Ответ 4

Шаги для проверки:

  • Щелкните правой кнопкой мыши файл/папку, в которой вы хотите определить блокировку

  • Перейдите в TortoiseSVN Options → Repo-browser

  • Откроется новое окно, и вы получите представление таблицы

  • Столбец блокировки в таблице покажет, кто имеет блокировку

Ответ 5

  • Щелкните правой кнопкой мыши файл, выберите TortoiseSVN, затем проверьте наличие изменений
  • Нажмите "Проверить репозиторий"
  • Прокрутите вправо, чтобы увидеть столбец блокировки

Ответ 6

Следующий Python script показывает все блокировки и кто их владеет:

#!/usr/bin/python
# coding=UTF-8

# This tool shows who owns the locks in a subversion repository

import sys
import subprocess

if len(sys.argv) > 1:
    p = subprocess.Popen(['svn', 'status', '-u', sys.argv[1]], bufsize=1, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
else:
    p = subprocess.Popen(['svn', 'status', '-u'], bufsize=1, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)

(so, se) = p.communicate() # start command

lines = [x[21:].strip() for x in so.split('\n') if len(x) > 5 and x[5] == 'K']

for line in lines:
    p = subprocess.Popen(['svn', 'info', line], bufsize=1, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
    (so, se) = p.communicate()
    details = [x[12:].strip() for x in so.split('\n') if x.startswith('Lock Owner')][0]
    print '[%s] (%s)' % (details, line)

Ответ 7

Отметьте красную книгу в разделе "Обнаружение блокировок". Я считаю, что он содержит ответ.

Ответ 8

У меня также была проблема с файлами .aux. Решение/проблема в моем случае заключалась в том, что поддиректории не имеют более глубокую глубину, чем 1. Если вы хотите использовать это, подкаталоги в папке tmp должны быть существующими. например - > src → введение → Introduction.tex требует - > tmp → введение → Introduction.aux           ******

Подчеркнутый каталог должен существовать. Поэтому в случае управления subversion зафиксируйте также структуру каталогов в папке tmp (без файлов *.aux).