2009-02-17 35 views
269

Việc đặt giá trong TFS chỉ đơn thuần là kiểm tra mềm để các thành viên khác trong nhóm có thể xem mã nguồn không?Kệ trong TFS là gì?

tức là mã bị treo sẽ không được biên dịch phải không?

Trả lời

93

Kệ là cách tiết kiệm tất cả các thay đổi trên hộp của bạn mà không cần đăng ký. Các thay đổi được duy trì trên máy chủ. Vào bất kỳ lúc nào sau này, bạn hoặc bất kỳ đồng đội nào của bạn có thể "unshelve" chúng trở lại bất kỳ máy nào của bạn.

Nó cũng tuyệt vời cho mục đích đánh giá. Trong nhóm của tôi để kiểm tra, chúng tôi sẽ thay đổi các thay đổi của chúng tôi và gửi email có mô tả thay đổi và tên của changeset. Những người trong nhóm có thể xem các thay đổi và đưa ra phản hồi.

FYI: Cách tốt nhất để xem xét một shelveset là với lệnh sau đây

xét tfpt/shelveset: shelvesetName; userName

tfpt là một phần của các công cụ Team Foundation điện

+0

cần lưu ý rằng hôm nay sẽ không có lý do gì để tự đặt các thay đổi và thông tin email theo cách thủ công. Quy trình hiện đại là yêu cầu xem xét mã. – ChiefTwoPencils

30

Đúng vậy. Nếu bạn tạo giá, những người khác làm mới nhất sẽ không thấy mã của bạn.

Nó đặt các thay đổi mã của bạn lên máy chủ, có thể sao lưu tốt hơn máy tính công việc của bạn.

Nó cho phép bạn nhận các thay đổi của bạn trên một máy khác, nếu bạn cảm thấy sự thôi thúc làm việc ở nhà.

Những người khác có thể thấy giá của bạn (mặc dù tôi cho rằng điều này có thể là tùy chọn) để họ có thể xem xét mã của bạn trước khi đăng ký.

+0

** Đúng vậy. Nếu bạn tạo giá, những người khác làm mới nhất sẽ không thấy mã của bạn. ** Có nghĩa là 1) khi tôi kiểm tra mã trong TFS thì thành viên trong nhóm của tôi sẽ thấy mã trong systen của anh ấy nếu anh ấy nhận được muộn nhất ? 2) Vì vậy, điều đó có nghĩa là tài khoản nào chúng tôi đã đặt mã, từ cùng một tài khoản chỉ chúng tôi sẽ thấy mã bị treo?hãy sửa tôi nếu tôi sai – Krish

+0

Bạn có thể thấy giá của người khác nếu bạn muốn. – teedyay

+0

Để chính xác hơn, "những người khác làm mới nhất sẽ không ** tải xuống ** mã của bạn" – sergiol

14

tôi đi qua này tất cả các thời gian, thông tin để bổ sung liên quan đến ngành:

Nếu bạn đang làm việc với nhiều chi nhánh, shelvesets được gắn với các ngành cụ thể mà bạn tạo ra chúng. Vì vậy, nếu bạn để cho một changeset gỉ trên kệ quá lâu và phải unshelve đến một chi nhánh khác nhau, sau đó bạn phải làm điều đó với việc phát hành tháng bảy của các công cụ quyền lực.

tfpt unshelve /migrate 
405

Kệ có nhiều công dụng. Những cái chính là:

  1. Chuyển ngữ cảnh: Lưu công việc hiện tại của bạn để bạn có thể chuyển sang tác vụ ưu tiên cao khác. Giả sử bạn đang làm việc trên một tính năng mới, quan tâm đến doanh nghiệp của riêng bạn, khi sếp của bạn chạy vào và nói "Ahhh! Bug Bug Bug!" và bạn phải thả các thay đổi hiện tại của mình lên đối tượng địa lý và sửa lỗi. Bạn có thể đặt công việc của mình lên tính năng, sửa lỗi, sau đó quay lại và bỏ sót để thực hiện các thay đổi của bạn sau này.
  2. Chia sẻ các thay đổi: Nếu bạn muốn chia sẻ một thay đổi mã mà không cần kiểm tra mã, bạn có thể giúp người khác dễ dàng truy cập bằng cách đặt nó. Điều này có thể được sử dụng khi bạn đang đi qua một nhiệm vụ không đầy đủ cho người khác (linh hồn nghèo) hoặc nếu bạn có một số loại mã kiểm tra bạn sẽ không bao giờ EVER kiểm tra trong đó người khác cần thiết để chạy. h/t với các câu trả lời khác về việc sử dụng tính năng này để đánh giá, đó là một ý tưởng rất hay.
  3. Lưu tiến trình của bạn: Trong khi bạn đang làm việc trên một tính năng phức tạp, bạn có thể thấy mình ở 'điểm tốt' nơi bạn muốn lưu tiến trình của mình. Đây là thời điểm lý tưởng để đặt mã của bạn. Giả sử bạn đang hack một số CSS/HTML để sửa lỗi hiển thị. Thông thường bạn đập vào nó, lặp lại mọi kludge có thể bạn nghĩ tới cho đến khi nó có vẻ đúng. Tuy nhiên, một khi nó có vẻ đúng, bạn có thể muốn thử và trở lại để dọn dẹp đánh dấu của bạn để người khác có thể hiểu những gì bạn đã làm trước khi bạn kiểm tra nó. Trong trường hợp này, bạn có thể che mã khi mọi thứ hiển thị đúng , sau đó bạn được tự do để đi và refactor đánh dấu của bạn, biết rằng nếu bạn vô tình phá vỡ nó một lần nữa, bạn luôn có thể quay trở lại và nhận được changeset của bạn.

Bất kỳ mục đích nào khác?

+12

Khi đặt giá thay đổi có thể bảo toàn các thay đổi đang chờ xử lý (hữu ích cho 2 hoặc 3) hoặc không (hữu ích cho 1) – dumbledad

+0

[Tài liệu Visual Studio về giá đỡ] (https://docs.microsoft.com/en-us/vsts/tfvc/suspend-your-work-manage-your-shelvesets) có một số ngữ cảnh bổ sung và cách thông tin. –

5

Một điểm bị bỏ lỡ trong nhiều cuộc thảo luận này là cách bạn hoàn nguyên về máy SAME mà bạn đã lưu trữ các thay đổi của mình. Có lẽ hiển nhiên với hầu hết, nhưng không phải với tôi. Tôi tin rằng bạn thực hiện một Thay đổi đang chờ hoàn tác - có đúng không?

Tôi hiểu quá trình này là như sau:

  1. Để gác lại những thay đổi đang chờ giải quyết hiện tại của bạn, nhấn chuột phải dự án, xiên, thêm một tên xiên
  2. này sẽ tiết kiệm (hoặc xiên) những thay đổi máy chủ (không ai sẽ nhìn thấy chúng)
  3. sau đó, bạn làm Undo Pending Changes để trở lại mã của bạn trở lại cuối cùng check-in điểm
  4. sau đó bạn có thể làm những gì bạn cần làm với mã quay trở ban đầu
  5. Bạn có thể Unshelve những thay đổi bất cứ lúc nào (có thể yêu cầu một số xung đột hợp nhất)

Vì vậy, nếu bạn muốn bắt đầu một số công việc mà bạn có thể cần để Shelve, hãy chắc chắn bạn kiểm tra trước khi bạn bắt đầu, như điểm đăng ký là nơi bạn sẽ quay trở lại khi thực hiện bước Hoàn tác đang chờ xử lý thay đổi ở trên.

+0

Bạn có thể bỏ qua bước hoàn tác thay đổi đang chờ xử lý nếu bạn xóa hộp kiểm "Giữ nguyên các thay đổi đang chờ xử lý cục bộ" khi tạo bộ giá. –

0

@JaredPar: Có, bạn có thể sử dụng Giá để xem xét nhưng lưu ý rằng giá sách có thể bị ghi đè bởi chính bạn/người khác và do đó không ổn định lâu dài. Do đó đối với các đánh giá liên quan đến quy định, bạn không bao giờ nên sử dụng Shelveset làm cơ sở mà là một checkin (Changeset). Đối với việc xem xét không chính thức, nó là ok nhưng không cho một đánh giá chính thức (ví dụ FTA có liên quan)!

0

Nếu bạn đang sử dụng các bản dựng Gated, khi xây dựng được kích hoạt, nó tạo ra một kệ của không gian làm việc của bạn được gửi để xây dựng. Nếu việc xây dựng thất bại, kệ sách bị từ chối. Nếu quá trình xây dựng thành công, một changeset được tạo ra và cam kết với TFS. Trong cả hai sự kiện, người thực hiện việc đăng ký/xây dựng đó sẽ phải hòa giải không gian làm việc, điều này cũng đơn giản như thực hiện Get Latest.

2

Kệ giống như các thay đổi của bạn đã được lưu trữ trong điều khiển nguồn mà không ảnh hưởng đến các thay đổi hiện tại. Có nghĩa là nếu bạn kiểm tra trong một tập tin trong kiểm soát nguồn nó sẽ sửa đổi các tập tin hiện có nhưng kệ giống như lưu trữ thay đổi của bạn trong kiểm soát nguồn nhưng không sửa đổi những thay đổi thực tế.