Wiki


Wiki Table of Contents

Tags

Page Details

Published by:
This page has not yet been rated

Hướng dẫn: Source Control

Hướng dẫn: Source Control

Các mục

Accessing Version Control

•  Xem xét sử dụng các công cụ command-line tool.

•  Sử dụng Microsoft® Visual Studio® 2005 Team Foundation Power Tools (TFPT) để unshelve một sự thay đổi change.

•  Sử dụng Team Foundation Power Tools để phục hồi một thay đổi change.

•  Sử dụng Team Foundation Power Tools để làm việc offline.

•  Sử dụng Team Foundation Power Tools để lấy một changeset.

•  Sử dụng Team Foundation Power Tools để remove các pending edit.

Administration

•  Tắt các quyền kế thừa permission trên các nhánh maintenance branche.

•  Từ chối(deny) các check-in permission cho các lập trình viên mà bạn chưa tin tưởng để thực hiện các thay đổi phần source của bạn.

Branch / Label / Merge

•  Sử dụng các label để đánh dấu các build mà bạn cần phải return.

•  Sử dụng các branche để phân chia các bản phát hành(release) được hỗ trợ.

•  Kế hoạch cấu trúc branch của bạn dựa vào các đường dẫn merge(merge path).

•  Branch tại một high level, gồm có các file cấu hình và file source.

•  Không thực hiện branch quá sâu.

•  Không branch nếu bạn không cần thiết.

•  Tránh các merge không có cơ sở nếu có thể.

•  Các full merge được ưa thích hơn là các "cherry-pick" merge.

•  Merge một cách thường xuyên.

•  Luôn tạo một thư mục top-level folder cho một team project mới để được xử lý như là một main branch.

•  Xem xét sử dụng candidate switch hay preview switch để double-check trước khi merging.

•  Khi các rename là một phần của merge, hãy chú ý đến các path mà các tool đề nghị.

•  Cẩn thận khi giải quyết các xung đột trong việc merge.

•  Kiểm tra các kết quả của một việc merge tại một thời điểm.

•  Build và run các test sau khi merge và trước khi check-in.

Check-ins and Check-in Policies

•  Chỉ check in phần code của bạn khi bạn đã sẵn sàng để share.

•  Sử dụng các shelveset để back up hay là share các pending change.

•  Giải quyết một work item trên một check-in.

•  Sử dụng các chính sách check-in policy để thực thi các tiêu chuẩn code.

•  Sử dụng các chính sách check-in policy để thực thi một cổng chất lượng code(code quality gate).

•  Phát hiện khi một policy bị ghi đè.

•  Lên kế hoạch để tránh các xung đột.

Checkout, Get, and Lock

•  Lấy các source mới nhất trức khi thực hiện các thay đổi.

•  Sử dụng các lệnh lock command tùy ý.

•  Giao tiếp với các cộng sự khi khóa lock các file.

Dependencies

•  Sử dụng các project reference bất cứ khi nào có thể.

•  Sử dụng các file reference chỉ nơi nào cần thiết.

•  Sử dụng copy local = true cho các project references và file references.

•  Sử dụng các URL động khi reference các Web service.

Distributed / Remote Development

•  Hãy đảm bảo là bạn nhận một ổ đĩa disk drive có kích cỡ phù hợp với proxy của bạn.

•  Tạo một scheduled task để lấy(pull) các file mới nhất định kì.

•  Giám sát định kì các proxy performance counter và event log.

•  Cấu hình thực hiện Timeout dựa trên kích cỡ file và bandwidth.

•  Disable proxy nếu nó sắp bị down trong một khoảng thời gian dài.

•  Xem xét các workspace cloak để giảm thiểu việc chuyển(transfer) các file không cần thiết.

Migration

•  Sử dụng VSS converter để di chuyển(migrate) đến Team Foundation Server Source Control.

•  Di chuyển(migrate) từ các source-control system khác đến Team Foundation Server Source Control.

Project / Workspace Management

•  Tách một nhà phát triển đơn(single developer) sử dụng các workspace chứ không phải là các  branche.

•  Delete và rename các file bằng cách sử dụng source control, chứ không phải là Microsoft Windows® Explorer.

•  Chỉ delete và rename với solution open của bạn.

•  Tạo một team project trên một application nếu bạn muốn di chuyển các asset của bạn giữa các phiên bản của ứng dụng.

•  Tạo một  team project trên một version nếu bạn muốn bắt đầu một cách mới hoàn toàn với từng phiên bản của ứng dụng.

•  Sử dụng branchđể share các code và binaries mà có yêu cầu kiểm thử integration testing.

•  Tránh các workspace mapping để hỗ trợ các phụ thuộc qua lại giữa các project.

•  Tạo một workspace mapping tại team project root level.

•  Sử dụng một đường dẫn local folder path duy nhất trên các shared computer.

•  Cấn nhắc việc chỉ ánh xạ(map) các một phần của source tree.

•  Cấu trúc source tree của bạn để hỗ trợ branching. Shelving

•  Sử dụng shelving để share các pending change cho việc xem xét hoặc bàn giao.

•  Sử dụng shelving để back up các pending change cho server.

•  Sử dụng shelving nếu bị gián đoạn bởi các công việc ưu tiên hơn.

 

Accessing Version Control

•  Xem xét sử dụng các công cụ command-line tool.

•  Sử dụng Team Foundation Power Tools để phục hồi một thay đổi change.

•  Sử dụng Team Foundation Power Tools để làm việc offline.

•  Sử dụng Team Foundation Power Tools để lấy một changeset.

•  Sử dụng Team Foundation Power Tools để remove các pending edit.

Xem xét sử dụng các công cụ command-line tool

Đối với các hoạt động không có sẵn trong Visual Studio, nếu bạn cần lên kế hoạch các hoạt động, hãy xem xét việc sử dụng các công cụ command-line tool như là Team Foundation Power Tools (Tfpt.exe) được cung cấp cùng với Team Foundation Server (TFS). Các công cụ Tfpt.exe tool có sẵn như một phần download riêng. Bạn có thể sử dụng các công cụ command-line tool này để lên kế hoạch các hoạt động bằng cách sử dụng Windows Task Scheduler.  

Để đảm bảo là các đường dẫn path phù hợp và các môi trường khác nhau(environment variable) được cài đặt, hãy chạy Tf.exe từ Visual Studio 2005 Command Prompt window, hay chạy file Vsvars32 batch file, thường được đặt tại DriveLetter:\Program Files\Microsoft Visual Studio 8\Common7\Tools. Công cụ Tf.exe tool hỗ trợ hầu hết các lệnh source control như là Checkin, Checkout, Get, History, Shelve, Branch, Merge, Label, Status, Undelete, 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 bằng cách sử dụng Tf.exe:

  • Đồng bộ hóa các file từ server đến máy của bạn - tf get
  • Thêm một file vào server - tf add
  • Check out một file để chỉnh sửa - tf checkout
  • Check in các pending change - tf checkin
  • Lấy một changeset cụ thể từ server - tf get /version

 

Có một số hoạt động mà bạn chỉ có thể được thực hiện từ command line:

  • Delete workspace của user khác - tf workspace /delete
  • Undo một hành động check-in của user - tf undo
  • Unlock một hành động lock của user - tf lock
  • Định nghĩa label scope - tf label
  • Thực hiện một merge không có cơ sở(baseless merge) - tf merge

Tài nguyên bổ sung

Sử dụng Team Foundation Power Tools để phục hồi một thay đổi change

The Team Foundation Power Tools (TFPT) cung cấp các chức năng version-control functionality mà không có sẵn trong Visual Studio. Thí dụ, bạn có thể sử dụng TFPT để giúp hỗ trợ các offline work hay để thực hiện các hành động rollback để undo các check-in của một changeset.  Hãy xem xét sử dụng TFPT nếu bạn cần unshelve một change. 

Hoạt động unshelve operation được TFS hỗ trợ, không cho phép các shelved change và các local change được merge với nhau. Bằng cách sử dụng TFPT để unshelve một change 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, sau đó TFPT có thể merge các change với một cách merge thứ ba. 

Bạn chạy command từ command line bằng cách sử dụng Tfpt.exe.

Tài nguyên bổ sung

Sử Dụng Team Foundation Power Tools Để Roll Back Các Change

Xem xét sử dụng TFPT nếu bạn cần roll back một change. 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 TFPT rollback command, bạn có thể cố gắng undo bất kì change nào được thực hiện trong một changeset  cụ thể. Không phải tất cả các change đều được roll back, nhưng các rollback được thực hiện trong hầu hết các scenario.

Bạn chạy dòng lệnh này từ command line bằng cách sử dụng Tfpt.exe.

Tài nguyên bổ sung

  • Để download Team Foundation Power Tools, hãy đến

http://www.microsoft.com/downloads/details.aspx?familyid=7324C3DB-658D-441B-8522-689C557D0A79&displaylang=en      

  • Để xem một forum đang thảo luận về Team Foundation Power Tools, hãy xem

http://forums.microsoft.com/MSDN/ShowForum.aspx?ForumID=930&SiteID=1  

Sử dụng Team Foundation Power Tools để làm việc offline

Offline working không được hỗ trợ trong TFS. Nếu bạn muốn work offline, bạn phải tuân thủ nghiêm ngặt các workflow sau đây: 

1.  Remove bằng tay các read-only flag.

2.  Edit các file.

 3.  Add hay delete các file

4.  Run the TFPT online command.  

Mỗi bước được mô tả chi tiết dưới đây. 

Quan trọng: Bạn phải rename bất kì file nào trong khi bạn offline. 

1.  Remove bằng tay các read-only flag.

Mặc định, tất cả các file trong workspace mà không được check out sẽ được đánh dấu là read-only. Khi bạn làm việc mà không có một server connection, bạn phải remove bằng tay các read-only flag khỏi các file trước khi chỉnh sửa hay xóa chúng. Để làm điều này, hãy click chuột phải vào file trong Windows Explorer, click Properties, xóa đi Read-only check box, và sau đó click OK. Ngoài ra, bạn có thể sử dụng  DOS command attrib -r

2.  Edit các file.

Bây giờ bạn có thể chỉnh sửa edit bất kì file nào mà bạn đã remove đi read-only flag.

3.  Add hay delete các file

Bạn có thể thêm hay xóa các file mà bạn đã remove đi read-only flag. Đừng rename các file, bởi vì công cụ TFPT online tool không phân biệt được một hành động rename từ một hành động xóa được ghép với một hành động thêm.

Lưu ý: Bạn phải xác định một lựa chọn Tfpt online command để có được nó để tìm kiếm các hành động xóa,  vì đây là thời gian dành cho các hoạt động.

4.  Run the TFPT online command.   

Khi bạn quay lại online, hãy chạy lệnh TFPT online command bằng cách đánh các  lệnh TFPT online ở trong command line. Lệnh này sẽ scan workspace của bạn đối với các file có thể ghi được và xác định những thay đổi nào nên được treo(chưa quyết định) trên server. Nếu bạn đã xóa bất kì file nào, hãy sử dụng chuyển đổi  /delete switch. Lệnh này nói cho tool là  đế scan đối với các file đã delete trong workspace của bạn. Công cụ tool sẽ hiển thị cửa sổ online window mà bạn có thể chọn những thay đổi để  pend trong workspace.

Tài nguyên bổ sung

  • Để download Team Foundation Power Tools, hãy đến

http://www.microsoft.com/downloads/details.aspx?familyid=7324C3DB-658D-441B-8522-689C557D0A79&displaylang=en    

Sử Dụng Team Foundation Power Tools Để Lấy Một Changeset

Xem xét sử dụng TFPT nếu bạn cần lấy một changeset. The TFPT GetCS command cho phép bạn nhận tất cả các item được liệt kê trong một changeset  tại thời điểm của changeset version. Điều này có ích nếu một đồng nghiệp đã kiểm tra một change mà bạn cần có trong workspace của bạn, nhưng bạn không thể thay đổi toàn bộ workspace cho version mới nhất. 

Bạn chạy lệnh này từ command line bằng cách sử dụng Tfpt.exe.

Tài nguyên bổ sung

  • Để download Team Foundation Power Tools, hãy đến

http://www.microsoft.com/downloads/details.aspx?familyid=7324C3DB-658D-441B-8522-689C557D0A79&displaylang=en    

  • Để xem một forum đang thảo luận về Team Foundation Power Tools, hãy xem tại

http://forums.microsoft.com/MSDN/ShowForum.aspx?ForumID=930&SiteID=1

Sử Dụng Team Foundation Power Tools Để Remove Các Pending Edit

Xem xét sử dụng TFPT nếu bạn cần remove các pending edit từ các file. The TFPT Undo Unchanged command remove các pending edit từ các file mà không  chưa thực sự được edit. Điều này có ích trong một scenario nơi mà bạn check out một số lượng lớn các file cho việc edit, nhưng chỉ thực hiện các thay đổi thực sự đến một số lượng nhỏ các file. Bạn có thể undo các edit của bạn trên các file chưa được thay đổi bằng cách chạy TFPT UU tool, mà so sánh các hash của các file trong local workspace để hash trên server để xác định các file có thực sự được edit hay không.

 Bạn chạy lệnh này từ command line bằng cách sử dụng Tfpt.exe.

Tài nguyên bổ sung

  • Để download Team Foundation Power Tools, hãy đến

http://www.microsoft.com/downloads/details.aspx?familyid=7324C3DB-658D-441B-8522-689C557D0A79&displaylang=en    

Administration

•  Không cho phép các quyền kế thừa permission trên các nhánh maintenance branche.

•  Từ chối(deny) các check-in permission cho các lập trình viên mà bạn chưa tin tưởng để thực hiện các thay đổi phần source của bạn.

Không Cho Phép Các Quyền Kế Thừa Permission Trên Các Nhánh Maintenance Branche.

Mỗi một branch được bảo trì- thí dụ, sau khi bạn chuyển một version của phần mềm của bạn- bạn có thể tắt các inherite permission để lock down cái cây tree. Sau khi thực hiện điều này, bạn có thể cấp cho cá nhân các user quyền PendChange và Checkin permission khi cần thiết để sữa chữa kịp lúc.

Tài nguyên bổ sung

 

Từ Chối(Deny) Các Check-In Permission Cho Các Lập Trình Viên Mà Bạn Chưa Tin Tưởng Để Thực Hiện Các Thay Đổi Phần Source Của Bạn

Bạn có thể từ chối deny các check-in permission trên source tree đối với các lập trình viên mà bạn chưa tín nhiệm, như là nhân viên mới thuê hay các nhân viên thực tập. Hãy chắc là bạn đã thiết lập các permission mong muốn của bạn (kể cả các permission cho account của bạn) trước khi tắt chế độ inheritance. Thay vì check in một cách trực tiếp, họ có thể thực hiện các pending change và sau đó shelve những thay đổi này. Một lập trình viên có thêm nhiều kinh nghiệm sau khi unshelve các thay đổi change, review lại, và kiểm tra check in chúng.

Tài nguyê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:

Hướng dẫn: Source Control

Recent Comments

Leave the first comment for this page.