Bao gồm các phần
Accessing Version Control
• MSSCCI Provider là gì và khi nào nó được sử dụng?
• Các IDE nào khác hỗ trợ TFS?
• Khi nào tôi nên sử dụng công cụ Team Foundation Server Power Tool?
• Các version control thường được sử dụng để mở
rộng các kịch bản là gì?
• Làm việc với version control từ command line như thế nào?
Administration
• Làm thế nào để cấp quyền cho một tập tin
trong một thư mục có thừa kế các quyền?
• Tôi nên làm gì khi một lập trình viên rởi khỏi
dự án?
• Làm thế nào để quản lý các lập trình viên thực
tập và những người khác mà không tin tưởng để thực hiện các check-ins?
• Tôi nên chỉnh sửa các permission như thế nào
sau khi ứng dụng của tôi đã được trao đi?
Branch/Label/Merge
• Khi nào tôi nên sử dụng các labels?
• Các TFS label khác với các VSS label như thế
nào?
• Branching là gì?
• Khi nào tôi nên xem xét phân nhánh branching?
• Lí do gì để không thực hiện phân nhánh
branch?
• Sử dụng phân nhánh branching như thế nào để
phát hành ứng dụng của tôi?
• Sử dụng branching như thế nào để bảo trì ứng
dụng của tôi?
• Sử dụng branching như thế nào để giảm xung đột
giữa các teams?
• Sử dụng branching như thế nào để giảm xung đột
giữa các chức năng?
• Chứng minh các bài tập về branching và merging
là gì?
• Sự khác nhau giữa branching và labeling là gì?
• Mô hình "path space" branching là
gì?
• TFS promotion model làm việc như thế nào?
• Tôi sẽ merge hai phân nhánh như thế nào?
• Tôi có thể merge ngang qua các team project không?
• Một baseless merge là gì?
• Code promotion model là gì?
• Các phân nhánh logic và phân nhánh vật lý
khác nhau như thế nào?
• Nếu tôi sử dụng code promotion model, thường
thì tôi phải merge như thế nào?
Check-ins and Check-in Policies
• Một changeset là gì?
• Một check-in policy là gì?
• Khi nào và tôi có thể override một check-in policy như thế nào?
• Làm cách nào để thực thi một policy?
• Làm thế nào tôi sử dụng một hệ thống
kiểm tra các check-in(check-in
verification system)?
• Nếu tôi chỉnh sửa tên tập tin hay xóa các tập
tin trên ổ đĩa, có phải là version control sẽ bất đồng bộ không?
• Làm thế nào để giải quyết các xung đột một cách tự động?
• Làm thế nào để giải quyết các xung đột bằng tay?
• Làm thế nào để tránh các xung đột?
Checkout, Get, and Lock
• Làm thế nào để tìm ra lập trình viên cuối
cùng chỉnh sửa một tập tin?
• Câu lệnh get
làm việc như thế nào?
• Sự khác nhau giữa các shared checkout và exclusive checkout?
• Khi nào tôi nên sử dụng lệnh lock command?
• Loại lock
nào được TFS hỗ trợ?
Distributed/Remote Development
• Làm thế nào để work offline?
• Làm thế nào để tối ưu hóa việc phân chia phát
triển đội ngũ?
• TFS Version Control proxy là gì?
• Làm thế nào để tối ưu hóa năng suất của TFS
Version Control proxy?
Migration
• TFS version control khác với VSS như thế nào?
• Mô hình checkout model khác với VSS như thế nào?
• Tôi nên di chuyển source từ VSS đến TFS như thế nào?
• Tôi nên di chuyển source từ version-control
system khác như thế nào?
Project/Workspace Management
• Tôi nên tổ chức các team project của tôi như
thế nào?
• Tôi nên quản lý các phụ thuộc giữa các project
như thế nào?
• Workspace là gì?
• Sử dụng các workspace để cô lập công việc của
một nhà phát triển như thế nào?
• Các kiểm chứng thực tiễn đối với workspace
mapping là gì?
• Các kiểm chứng thực tiễn đối với quản lý các shared
components và code là gì?
• Khi nào tôi nên tạo một team project mới so với
một phân nhánh branch mới?
• Tôi nên quản lý source code mà được chia sẻ
trên nhiều project như thế nào?
• Tôi nên quản lý các tập tin binary mà được
chia sẻ trên nhiều project như thế nào?
• Tôi nên quản lý source tree như thế nào?
Shelving
• Shelving là gì?
• Một Shelveset là gì?
• Khi nào tôi thường sử dụng shelving?
• Tôi sẽ sử dụng shelving để back up công việc
của tôi như thế nào?
• Tại sao tôi sẽ muốn unshelve một shelveset?
Accessing
Version Control
• MSSCCI Provider là gì và khi nào nó được sử dụng?
• Các IDE nào khác hỗ trợ TFS?
• Khi nào tôi nên sử dụng công cụ Team
Foundation Server Power Tool?
• Đâu Là Những Kịch Bản Mở Rộng của các Version
Control Phổ Biến/ Thông Thường?
• Làm việc với version control từ command line như thế nào?
MSSCCI Provider Là Gì Và Khi Nào Nó Được Sử Dụng?
The Microsoft® Source Code Control Interface (MSSCCI)
provider được sử dụng để cung cấp một version
control tích hợp user
experience với các
sản phẩm không được hỗ trợ Microsoft
Visual Studio® Team Explorer. Thí dụ, nếu bạn sử dụng Visual Studio 6.0, thì bạn
có thể sử dụng MSSCCI client hay command line để tương tác với Microsoft Visual
Studio Team System (VSTS) Team Foundation Version Control.
Các client sau có thể làm việc trực tiếp với Team Foundation
Version Control bằng cách sử dụng MSSCCI provider:
- Microsoft Visual Studio .NET 2003
- Microsoft Visual C++® 6 Service Pack 6 (SP6)
- Microsoft Visual Basic® 6.0 SP6
- Microsoft Visual FoxPro® 9.0 SP1
- Microsoft Access 2003 SP2
- Microsoft SQL ServerTM Management Studio
- Sparx Systems Enterprise Architect 6.1
- Sybase PowerBuilder 105
- Toad for SQL Server 2.0
The MSSCCI Provider hoạt động khác với Team Foundation Version Control trong Visual Studio 2005 trong các phương thức sau:
- Checkout cũng thực hiện một hành động GetLatest.
- Một check-in lock mở rộng được áp dụng khi checkout.
- Tùy chọn Open from
Source Control và Save to Source Control hoạt động tương tự Microsoft Visual SourceSafe®.
Mã nguồn bổ sung
- Để đọc thêm về MSSCCI trên Microsoft MSDN®, hãy
xem "The Microsoft Source-Code Control Interface"tại
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vcug98/html/_asug_the_microsoft_source_code_control_interface.asp
Các IDE nào khác hỗ trợ TFS?
Team Foundation Server có thể
được sử dụng cho bất kì ấn bản nào của Visual Studio 2005 mà có cài Team
Explorer . Bạn cũng có thể chạy Team Explorer cùng với bất kì non-Visual Studio 2005 integrated development
environment (IDE) để làm việc với các team project và quản lý các work item.
Các client sau có các integration
solution được cung cấp bởi các nhà cung cấp khác:
- Eclipse
- Linux client
- Apple Macintosh client
- Hypertext Markup Language (HTML) Web client
Nếu bạn muốn truy cập Team Foundation Version
Control từ Eclipse IDE, Linux, hay Macintosh clients, hãy cân nhắc việc cài đặt
Teamprise suite of client applications, có tại http://www.teamprise.com/
Nếu bạn muốn chỉ là truy cập
read-only đến Team Foundation Version Control from the Web, hãy xem xét cài đặt
Team System Web Access, có sẵn tại http://msdn2.microsoft.com/en-us/teamsystem/bb676728.aspx
Mã nguồn bổ sung
Khi Nào Tôi Nên Sử Dụng Công Cụ Team
Foundation Server Power Tool?
The Team Foundation Power Tool (TFPT) cung cấp các chức năng version-control mà không có sẵn trong Visual Studio 2005 user
interface (UI). Thí dụ, bạn có thể sử dung TFPT để hỗ trợ làm việc working
offline, hay để thực hiện các hành động rollback để undo check-ins của một
changeset. Hãy xem xét sử dụng TFPT nếu bạn cần thực hiện bất kì hành động nào
sau đây:
- Unshelve - Hoạt động unshelve
được hỗ trợ bởi TFS không cho phép shelve các thay đổi change và các thay đổi
cục bộ local change được hợp nhất với nhau. Khi bạn sử dụng TFPT để unshelve một
thay đổi từ một changeset, nếu một item trong local workspace của bạn có một pending change là
một edit, và shelved change cũng là một edit, thì sau đó TFPT có thể merge các
change bằng cách thực hiện một merge 3 cách.
- Roll back - Khả năng undo một check-in của
một changeset không được hỗ trợ trực tiếp
trong TFS. Bằng cách sử dụng lệnh TFPT rollback,
bạn có thể thực hiện undo bất kì change nào được tạo ra trong một changeset cụ
thể. Không phải tất cả các thay đổi change đều có thể roll back, nhưng hầu như
có thể rollback cho hầu hết các tình huống.
- Work offline - Công cụ TFPT online tool cho phép bạn làm việc mà
không kết nối với server trong một khoảng thời gian bằng cách cung cấp các chức
năng thông báo cho server về các thay đổi changes mà bạn đã tạo ra trong không
gian làm việc cục bộ workspace của bạn.
- Get a changeset - Lệnh TFPT GetCS
cho phép bạn lấy tất cả các item được liệt kê trong một changeset dựa trên các changeset
version. Điều này sẽ có ích nếu một đồng nghiệp check in một thay đổi change mà
bạn cần có trong workspace của bạn, nhưng bạn không thể cập nhật toàn bộ
workspace lên version mới nhất.
- Remove pending edits - Lệnh TFPT UU (Undo Unchanged) xóa bỏ các pending edits từ các files chưa thực
sự được chỉnh sửa. Điều này hữu ích trong một tình huống mà bạn check out một số
lượng lớn các file để chỉnh sửa, nhưng chỉ làm thay đổi một số ít các tập tin. Bạn
có thể lấy ra các chỉnh sửa của bạn trên các tập tin không thể thay đổi bằng cách chạy lệnh TFPT UU, lệnh này sẽ so sánh các dữ liệu hỏng
hash của các tập tin trên workspace cục bộ với các tập tin hỏng hash trên
server để xác định xem là các tập tin đó có thực sự được chỉnh sửa hay không
Bạn có thể chạy từng lệnh này từ cửa sổ dòng lệnh bằng cách sử
dụng Tfpt.exe.
Mã nguồn bổ
sung
- Để download TFPT, hãy
đến
http://www.microsoft.com/downloads/details.aspx?FamilyID=7324c3db-658d-441b-8522-689c557d0a79&DisplayLang=en
Đâu Là Những Kịch Bản Mở Rộng của các Version Control Phổ Biến/ Thông Thường?
Những kịch bản mở rộng của các version control phổ biến là
tùy chỉnh một chính sách check-in policy
để thực thi các tiêu chuẩn vào lúc check-in. Để tạo các custom policy plug-in
mà xuất hiện trong hộp thoại Add Checkin
Policy , hãy sử dụng các chức năng mở rộng được cung cấp trong Visual
Studio Team Foundation Server Software Development Kit (SDK). Bạn có thể tải TFS
SDK về từ http://go.microsoft.com/fwlink/?linkid=68586
Mặc dù không phải là phổ biến, nó cho phép viết một layer
tích hợp để cho phép một client không phải là Visual Studio 2005 làm việc với Team
Foundation Version Control.
Mã nguồn bổ sung
• Để xem các đoạn code đơn giản buộc phải comments các check-in, hãy xem "Sample
Checkin Policy: Make Sure the Comment Isn't Empty" tại http://blogs.msdn.com/jmanning/archive/2006/01/21/515858.aspx
Làm Việc Với Version
Control Từ Command
Line Như Thế Nào?
Team Foundation Server cung cấp
công cụ TF command line tool (Tf.exe) để cho phép bạn thực hiện các hoạt động source
control. Thí dụ, bạn có thể sử dụng dòng lệnh để lên kế hoạch cho các hoạt động
bằng cách sử dụng Microsoft Windows® Task Scheduler.
Để đảm bảo là các đường dẫn
phù hợp và các môi trường khác được thiết lập, bạn hãy chạy công cụ từ Visual
Studio 2005 Command Prompt window, hay là chạy tập tin Vsvars32 batch file, thường được đặt
trong DriveLetter:\Program Files\Microsoft Visual Studio 8\Common7\Tools. The
command line hỗ trợ hầu hết các lệnh source control, gồm có Checkin, Checkout,
Get, History, Shelve, Branch, Merge, Label, Status, Undelete, và Undo.
Sau đây là các hoạt động thông
thường mà bạn có thể muốn thực thi từ command line:
- Đồng bộ các tập tin từ server đến máy tính của
bạn - tf get
- Thêm một tập tin đến server - tf add
- Check out một tập tin để chỉnh sửa - tf checkout
- Check in các thay đổi đang chờ xử lý pending
changes - tf checkin
- Retrieve một tập changeset cụ thể từ server -
tf get /version
Các hoạt động sau chỉ có thể
được thực thi từ command line:
- Xóa workspace của một user - tf workspace /delete
- Undo lại check-in của một user - tf undo
- Unlock lại các lock của một user - tf lock
- Xác định label scope - tf label
- Thực hiện một baseless merge - tf merge
Mã nguồn bổ sung
Tài liệu hoàn chỉnh của phần này bạn có thể download tại đây:
http://cid-c756261140cf0eb3.skydrive.live.com/self.aspx/GT/Cau%20hoi%20va%20Tra%20loi.doc