Sự khác biệt giữa git-tf và git-tfs là gì?


76

Gần đây tôi đã thực sự chán ngấy TFS. Tôi nghe nói rằng có một ánh sáng ở cuối đường hầm. Rõ ràng tôi có thể sử dụng git-tf hoặc git-tfs và coi mã của tôi như thể nó được quản lý bởi git, nhưng có thể đẩy / kéo đến / từ máy chủ TFS trung tâm.

Câu hỏi chính của tôi là tôi không chắc mình nên sử dụng cái nào trong số này. Có git-tf được Microsoft hỗ trợ chính thức và có git-tfs đã tồn tại lâu hơn rất nhiều. Sự khác biệt giữa những thứ này là gì và tôi nên thử cái nào trước?


2
Tôi cảm thấy cho bạn. Bạn có thể đổ TFS càng sớm thì càng tốt. Sau đó, chỉ cần đi thẳng dòng lệnh với MSysGit. Đừng bận tâm đến bất cứ điều gì khác. Làm việc tốt cho tôi trong 5 năm qua.
Adam Dymitruk

6
@AdamDymitruk tôi làm việc với một đội ngũ khá cởi mở và như vậy, vì vậy nó có thể xảy ra một ngày nào đó, nhưng đối với ngay bây giờ nó quá tốn kém để chỉ cần thả vì chúng ta có rất nhiều những thứ khác trong TFS hơn mã nguồn
Earlz

Câu trả lời:


91

Disclaimer: Tôi bắt đầu các git-tfdự án và mặc dù dự án hiện đang trong tay rất có khả năng mà không có tôi là một cộng tác viên thường xuyên, bạn hoàn toàn nên xem xét ý kiến của tôi về vấn đề này để được mạnh mẽ thiên vị. (Và, giả sử bạn đang sử dụng Windows, có lẽ không mong đợi.)

Có hai điểm khác biệt cơ bản giữa hai công cụ:

  • git-tfsđược xây dựng cho người dùng Windows và được viết trên .NET TFS SDK. TFS SDK sẽ không chạy trong Mono, vì vậy điều này git-tfskhông phù hợp để sử dụng trên nhiều nền tảng.

  • git-tfđược xây dựng cho người dùng đa nền tảng và được viết trên Java TFS SDK. Do đó, nó sẽ chạy ở bất kỳ đâu được hỗ trợ bởi Java TFS SDK (Windows, Mac, Linux, AIX, HP-UX, Solaris, v.v.) git-tfđược tạo rõ ràng để cho phép người dùng Xcode truy cập TFS.

Tất nhiên, trên Windows, bạn có thể sử dụng một trong hai. Tôi sẽ không nhất thiết phải nói cái này tốt hơn cái kia. Nhưng tôi sẽ nói:

  1. Khiếu nại lớn nhất của tôigit-tfs là nó sẽ không hoạt động trên Mac OS. Nếu có một cách để tạo ra git-tfsđa nền tảng, thì git-tfgần như chắc chắn sẽ không tồn tại.

  2. git-tfsnhanh hơn trong một số trường hợp hơn git-tf. Hiệu suất không phải là ưu tiên của chúng tôi trong một vài lần sửa đổi đầu tiên, mà là tính đúng đắn.

  3. Bởi vì git-tfcó một ma trận hỗ trợ nền tảng rộng, điều này có nghĩa là chức năng của nó nhất thiết bị hạn chế. Ví dụ: không có giao diện người dùng. git-tfs, mặt khác, có một checkintoollệnh sẽ mở hộp thoại Kiểm tra TFS bình thường. Điều này có thể đặc biệt hữu ích trong việc hình dung các thay đổi của bạn. (Nếu tôi nhớ lại, bạn có thể mở ra một hình ảnh khác biệt phù hợp từ đó, v.v.)

  4. git-tfhoạt động bằng cách đưa trực tiếp kho lưu trữ git, tải các đối tượng TFS trực tiếp vào cơ sở dữ liệu đối tượng git. git-tfshoạt động bằng cách tạo ánh xạ thư mục làm việc TFS trong một thư mục ẩn, sau đó điền kho lưu trữ git từ đó. Có một hình phạt đĩa ở đây, vì vậy nếu bạn có kho lưu trữ khổng lồ, bạn có thể cảm thấy điều này.

  5. git-tfscó thể cố gắng ánh xạ các nhánh TFS của bạn với các nhánh git của bạn. Rất nhiều người sẽ thấy điều này là tích cực git-tfs, mặc dù tôi thì không: mô hình phân nhánh của git (ở cấp kho lưu trữ) và mô hình phân nhánh của TFS (được biểu thị dưới dạng các thư mục trong kho lưu trữ) hoàn toàn khác nhau đến mức có thể gây ra sự cố trong bất kỳ điều gì ngoại trừ quy trình làm việc đơn giản nhất. Nhưng số dặm của bạn có thể khác nhau.

  6. git-tfsđược phát triển tích cực bởi một cộng đồng. git-tfchưa có sự chấp nhận của cộng đồng.

Tôi không muốn làm cho nó nghe như tôi đang nói git-tflà xấu. Nó không thể. Tôi nghĩ nó thực sự khá tốt. Nhưng nó có thể không phải là sự lựa chọn tốt nhất của bạn.


Cập nhật: git-tfđã hết tuổi thọ . Nó không còn được duy trì hoặc hỗ trợ bởi Microsoft. Chúng tôi đề xuất git-tfsnếu bạn muốn có giải pháp TFS <-> git hai chiều.


2
Vì vậy, về cơ bản sử dụng git-tf trên không phải Windows và git-tfs trên Windows?
Earlz

9
Có vẻ như tôi sẽ sử dụng git-tfs. Tôi sẽ không bao giờ cài đặt Java trên hộp phát triển của mình trong bất kỳ trường hợp nào.
ATL_DEV

Hơn một năm sau, bao nhiêu phần trăm điều này vẫn đúng?
João Portela

Đối với các repos lớn hơn, git-tfs không gặp phải trường hợp ngoại lệ bộ nhớ như git-tf. Khá nhiều đối số duy nhất cho git-tf là nó là xplat.
Andrew Clear

Bây giờ .Net chạy khắp mọi nơi, có lẽ đã đến lúc phải di chuyển của bạn? :)
Mrchief

30

Tuyên bố từ chối trách nhiệm: Tôi là người phát triển dự án git-tfs

Chỉnh sửa: git-tf không được duy trì nữa ...

Chỉnh sửa: git-tfs cũng không được duy trì tích cực nữa.

Có hỗ trợ phân nhánh TFS trong git-tfs (tìm nạp các nhánh hiện có, tạo nhánh, hợp nhất các nhánh dễ dàng hơn so với TFS, ... bằng branchlệnh). Nó hoạt động hầu hết thời gian nhưng không hoạt động với quy trình làm việc phức tạp của các chi nhánh TFVC ...

Xem:

git-tfs cũng có lẽ là công cụ duy nhất cho phép bạn di chuyển từ TFS (VC) sang TFS (Git), quản lý các workitem nếu cần hoặc kho lưu trữ git đơn giản.

Và một số tính năng hay khác ...

(Và nó hoạt động tích cực hơn và được hỗ trợ nhiều hơn )


6

Cho bất kỳ ai tìm thấy chủ đề này:

Git-TFđã chính thức bị ngừng cung cấp sau khi không được cập nhật sau năm 2013 và hiện được đề xuất rõ ràng Git-TFSnhư một giải pháp thay thế.

Git-TF End-of-Life

Git-TF đã hết tuổi thọ. Nó sẽ không có bản cập nhật nào nữa và không còn được Microsoft hỗ trợ nữa.

Microsoft Visual Studio Team Services hiện cung cấp một công cụ nhập đơn giản để nhập kho lưu trữ Kiểm soát Phiên bản Team Foundation vào kho lưu trữ Git. Chúng tôi khuyên bạn nên sử dụng điều này để chuyển đổi kho lưu trữ TFVC sang Git.

Nếu bạn yêu cầu nhu cầu chuyển đổi nâng cao hơn hoặc bạn muốn kết nối kho lưu trữ TFVC và làm việc với kho lưu trữ Git cục bộ, chúng tôi đề xuất dự án git-tfs .

Git-TF không nên được sử dụng cho các dự án mới, nhưng nó sẽ vẫn còn trên kho lưu trữ Codeplex cho người dùng cũ.

(Phần được thêm vào trang codeplex của dự án vào tháng 4 năm 2017 bởi Edward Thomson, người khởi xướng và tác giả của câu trả lời được chấp nhận)

Git-TFSdường như đang được duy trì tích cực: https://github.com/git-tfs/git-tfs/commits/master

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.