2009-05-12 19 views

Trả lời

16

Trình khách dòng lệnh hiển thị chủ sở hữu khóa bằng lệnh "thông tin svn".

Trong TortoiseSVN, bạn có thể thấy chủ sở hữu khóa trong menu ngữ cảnh "thuộc tính" (tab "lật đổ").

+1

Đáng buồn thay, TortoiseSVN cho tôi biết ** không có khóa ** khi tôi xem trang thuộc tính/lật đổ đó. Nhưng nói với tôi ** _ I_ có nó bị khóa _elsewhere _ ** khi tôi cố gắng cam kết tập tin. Nhưng sẽ không nói cho tôi biết nơi tôi đã khóa nó. PS: Tôi chỉ bao giờ khóa (có mục đích) trong một thư mục Windows. Tôi đã hy vọng tìm ra nơi khóa tình cờ diễn ra. –

+0

@JesseChisholm: Tôi không nghĩ Subversion ghi lại bản sao làm việc đã gửi khóa. Dù sao, nếu bạn chắc chắn bạn không có những thay đổi nổi bật, bạn chỉ có thể phá khóa. – sleske

+0

cuối cùng, tôi đã phải đi đến tất cả các máy có một SVN sandbox và kiểm tra xem một khóa tình cờ đã được tạo ra có 'svn status --show updates' cho đến khi tôi tìm thấy máy có khóa không chủ ý. Sau đó, tôi có thể phát hành khóa 'svn mở khóa offendingFile' và xóa tình hình. –

0

Kiểm tra phần red book 'Khám phá khóa'. Tôi tin rằng nó có chứa câu trả lời.

12

Sử dụng tính năng trình duyệt kho của TortoiseSVN có cột khóa hiển thị người dùng đã khóa tệp.

Nhấp chuột phải vào bản sao làm việc cục bộ -> TortoiseSVN-> trình duyệt kho.

26

Sử dụng svn status --show-updates để khám phá các khóa trên tệp. Trong ví dụ sau, Sally phát hiện có một khóa trên raisin.jpg.

$ whoami 
sally 

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

Khi bạn biết khóa, bạn có thể sử dụng svn -info để khám phá xem ai đã đặt khóa. Chú ý "Khóa Chủ đầu tư" dưới đây:

$ 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. 
+2

Điều này dường như không hoạt động với các phiên bản Subversion sau (ví dụ: 1.7). Khi tôi chạy thông tin svn, tôi không nhận được bất kỳ thông tin nào về chủ sở hữu khóa. Giải pháp của tôi (không lý tưởng) là chạy 'svn status -u --xml filename' và phân tích cú pháp kết quả XML. – HulkHolden

+6

Lưu ý rằng bạn cần chuyển URL thay vì đường dẫn cục bộ tới 'svn info' để nhận thông tin khóa cập nhật. –

+1

re: 'cần phải vượt qua một URL ...' may mắn thay, chỉ cần sử dụng đường dẫn địa phương sẽ cho bạn biết URL đầy đủ. Một chút sao chép/dán ... et viola! –

2

Các kịch bản Python sau đây cho thấy tất cả các ổ khóa và những người sở hữu chúng:

#!/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) 
4

bước để kiểm tra:

  1. Nhấp chuột phải vào tập tin/thư mục mà bạn muốn xác định khóa

  2. Đi tới Tùy chọn TortoiseSVN >> Trình duyệt lại

  3. Một cửa sổ mới sẽ mở ra và bạn sẽ nhận được một cái nhìn bảng

  4. Khóa cột trong bảng sẽ hiển thị những người có khóa

4
  1. Nhấp chuột phải vào tập tin, chọn TortoiseSVN, sau đó Kiểm tra sửa đổi
  2. Nhấp vào Kiểm tra kho lưu trữ
  3. Cuộn sang bên phải để xem cột Khóa
+0

Câu trả lời hay nhất. Cảm ơn Pradnya & Godsmith. – Gurusinghe

0

Tôi cũng gặp phải sự cố này liên quan đến các tệp .aux. . Giải pháp/vấn đề trong trường hợp của tôi là không có thư mục con nào có chiều sâu lớn hơn 1 được cho phép. Nếu bạn muốn sử dụng thư mục con này trong thư mục tmp phải tồn tại. ví dụ: -> src -> giới thiệu -> introduction.tex đòi hỏi -> tmp -> giới thiệu -> introduction.aux ** * ** *

Thư mục được gạch dưới phải có sẵn. Vì vậy, trong trường hợp quản lý subversion cũng cam kết cấu trúc thư mục trong thư mục tmp (không có tệp * .aux).

Các vấn đề liên quan