Đây là kịch bản của tôi:SVN cách giải quyết "thêm địa phương, gửi đến khi cập nhật" trên thư mục * *?
Giả sử chúng ta có một repo SVN với nội dung sau: Myfolder Myfolder \ file.txt
Bây giờ tôi có thể tạo hai Thanh toán của repo này, co1 và co2.
Trong co1, chúng tôi sửa đổi tệp.txt. Trong co2 chúng tôi:
- svn xóa Myfolder
- svn cam
- Tạo một thư mục mới có tên Myfolder
- svn thêm Myfolder
- svn cam
Bây giờ nếu tôi cố gắng một cập nhật trong co1 Tôi nhận được xung đột về cây:
A + C myfolder > local edit, incoming delete upon update
M + myfolder\file.txt
tôi muốn giữ Myfolder và tập tin được sửa đổi, vì vậy tôi giải quyết cuộc xung đột cây:
svn resolve --accept working folder
Bây giờ nếu tôi cố gắng cam kết, tôi nhận được "svn: thư mục '/ Myfolder' đã cũ" . Nếu tôi cố gắng giải quyết sử dụng svn lên Myfolder này, tôi nhận được một cuộc xung đột cây một lần nữa:
A + C folder > local add, incoming add upon update
M + myfolder\file.txt
Được rồi, vì vậy chúng tôi cố gắng giải quyết svn --accept thư mục hoạt động trở lại. Nhưng chúng tôi vẫn không thể cam kết, chúng tôi nhận được cùng một thông báo rằng "svn: Directory '/ myfolder" đã lỗi thời ", nếu chúng ta làm svn up myfolder, chúng ta sẽ quay trở lại cuộc xung đột cây cuối cùng.
Quy trình chính xác để giải quyết loại xung đột này là gì (khi chúng tôi muốn giữ thư mục và các thay đổi của nó)?
EDIT: Windows dòng cmd kịch bản để minh họa:
rmdir /S /Q C:\svntest
mkdir C:\svntest
cd C:\svntest
svnadmin create repo
svn co file:///c:/svntest/repo co1
svn co file:///c:/svntest/repo co2
cd co1
mkdir folder
echo content > folder\file.txt
svn add folder
svn commit folder -m ""
cd C:\svntest\co2
svn up
cd C:\svntest\co1
svn del folder
svn commit -m ""
mkdir folder
svn add folder
svn commit -m ""
cd C:\svntest\co2
echo changed_content > folder\file.txt
svn up
svn resolve --accept working folder
svn commit -m ""
svn up folder
svn resolve --accept working folder
svn commit -m ""
Và đây là sản phẩm của chạy kịch bản đó (lưu ý những thất bại cam kết ở cuối):
C:\>rmdir /S /Q C:\svntest
C:\>mkdir C:\svntest
C:\>cd C:\svntest
C:\svntest>svnadmin create repo
C:\svntest>svn co file:///c:/svntest/repo co1
Checked out revision 0.
C:\svntest>svn co file:///c:/svntest/repo co2
Checked out revision 0.
C:\svntest>cd co1
C:\svntest\co1>mkdir folder
C:\svntest\co1>echo content 1>folder\file.txt
C:\svntest\co1>svn add folder
A folder
A folder\file.txt
C:\svntest\co1>svn commit folder -m ""
Adding folder
Adding folder\file.txt
Transmitting file data .
Committed revision 1.
C:\svntest\co1>cd C:\svntest\co2
C:\svntest\co2>svn up
A folder
A folder\file.txt
Updated to revision 1.
C:\svntest\co2>cd C:\svntest\co1
C:\svntest\co1>svn del folder
D folder\file.txt
D folder
C:\svntest\co1>svn commit -m ""
Deleting folder
Committed revision 2.
C:\svntest\co1>mkdir folder
C:\svntest\co1>svn add folder
A folder
C:\svntest\co1>svn commit -m ""
Adding folder
Committed revision 3.
C:\svntest\co1>cd C:\svntest\co2
C:\svntest\co2>echo changed_content 1>folder\file.txt
C:\svntest\co2>svn up
C folder
At revision 3.
Summary of conflicts:
Tree conflicts: 1
C:\svntest\co2>svn resolve --accept working folder
Resolved conflicted state of 'folder'
C:\svntest\co2>svn commit -m ""
Adding folder
svn: Commit failed (details follow):
svn: Directory '/folder' is out of date
C:\svntest\co2>svn up folder
C folder
At revision 3.
Summary of conflicts:
Tree conflicts: 1
C:\svntest\co2>svn resolve --accept working folder
Resolved conflicted state of 'folder'
C:\svntest\co2>svn commit -m ""
Adding folder
svn: Commit failed (details follow):
svn: Directory '/folder' is out of date
@Azirath: Tôi cập nhật câu trả lời của tôi, có thể bạn cho tôi biết những gì phiên bản svn bạn đang sử dụng? –
Xin lỗi vì thời gian phản hồi dài, tôi phải lấy tài khoản chưa đăng ký này được hợp nhất với tài khoản thực của tôi. Xem câu trả lời của tôi trong phần bình luận cho câu trả lời của bạn. – Ziphnor