Как я могу определить, кто заблокировал файл, используя SVN? - PullRequest
14 голосов
/ 12 мая 2009

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

Ответы [ 8 ]

27 голосов
/ 12 мая 2009

Используйте 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, чтобы узнать, кто установил блокировку. Обратите внимание на «Владелец замка» ниже:

$ 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.
16 голосов
/ 12 мая 2009

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

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

13 голосов
/ 12 мая 2009

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

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

5 голосов
/ 10 января 2013

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

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

  2. Перейти к TortoiseSVN Параметры >> Браузер репо

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

  4. Столбец блокировки в таблице покажет, у кого есть замок

4 голосов
/ 25 мая 2013
  1. Щелкните правой кнопкой мыши файл, выберите TortoiseSVN, затем проверьте наличие изменений
  2. Нажмите Проверить хранилище
  3. Прокрутите вправо, чтобы увидеть столбец блокировки
2 голосов
/ 07 мая 2012

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

#!/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)
0 голосов
/ 04 декабря 2013

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

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

0 голосов
/ 12 мая 2009

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

...