TeamFoundationSever n Codeplex

29
TRƯỜNG ĐH CÔNG NGHỆ THÔNG TIN TP.HCM KHOA HỆ THỐNG THÔNG TIN NHẬP MÔN CÔNG NGHỆ PHẦN MỀM QUẢN LÝ SOURCE CODE VỚI TEAM FOUNDATION SEVER VÀ CODEPLEX Thực hiện: Nguyễn Hồ Trọng Thảo - 10520140 Võ Long Triều – 10520508 Võ Minh Sơn - 10520101 Thành Phố Hồ Chí Minh, tháng 11 năm 2012

Transcript of TeamFoundationSever n Codeplex

Page 1: TeamFoundationSever n Codeplex

TRƯỜNG ĐH CÔNG NGHỆ THÔNG TIN TP.HCM

KHOA HỆ THỐNG THÔNG TIN

NHẬP MÔN CÔNG NGHỆ PHẦN MỀM

QUẢN LÝ SOURCE CODE VỚI

TEAM FOUNDATION SEVER VÀ CODEPLEX

Thực hiện: Nguyễn Hồ Trọng Thảo - 10520140

Võ Long Triều – 10520508

Võ Minh Sơn - 10520101

Thành Phố Hồ Chí Minh, tháng 11 năm 2012

Page 2: TeamFoundationSever n Codeplex

MỤC LỤC

Tại sao phải quản lý Source Code ……………………………………………..……….…… 1

I. Tổng quan, nền tảng ứng dụng ……………………………………………………………. 2

1. ALM là gì? ………………………………………………………………………………………….. 2

2. Visual Studio Team Foundation Sever (VSTFS) ……………………………...….… 3

3. Team Explorer …………………………………………………………………………………... 4

4. Codeplex …………………………………………………………………………………………… 4

II. Quản lý Source code với Team Foundation Sever và Codeplex ………… 4

1. Sử dụng Codeplex ……………………………………………………………………………… 4

1.1 – Tạo Project ………………………………………………………………………………... 4

1.2 – Một số chức năng chính ……………………………………………………………... 6

a. Tùy chỉnh trang chủ …………………………………………………………………… 6

b. Quản lý Sourcode trực tuyến …………………………………………………………. 6

c. Quản lý nhân sự dự án …………………………………………………………………... 7

2. Sử dụng Team Explorer để quản lý Sourcode ……………………………………... 8

2.1 – Kết nối tới Team Foundation Sever ……………………………………………. 8

2.2 – Các thao tác quản lý Source Code trên Team Explorer ………………... 10

a. Thêm Source Code ……………………………………………………………………. 10

b. Cập nhật toàn bộ Source code lên sever …………………………………… 12

c. Cập nhật toàn bộ Project mới nhất từ Sever …………………………….. 13

d. Thao tác chuẩn bị trước khi chỉnh sửa code ……………………………. 14

e. Cập nhật những thay đổi lên Sever …………………………………………... 15

f. Đưa items mới get về vào Solution Explorer……………………………... 17

g. Sử dụng Shelve Pending Changes

để cập nhật Source Code lên server………………………………………….... 18

h. Xem lịch sử thay đổi ………………………………………………………………… 19

i. Quay lui (hủy bỏ) thao tác đã thay đổi trước đó ………………………... 20

j. So sánh Source Code trước khi Get về Local Folder ……………………. 21

k. Giải quyết xung đột khi Checkin ……………………………………………...... 24

l. Phân nhánh, kết hợp các phiên bản …………………………………………. 26

Tài liệu tham khảo ………………………………………………………………………………... 27

Page 3: TeamFoundationSever n Codeplex

1

Tại sao phải Quản lý Source code?

Trong các dự án lập trình, việc quản lý Source Code (Mã nguồn) rất quan trọng, quản

lý source code tốt giúp cho các thành viên của dự án có thể cộng tác với nhau một

cách thuận lợi nhất.

Thao tác quản lý giúp cho source code luôn được lưu trữ tại một nơi duy nhất đồng

thời các sự kiện thêm mới, chỉnh sửa sẽ được quản lý thông suốt, chính xác, tránh

việc trùng lặp hay xung đột về thông tin.

Page 4: TeamFoundationSever n Codeplex

2

I. Tổng quan, nền tảng ứng dụng.

1. ALM là gì?

- ALM (Application LifeRecycle Management): Quản trị vòng đời ứng dụng,

ALM mô tả các phương pháp quản trị của quá trình phát triển phần mềm.

Các thành phần trong giải pháp ALM của Microsoft

Hiểu một cách đơn giản ALM là nghiệp vụ quản trị trong công nghệ phần mềm, sử

dụng các công cụ để hỗ trợ và tích hợp các hoạt động quản trị, xây dựng kiến trúc,

viết mã, kiểm thử, theo dõi (tracking), phát hành (release) phần mềm.

- Visual Studio Team Foundation Sever chính là nền tảng hợp tác cốt lõi của giải

pháp AML.

Page 5: TeamFoundationSever n Codeplex

3

2. Visual Studio Team Foundation Sever (VSTFS)

Phiên bản VSTFS đầu tiên vào năm 2005, đã trải qua các phiên bản 2008,

2010, 2012.

Với Team Foundation Sever (TFS), người dùng các phiên bản của Visual

Studio khác nhau trong các vai trò khác nhau từ các nhà kiến trúc phần mềm,

lập trình viên, kiểm thử viên, cho đến nhà quản trị dự án đều có thể cùng cộng

tác trong một môi trường phát triển phần mềm và thống nhất được tạo bởi

TFS.

Kiến trúc hệ thống Visual Studio Team Foundation Sever

Page 6: TeamFoundationSever n Codeplex

4

3. Team Explorer

Trong kiến trúc Hệ thống Visual Studio Team Foundation Sever,

Team Explorer đóng vai trò là một ứng dụng phía Client có khả năng

kết nối với TFS.

Team Explorer được tích hợp sẵn trong Visual Studio, giúp chúng ta

có thể dễ dàng sử dụng để truy cập các chức năng của Team

Foundation Explorer hỗ trợ cho việc quản lý Sourcode.

4. Codeplex

Codeplex.com là một trang Web của Microsoft, được chuyên dùng để

lưu trữ những dự án mã nguồn mở. Nó đóng vai trò là một sever chứa

Source code của dự án, tại đây, chúng ta có thể tự tạo Project, chia sẻ,

tham gia cộng tác dự án với những người khác trong cộng đồng.

II. Quản lý Source code với Team Foundation Sever và Codeplex.

1. Sử dụng Codeplex

1.1 – Tạo Project

Truy cập http://codeplex.com và đăng nhập bằng tài khoản của Microsoft, hoặc tự

tạo mới một tài khoản.

Tại trang chủ, sau khi đăng nhập, ta nhấn vào nút Create Project.

Page 7: TeamFoundationSever n Codeplex

5

Điền đầy đủ thông tin về Project sẽ được tạo.

- Tại mục Source Control, chúng ta sẽ lựa chọn Team Foundation Sever và

chọn Team Explorer là phần mềm sử dụng để sử dụng các chức năng của

Team Foundation Sever cho việc quản lý Source code.

- Nhấn Create để tạo Project.

Sau khi tạo xong một Project mới, chúng ta sẽ được chuyển đến trang chủ

chứa thông tin về Project là trang web có địa chỉ do chúng ta nhập vào ở mục

2. CHOOSE A URL.

Page 8: TeamFoundationSever n Codeplex

6

Codeplex sẽ tự động xóa Project của bạn nếu trong vòng 30 ngày, kể từ ngày

tạo Project mà bạn không Public nó ra cộng đồng. Sau khi Public thì người

khác có thể truy cập vào địa chỉ này và Download Source code của dự án về.

1.2 - Một số chức năng chính

a. Tùy chỉnh trang chủ:

Tại menu HOME, sử dụng chức năng Edit Page, ta có thể thay đổi những thông tin

về Project.

b. Quản lý Source Code trực tuyến

Tại menu SOURCODE, chúng ta có thể quản lý Source code được lưu trữ tại sever,

xem thông tin lịch sử cập nhật, lấy những thông tin kết nối với phần mềm hỗ trợ

quản lý.

Page 9: TeamFoundationSever n Codeplex

7

Tại mục Connect, Codeplex cung cấp cho chúng ta các URL dùng để kết nối đến các

phần mềm hỗ trợ quản lý Sourcode như Team Foundation Sever trong Visual Studio,

hay Subversion… Username, Password dùng để khai báo khi kết nối.

c. Quản lý nhân sự dự án

Để thêm thành viên vào dự án, chúng ta sử dụng Menu PEOPLE, sau đó vào mục

Manage Team.

Username: Điền tên thành viên (đã có tài khoản trên Codeplex).

Role: là chức vụ của thành viên trong dự án.

Tham khảo quyền hạn của mỗi loại thành viên dự án tại link:

http://mssoft.codeplex.com/team/roles

Page 10: TeamFoundationSever n Codeplex

8

2. Sử dụng Team Explorer để quản lý Sourcode

2.1 – Kết nối tới Team Foundation Sever.

Khởi động Visual Studio 2012, từ menu TEAM, chọn Connect to Team Foundation

Sever, cửa sổ Connect to Team Foundation Sever xuất hiện.

Bước 1, ta nhấn nút Severs, cửa sổ Add/Remove Team Foundation Sever xuất

hiện.

Bước 2, ta nhấn nút Add… để thêm sever vào.

Bước 3, tại cửa số Add Team Foundation Sever, ta sử dụng link Project cung cấp

bởi Codeplex vào ô Name or URL of Team Foundation Sever (mục 1.2 –b).

Nếu không sử dụng host của

Codeplex, chúng ta có thể tự

điền các thông số về sever

riêng để có thể Kết nối với

Team Foundation Sever.

Page 11: TeamFoundationSever n Codeplex

9

Tiếp theo, điền Username, password từ Codeplex (ở mục 1.2 –b) để kết nối.

Đánh dấu tick vào ô Remember my credentials nếu muốn lưu tài khoản tại Hệ điều

hành.

Page 12: TeamFoundationSever n Codeplex

10

Danh sách các Project đã tạo trên Sever Codeplex sẽ được hiển thị ở mục Team

Projects. Chọn Project muốn kết nối và nhấn Connect.

Cửa sổ Team Explorer hiển thị những công cụ hỗ trợ quản lý Source code, như vậy

việc kết nối tới Team Foundation Sever đã thành công.

2.2 – Các thao tác quản lý Source Code trên Team Explorer.

a. Thêm Source Code

Tại giao diện chính của Team Explorer, chọn Source Control Explorer để mở cửa

sổ quản lý Sourcode.

Màn hình của cửa sổ Source Control Explorer được chia làm 2 phần.

Bên trái (Folder) là thư mục trên sever, bên phải (Local Path) là đường dẫn thư

mục được lưu trên máy cá nhân.

Ta chọn Project chứa trong thư mục trên Sever (1), sau đó nhấn biểu tượng (2) Add

Items to Folder.

Page 13: TeamFoundationSever n Codeplex

11

Cửa sổ Add to Source Control hiện ra, tại đây ta nhấn Browse… để tìm đến thư

mục chứa Sourcode trên máy, sau đó ta chọn những items muốn thêm vào để quản

lý.

Tại mục Destination source control folder, ta chọn thư mục đích trên sever để lưu

trữ Source code.

Mục Destination local folder: Để chọn thư mục để lưu trữ Source trên máy, ta nhấn

Map… (Source code trên sever tải về sẽ được lưu trữ ở đây).

Page 14: TeamFoundationSever n Codeplex

12

Tại cửa sổ Map, ta chọn Local Folder để map, có thể là thư mục đang chứa Source

Code cần add trên máy hoặc một thư mục khác.

Sau khi thực hiện Map Folder, ta trở lại với cửa sổ Add to Source Control và nhấn

Finish để hoàn tất.

Sau khi đã add thành công, các items đều có dấu + phía trước, và chúng vẫn chưa

được cập nhật lên sever.

b. Cập nhật toàn bộ Source code lên sever.

Page 15: TeamFoundationSever n Codeplex

13

c. Cập nhật toàn bộ Project mới nhất từ Sever

Để thực hiện cập nhật phiên bản mới nhất của Project từ Sever, ta thực hiện lệnh Get

Tại khung Folders, chọn

project (mục) cần cập nhật lên

sever, rồi nhấn biểu tượng (2)

để Check in lên sever

Sau khi nhấn biểu tượng Check In, tại

cửa sổ Pending Changes của Team

Explorer, sẽ xuất hiện quá trình chuẩn

bị cho việc Check In, cập nhật nội dung

Source Code lên sever.

Tại mục Comment, chúng ta điền nội

dung để thông báo cho các thành viên

trong nhóm biết các thay đổi vừa cập

nhật.

Nhấn nút Check In (2) để thực hiện cập

nhật Source code lên sever.

Page 16: TeamFoundationSever n Codeplex

14

Lastes Version.

d. Thao tác chuẩn bị trước khi chỉnh sửa code

Tại cửa sổ Source Control Explorer của Team Explorer, chọn các mục cần chỉnh sửa,

sau đó nhấn biểu tượng (2) Check out.

Tại khung Folders, chọn

project (mục) cần get dữ liệu,

rồi nhấn biểu tượng (2) Get

lasts Version (Recursive) để

cập nhật bản mới nhất từ

Sever

Page 17: TeamFoundationSever n Codeplex

15

Tại cửa sổ Check out hiện ra, ta chọn loại Lock type.

Có 2 loại Lock Type:

+ Unchange – Keep any existing lock: Chế độ Unchange này, cho phép các thành

viên có thể cùng check out, edit và check in lên sever.

+ Check In: Allow other users to check out but prevent them from checking in.

Chế độ Check In, chấp nhận thành viên khác có thể check out, nhưng không được

Check In ngược lại lên sever.

Sau đó nhấn Check Out để chuẩn bị chỉnh sửa.

e. Cập nhật những thay đổi lên Sever

Sau khi thực hiện các thao tác thay đổi với những items đã check out trước đó (Biểu

tượng dấu tick), hoặc với những items mới thêm vào (biểu tượng dấu +) chúng ta

thực hiện cập nhật những thay đổi đó lên sever bằng lệnh Check In.

Page 18: TeamFoundationSever n Codeplex

16

Chọn các items muốn cập nhật lên sever, nhấn biểu tượng (2) Check In.

Ta được chuyển đến cửa sổ Pending Changes của Team Explorer.

Tại mục Comment, chúng ta điền nội

dung để thông báo cho các thành viên

trong nhóm biết các thay đổi vừa cập

nhật.

Nhấn nút Check In để thực hiện cập

nhật Source code lên sever.

Tương tự mục b (cập nhật toàn bộ

Project)

Mỗi lần dùng thao tác Check In để cập

nhật Source Code lên sever, hệ thống

sẽ tạo ra 1 changset (đối tượng quản

lý sự thay đổi mã nguồn)

Page 19: TeamFoundationSever n Codeplex

17

f. Đưa items mới get về vào Solution Explorer.

Chức năng này giúp chúng ta sau khi get Project, nếu có những items mới từ các

thành viên khác add vào.

Tại cửa sổ Solution Explorer, chọn biểu tượng (1) Show all files.

Click chuột phải vào những items có biểu tượng phía trước (những items mới do

những thành viên khác add vào), chọn Include In Project.

Page 20: TeamFoundationSever n Codeplex

18

g. Sử dụng thao tác Shelve Pending Changes để cập nhật Source Code lên

server.

Tương tự như Check out, Shelve Pending Changes dùng để cập nhật tài nguyên lên

server nhưng điểm khác ở đây khi thực hiện Shelve thì TFS sẽ không tạo ra các

change set.

Ở cửa sổ Pending Changes hiện ra sau

khi chọn Shelve Pending Changes, ta

cần khai báo tên Shevle ở vị trí 1, sau

đó nhấn Shelve để tiến hành cập nhật

Soure Code lên server mà bỏ qua đối

tượng Changeset

Page 21: TeamFoundationSever n Codeplex

19

Thao tác Unshelve cũng giống như Check out và cũng sẽ không tạo ra change set như

Shelve

h. Xem lịch sử thay đổi

Chức năng View History trong Source Control Explorer

Cửa sổ History hiện ra sau đó, chúng ta có thể theo dõi lịch sử thay đổi theo các đối

tượng quản lý là Changeset hoặc là Labels.

Với các đối tượng changeset được đánh mã số, chúng ta có thể sử dụng nó để có thể

loại bỏ những thao tác đã thực hiện trước đó (nếu muốn) nếu có sai xót xãy ra. Chức

năng này được gọi là Rollback.

Tại khung Folder trong cửa sổ

Source Control Explorer, chọn

mục cần xem lịch sử, click chuột

phải và chọn View History

Page 22: TeamFoundationSever n Codeplex

20

i. Quay lui (hủy bỏ) thao tác đã thay đổi trước đó.

Ở cửa sổ Rollback hiện ra, ta sẽ thấy được mục ta cần Rollback ở mục Items to

Rollback, nếu muốn chọn lại, có thể nhấn nút Browse…

Tiếp theo, ta sẽ chọn kiểu Rollback: đối tượng changeset bất kì (Rollback changes

from single changeset), hoặc trong phạm vi giữa 2 đối tượng changeset (Rollback

Tại khung Folder trong cửa sổ

Source Control Explorer, chọn

mục cần Rollback, click chuột

phải và chọn Rollback…

Page 23: TeamFoundationSever n Codeplex

21

changes from a range of changeset), hoặc dựa trên phiên bản đặc biệt (Rollback

to a specific version)

Ở trên, ta sử dụng kiểu Rollback dựa trên một đối tượng changeset nhất định, ta có

thể điền kí hiệu của changeset muốn thay đổi được tìm thấy trong History (mục i)

hoặc có thể nhấn nút … để tìm changeset khác.

Ví dụ: ở đối tượng changeset kí hiệu là 19869, ta thêm form frmAIO, sau khi sử dụng

chức năng Rollback tại changeset 19869, form frmAIO đã bị xóa (hủy bỏ thao tác

được lưu trữ trong đối tượng changeset mang kí hiệu là 19869)

j. So sánh Source Code trước khi Get về Local Folder

Trong Source Control Explorer cung cấp chúng ta một chức năng so sánh Source

Code giữa các phiên bản với nhau.

Với vai trò là một người quản lý dự án, bạn có thể chủ động kiểm tra code đã được

thay đổi trên sever như thế nào trước khi quyết định get về, bạn có quyền chỉnh sửa

code đó cho phù hợp.

Form frmAIO bị xóa, sẽ có

dấu x trước form

Page 24: TeamFoundationSever n Codeplex

22

Mở Cửa sổ History để kiểm tra những thay đổi đã cập nhật lên sever.

Sử dụng đối tượng changeset để kiểm tra và so sánh Source Code.

Page 25: TeamFoundationSever n Codeplex

23

Click chuột phải vào đối tượng Changeset muốn kiểm tra, chọn Compare…

Tại cửa sổ Compare hiện ra:

- Source Path: chỉ ra đường dẫn nguồn trên server của thư mục cần so sánh, có thể

chọn lại thư mục khác.

- Source Version: Chỉ ra phiên bản Source code cần so sánh, dựa trên đối tượng

Changeset, Label…

- Filter: Lọc theo định dạng file…

Page 26: TeamFoundationSever n Codeplex

24

Tại cửa sổ Folder Difference hiện ra sau đó, chúng ta sẽ thấy những file có sự khác

biệt sẽ được đánh dấu màu đỏ, và ở cột Different là Yes.

Click chuột phải vào file cần so sánh và chọn Compare Files…

Tại đây, ta có thể so sánh những đoạn code nào là khác nhau và chỉnh sửa cho phù

hợp, sau đó Save lại.

k. Giải quyết xung đột khi Checkin

Đôi khi chúng ta không sử dụng chức năng Check out trước khi chỉnh sửa code,

hoặc có check out, nhưng sử dụng chế độ Unchange – Keep any existing lock thì

tất cả thành viên trong dự án đều có thể Check out, Edit, Check in trên cùng một file

mã nguồn là điều có thể xãy ra. Điều này sẽ dẫn đến sự xung đột (Conflict) mã

Page 27: TeamFoundationSever n Codeplex

25

nguồn, lúc đó để giải quyết vấn đề này, chúng ta sẽ được so sánh Source Code giữa

Local và Sever sau đó sẽ quyết định giữ lại Sourcode nào hoặc Trộn lại với nhau.

Cửa sổ Resolve Conflits hiện ra, ở cửa sổ này chúng ta sẽ thấy được những file nào

trong mã nguồn có sự xung đột và chúng ta có 3 lựa chọn để giải quyết xung đột như

sau:

- Merge Changes In Merge Tool: Chúng ta sẽ trộn Sourcode trên công cụ

Merge Tool

- Take Server Version: Đồng bộ phiên bản hiện có trên Server với Local

- Keep Local Version: Đồng bộ phiên bản hiện có ở Local với server.

Với chức năng Merge Changes In Merge Tool chúng ta sẽ được so sánh Sourcode

giữa Server và Local, đồng thời sẽ được xem kết quả sau khi Merge tại cửa sổ Result.

Khi đó chúng ta sẽ quyết định “trộn” Sourcode lại hay không.

Khi thực hiện Check In, nếu xãy ra

xung đột, Cửa sổ Pending Changes sẽ

thông báo cho chúng ta biết, có bao

nhiêu xung đột xãy ra.

Nhấn Resolve Conflicts để thực hiện

các thao tác tiếp theo giải quyết xung

đột.

Page 28: TeamFoundationSever n Codeplex

26

l. Phân nhánh, kết hợp các phiên bản

Để tạo ra nhiều phiên bản mới chúng ta có thể sử dụng chức năng Branch.

Branch giúp các thành viên có thể quản lý tài nguyên nhiều phiên bản cùng lúc và

cùng phát triển song song các phiên bản

Ngược lại, chúng ta dùng chức năng Merge để kết hợp 2 phiên bản lại với nhau.

Page 29: TeamFoundationSever n Codeplex

27

Tài liệu tham khảo:

Wikipedia, Application lifecycle

management, http://en.wikipedia.org/wiki/Application_lifecycle_management

Application Lifecycle Management with Visual Studio and Team Foundation

Server, http://msdn.microsoft.com/en-us/library/fda2bad5.aspx

Working with Team Foundation Clients, http://msdn.microsoft.com/en-

us/library/ms181304.aspx