Nếu bạn cần truy cập thông tin sửa đổi Subversion từ các chương trình khác, bạn có thể sử dụng giao diện COM SubWCRev. Các đối tượng để tạo ra là SubWCRev.object
, và các phương pháp sau đây được hỗ trợ:
Bảng 6.4. các phương pháp COM / tự động hóa được hỗ trợ
Phương pháp | Mô tả |
---|---|
.GetWCInfo | Phương pháp này duyệt qua các bản sao hoạt động thu thập thông tin sửa đổi. Đương nhiên bạn phải gọi việc này trước khi bạn có thể truy cập thông tin bằng cách sử dụng các phương pháp còn lại. Tham số đầu tiên là đường dẫn. Tham số thứ hai nên là true nếu bạn muốn bao gồm các phiên bản thư mục. Tương đương với -f chuyển đổi dòng lệnh. Tham số thứ ba nên là true nếu bạn muốn bao gồm svn:externals. Tương đương với -e chuyển đổi dòng lệnh. |
.GetWCInfo2 | The same as GetWCInfo() but with a fourth parameter that sets the equivalent to the -E command line switch. |
.Revision | Sửa đổi cam kết cao nhất trong các bản sao làm việc. Tương đương với $WCREV$ . |
.Date | Ngày / thời gian của sửa đổi cam kết cao nhất. Tương đương với $WCDATE$ . |
.Author | Tác giả của sửa đổi cam kết cao nhất, đó là, người cuối cùng thực hiện các thay đổi đối với bản sao làm việc. |
.MinRev | Việc sửa đổi cập nhật tối thiểu, như thể hiện trong $WCRANGE$ |
.MaxRev | Việc sửa đổi cập nhật tối đa, như thể hiện trong $WCRANGE$ |
.HasModifications | True nếu có thay đổi địa phương |
.HasUnversioned | True if there are unversioned items |
.Url | Thay thế bằng URL kho lưu trữ của đường dẫn bản sao làm việc được sử dụng trong GetWCInfo . Tương đương với $WCURL$ . |
.IsSvnItem | True nếu mục đó được phiên bản. |
.NeedsLocking | True nếu mục có thuộc tính svn:needs-lock thiết lập. |
.IsLocked | True nếu mục bị khóa. |
.LockCreationDate | Chuỗi đại diện cho ngày khi khóa được tạo ra, hoặc một chuỗi trống rỗng, nếu mục không bị khóa. |
.LockOwner | Chuỗi đại diện chủ sở hữu khóa hoặc chuỗi rỗng nếu mục không bị khóa. |
.LockComment | Các thông báo đã nhập khi khóa được tạo ra. |
Ví dụ sau đây cho thấy giao diện có thể được sử dụng như thế nào.
// testCOM.js - javascript file // test script for the SubWCRev COM/Automation-object filesystem = new ActiveXObject("Scripting.FileSystemObject"); revObject1 = new ActiveXObject("SubWCRev.object"); revObject2 = new ActiveXObject("SubWCRev.object"); revObject3 = new ActiveXObject("SubWCRev.object"); revObject4 = new ActiveXObject("SubWCRev.object"); revObject1.GetWCInfo( filesystem.GetAbsolutePathName("."), 1, 1); revObject2.GetWCInfo( filesystem.GetAbsolutePathName(".."), 1, 1); revObject3.GetWCInfo( filesystem.GetAbsolutePathName("SubWCRev.cpp"), 1, 1); revObject4.GetWCInfo2( filesystem.GetAbsolutePathName("..\\.."), 1, 1, 1); wcInfoString1 = "Revision = " + revObject1.Revision + "\nMin Revision = " + revObject1.MinRev + "\nMax Revision = " + revObject1.MaxRev + "\nDate = " + revObject1.Date + "\nURL = " + revObject1.Url + "\nAuthor = " + revObject1.Author + "\nHasMods = " + revObject1.HasModifications + "\nIsSvnItem = " + revObject1.IsSvnItem + "\nNeedsLocking = " + revObject1.NeedsLocking + "\nIsLocked = " + revObject1.IsLocked + "\nLockCreationDate = " + revObject1.LockCreationDate + "\nLockOwner = " + revObject1.LockOwner + "\nLockComment = " + revObject1.LockComment; wcInfoString2 = "Revision = " + revObject2.Revision + "\nMin Revision = " + revObject2.MinRev + "\nMax Revision = " + revObject2.MaxRev + "\nDate = " + revObject2.Date + "\nURL = " + revObject2.Url + "\nAuthor = " + revObject2.Author + "\nHasMods = " + revObject2.HasModifications + "\nIsSvnItem = " + revObject2.IsSvnItem + "\nNeedsLocking = " + revObject2.NeedsLocking + "\nIsLocked = " + revObject2.IsLocked + "\nLockCreationDate = " + revObject2.LockCreationDate + "\nLockOwner = " + revObject2.LockOwner + "\nLockComment = " + revObject2.LockComment; wcInfoString3 = "Revision = " + revObject3.Revision + "\nMin Revision = " + revObject3.MinRev + "\nMax Revision = " + revObject3.MaxRev + "\nDate = " + revObject3.Date + "\nURL = " + revObject3.Url + "\nAuthor = " + revObject3.Author + "\nHasMods = " + revObject3.HasModifications + "\nIsSvnItem = " + revObject3.IsSvnItem + "\nNeedsLocking = " + revObject3.NeedsLocking + "\nIsLocked = " + revObject3.IsLocked + "\nLockCreationDate = " + revObject3.LockCreationDate + "\nLockOwner = " + revObject3.LockOwner + "\nLockComment = " + revObject3.LockComment; wcInfoString4 = "Revision = " + revObject4.Revision + "\nMin Revision = " + revObject4.MinRev + "\nMax Revision = " + revObject4.MaxRev + "\nDate = " + revObject4.Date + "\nURL = " + revObject4.Url + "\nAuthor = " + revObject4.Author + "\nHasMods = " + revObject4.HasModifications + "\nIsSvnItem = " + revObject4.IsSvnItem + "\nNeedsLocking = " + revObject4.NeedsLocking + "\nIsLocked = " + revObject4.IsLocked + "\nLockCreationDate = " + revObject4.LockCreationDate + "\nLockOwner = " + revObject4.LockOwner + "\nLockComment = " + revObject4.LockComment; WScript.Echo(wcInfoString1); WScript.Echo(wcInfoString2); WScript.Echo(wcInfoString3); WScript.Echo(wcInfoString4);
Các danh sách sau đây là một ví dụ về cách sử dụng các đối tượng COM SubWCRev từ C #:
using LibSubWCRev; SubWCRev sub = new SubWCRev(); sub.GetWCInfo("C:\\PathToMyFile\\MyFile.cc", true, true); if (sub.IsSvnItem == true) { MessageBox.Show("versioned"); } else { MessageBox.Show("not versioned"); }