Chúng tôi đang sử dụng máy chủ SVN 1.4 (tôi nghĩ) với khách hàng là khách hàng dòng lệnh hoặc TortoiseSVN.Làm cách nào để xác định ai đã khóa tệp bằng SVN?
Trả lời
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 đổ").
Đá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. –
@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
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. –
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.
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.
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.
Đ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
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. –
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! –
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)
bước để kiểm tra:
Nhấp chuột phải vào tập tin/thư mục mà bạn muốn xác định khóa
Đi tới Tùy chọn TortoiseSVN >> Trình duyệt lại
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
Khóa cột trong bảng sẽ hiển thị những người có khóa
- Nhấp chuột phải vào tập tin, chọn TortoiseSVN, sau đó Kiểm tra sửa đổi
- Nhấp vào Kiểm tra kho lưu trữ
- Cuộn sang bên phải để xem cột Khóa
Câu trả lời hay nhất. Cảm ơn Pradnya & Godsmith. – Gurusinghe
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).
- 1. svn: Làm cách nào để xác định lần cuối cùng một dòng nhất định đã được thay đổi?
- 2. Cách xác minh tệp đã tải xuống bằng tệp .sig?
- 3. Làm cách nào để mặc định svn: keywords được bật?
- 4. Làm cách nào để cập nhật tệp trong SVN?
- 5. Làm cách nào để xác định tệp nhị phân và tệp văn bản bằng Python?
- 6. Tôi làm cách nào để nhận thanh toán SVN bằng cặp khóa Công khai/Riêng tư?
- 7. Làm cách nào để xác thực tệp html bằng C#?
- 8. Làm cách nào để xác định tiến trình của tệp?
- 9. Làm cách nào để xác định loại kho lưu trữ SVN mà tôi có?
- 10. Làm cách nào để xác định tuổi của tệp bằng cách sử dụng PHP?
- 11. Ý định về kết quả, làm cách nào để biết ai đã gửi?
- 12. Làm cách nào để xác thực các khóa mảng bằng cách sử dụng Xác thực Symfony?
- 13. Làm cách nào để có danh sách các tệp đã thay đổi trong svn?
- 14. Sự kiện “thay đổi” thanh trượt jQuery: Làm thế nào để tôi xác định ai đã gọi nó?
- 15. GnuPG: Làm thế nào để mã hóa/giải mã các tệp bằng một khóa nhất định?
- 16. Làm thế nào để MS Visual Studio xác định rằng tệp nguồn đã thay đổi?
- 17. Cách xác định và khôi phục tệp đã xóa
- 18. Làm cách nào để xác định các khóa i18n không sử dụng?
- 19. Làm cách nào để xác định HResult cho System.IO.IOException?
- 20. Làm cách nào để xác định kích thước tệp mở bằng Python?
- 21. Cách xác định xem người dùng đã chọn tệp để tải tệp lên chưa?
- 22. Làm cách nào để xóa các tệp bị thiếu có dấu cách trong svn?
- 23. Làm cách nào để .đăng ký tệp bằng Git GUI?
- 24. Làm cách nào để xác định scrollHeight?
- 25. Làm thế nào để xác định số lượng tệp trên một ổ đĩa bằng Python?
- 26. Làm cách nào để loại trừ các tệp SVN khỏi thu hoạch bằng nhiệt (WiX)?
- 27. LNK2005 (đã được xác định)
- 28. Làm thế nào để xóa các tệp khỏi SVN đã bị xóa khỏi FS?
- 29. SVN: Làm thế nào để bỏ qua một tệp đã sửa đổi trên cam kết?
- 30. Làm cách nào để tạo Mẫu Tin nhắn Cam kết SVN và Móc để Xác minh
Ý của bạn là TortoiseSVN? –