Everything's possible :)
EDIT: vội vàng không bao giờ dẫn đến chất lượng cũng không trả lời của tôi, thiếu tất cả các tài liệu tham khảo của Windows trong câu hỏi. Vì vậy, đây là một chạy xuống trên làm thế nào để có được đồng bộ làm việc trên Windows.
Bạn có 2 máy trong trường hợp này:
- Máy A: nơi kho chạy bây giờ.
- Máy B: nơi bạn muốn đồng bộ hóa.
Tạo kho lưu trữ mới trên B mà bạn muốn đồng bộ hóa với A. Điều rất quan trọng là kho lưu trữ này trống (chạy trên rev0).
On B, trong thư mục SVN của kho mới được tạo ra, duyệt đến/móc và tạo ra các tập tin BAT sau:
khởi commit.bat
IF "%2" == "someusername" (goto :label1) else (echo "Only the someusername account may commit new revisions" >&2)
exit 1
goto :eof
:label1
exit 0
pre-revprop -change.bat
IF "%3" == "someuser" (goto :label1) else (echo "Only the someuser user may change revision properties" >&2)
exit 1
goto :eof
:label1
exit 0
someuser
là người đồng bộ hóa tồn tại trong kho lưu trữ của máy A và là người dùng duy nhất có quyền trong kho lưu trữ của máy B. Điều rất quan trọng là không có cam kết nào được thực hiện thủ công với kho lưu trữ của máy B.
Trong thư mục /hooks
của kho lưu trữ trên máy A
sau cam kết.dơi
CD PATH_TO_SUBVERSION\bin
svnsync sync svn://machineB/repos --non-interactive --no-auth-cache --source-username machineAusername --source-password machineApassword --sync-username machineBusername --sync-password machineBpassword
Khi những tập tin batch được đưa ra, chúng tôi cần phải nói với các kho lưu trữ trên B chúng tôi muốn đồng bộ hóa với nó:
machineB/repos svn://
Machineã/repos --non-interactive --no-auth-cache --source-username
machineAusername--source-password
machineApassword--sync-username
máyBên tên--sync-password
machineBpassword
mà phải trả lại một cái gì đó như: Copied properties for revision 0.
Bây giờ mỗi khi bạn cam kết vào kho lưu trữ trên máy A nó sẽ được sao chép sang kho máy B. Điều quan trọng cần lưu ý là nếu bạn muốn đồng bộ hóa với Google Code hoặc kho lưu trữ trực tuyến khác mà họ cam kết cấu trúc thân cây/nhánh/thẻ vào bản sửa đổi 1. Bạn phải liên hệ với họ để đặt lại kho lưu trữ nếu bạn muốn sử dụng vị trí kho lưu trữ của bên thứ ba làm kho lưu trữ đồng bộ hóa.
Để cung cấp tín dụng hợp do tôi đã sao chép pre-revprop-change.bat và khởi động commit.bat từ http://www.svnforum.org/2017/viewtopic.php?t=5745&sid=06551a22d9c0b5780cf1faab6b0e8ce9
tôi chỉ thực hiện điều này bản thân mình vào một kho lưu trữ thử nghiệm và dường như làm việc như một nét duyên dáng. Tôi vui vì tôi nhận thấy câu hỏi này mặc dù svnsync đã chìm quá sâu trong hộp sọ của tôi. Tôi có nghĩa là để làm thiết lập nó khi thiết lập svn tại nơi làm việc. Vì vậy, tôi biết điều đầu tiên tôi sẽ làm vào ngày mai là gì, cảm ơn vì điều đó!
EDIT 2:
Nếu bạn, như tôi, có tấn kho generic hậu commit.bat này có thể thu hút bạn:
SET REPOS=%1
SET REV=%2
SET REPOS=%REPOS:D:\SVN=%
CD "C:\Program Files\Subversion\bin"
svnsync sync svn://machineB/%REPOS%-sync --non-interactive --no-auth-cache --source-username usernameA --source-password passwordA --sync-username usernameB --sync-password passwordB
này bắt tên kho và sử dụng nó để tự động xác định URL đồng bộ hóa. Tôi đã trộn tất cả các kho lưu trữ đồng bộ hóa trên máy B với -sync
để rõ ràng. Các bit D:\SVN
là gốc svnserve trên machineB mặc dù tệp BAT chung này phải được đặt trong/hooks của gốc svnserve của máyA.
Anh ấy sử dụng TortoiseSVN miễn phí, vì vậy anh ấy trên Windows. Một giải pháp Linux có thể không hữu ích. –
heh thực sự, tôi đang ở trên một máy tính Windows ... –
làm tha thứ cho câu trả lời vội vàng của tôi! tôi sẽ đăng lên cách tạo móc của riêng bạn trên cửa sổ. –