Wiki


Wiki Table of Contents

Page Details

Published by:
This page has not yet been rated

Câu hỏi và Trả lời: Team Foundation Server Source Control and Versioning

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 ControlSave 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

Recent Comments

Leave the first comment for this page.