2010-08-23 18 views
9

Tôi đang cố gắng sao chép kho lưu trữ đã sử dụng bằng cách sử dụng svnsync (tôi đang làm theo cách này để đảm bảo sử dụng tối ưu kho lưu trữ của tôi miễn là máy đang hoạt động) nhưng có vẻ như nó không hoạt động.svnsync không hoạt động: Thay đổi Revprop bị chặn bởi móc trước thay đổi

tôi có hai máy (Tôi đã thay đổi tên, nhưng không phải là infos khác)

  • BAN ĐẦU: tùy chỉnh Linux với Subversion 1.4.5 (r25188) (theo báo cáo của svnadmin). Từ máy này, tôi đang cố gắng đồng bộ hóa trên một kho lưu trữ có tên là SOURCE. Kho lưu trữ này có thể được truy cập bằng giao thức http và người dùng svnsync đã được tạo. Trong SOURCE/hooks, chỉ tồn tại một tệp thi hành: pre-revprops-change.
  • CUỐI CÙNG: Ubuntu với Subversion 1.6.6 (r40053) (theo báo cáo của svnadmin). Trên máy này, tôi sẽ đồng bộ trên một kho lưu trữ có tên là svn16. Kho lưu trữ này có thể được truy cập bằng giao thức http và người dùng svnsync đã được tạo. Trong svn16/hooks, các tệp thi hành là pre-revprop-changestart-commit. Trên máy tính này, dav_svn.conf chứa chỉ thị SVNParentPath /var/svn, làm cho tất cả các kho tiếp cận dưới http://FINAL/svn

tôi đã chắc chắn URL và đăng nhập/pwd là chính xác bằng cách mở mỗi URL kho lưu trữ trong trình duyệt của tôi và ban hành các hộp thoại xác thực, mà luôn luôn dường như làm việc .

Tôi đang cố gắng để thực hiện lệnh sau

svnsync initialize http://FINAL/svn/svn16 http://INITIAL/SOURCE 

Nhưng nó luôn luôn kết thúc hiển thị

Authentication realm: <http://FINAL:80> All Subversion Repositories hosted on FINAL 
Password for 'ubunut-user': 
Authentication realm: <http://FINAL.fr:80> All Subversion Repositories hosted on FINAL 
Username: svnsync 
Password for 'svnsync': 
svnsync: DAV request failed; it's possible that the repository's pre-revprop-change hook either failed or is non-existent 
svnsync: At least one property change failed; repository is unchanged 
svnsync: Error setting property 'sync-lock': 
Revprop change blocked by pre-revprop-change hook (exit code 255) with no output. 

Tôi đoán có một số loại vấn đề cấu hình somewhere§. Nhưng cái gì ? Và ở đâu ? Tôi đã đạt đến giới hạn của tôi, và trang web dường như không có sự trợ giúp ở đây, vì các tài liệu khác nhau mà tôi đã thấy gợi ý làm cho móc thực thi bởi toàn bộ vũ trụ là một giải pháp hiệu quả (không phải trong trường hợp của tôi).

Trả lời

13

Hóa ra tôi đã dumber hơn câm.

Trong trường hợp lỗi như vậy, cách dễ nhất để đảm bảo tất cả hoạt động chính xác là gọi nhiều móc khác nhau bằng tay.

Nó tiết lộ móc pre-revprop-change của tôi đã sai bằng văn bản với

"#!/bin/sh" 
exit 0 

Rõ ràng, loại bỏ các " giải quyết vấn đề này.

+0

Đối với Windows, chỉ cần tạo một tệp dơi trống cho móc 'echo rem dummy>% mirror% \ hooks \ pre-revprop-change.bat' –

12

Chỉ cần một lưu ý nhỏ, để tránh rất thường xuyên nhầm lẫn.

Trong trường hợp lỗi như vậy trước tiên hãy đảm bảo rằng tệp pre-revprops-change có thể thực thi được. Nếu không, hãy thực hiện:

chmod +x $DEST_SVN_REPO/hooks/pre-revprops-change,

nơi $ DEST_SVN_REPO - đường dẫn đến kho lưu trữ đích.

+0

Sử dụng samba, tệp không thực thi được. Làm cho nó thực thi bằng cách thay đổi các tùy chọn trên lệnh 'mount' của tôi đã giải quyết được vấn đề của tôi. Cảm ơn. –

+0

cần đọc trước khi thay đổi, không phải bất kỳ ai ngoài tôi vẫn sử dụng svn –

1

thấy ở đây: https://svn.apache.org/repos/asf/subversion/trunk/notes/svnsync.txt

bạn cấu hình đích thất bại.Giai đoạn INIT (sao chép các thuộc tính) phải được thực hiện. Kịch bản thay đổi trước khi thay đổi nội dung bạn nên mã tên người dùng được phép cập nhật. nếu không, điểm đến sẽ bị người dùng hủy. svn không thể hoạt động như các nút hoạt động tích cực. thường là bạn cấu hình kịch bản móc để ngăn chặn bất kỳ sửa đổi nào của người dùng. họ chỉ nên có quyền truy cập lại.

thường truy cập dịch vụ web superuser. có điều này nằm ngoài chủ đề.