2015-08-28 13 views
5

Có cách nào để chạy git gc --prune=now trên Remote Team Foundation Server 2015 (tfs2015) không? Hoặc là cách duy nhất để chạy git gc --prune=now cục bộ rồi tạo kho lưu trữ mới trên tfs2015 và đẩy nó vào điều khiển từ xa mới, sau đó xóa kho lưu trữ cũ và đổi tên kho lưu trữ mới thành tên cũ. Đừng quên tắt cam kết thích thú khi làm điều đó.Team Foundation Server 2015 (tfs2015) chạy git gc --prune = bây giờ trên orgin/remote

Trả lời

5

Xem https://blogs.msdn.microsoft.com/congyiw/2015/12/14/why-does-cloning-from-vsts-return-old-unreferenced-objects/ - đây là giới hạn đã biết của git được lưu trữ TFS, nó không có lệnh gc.

Microsoft cung cấp hai cách giải quyết:

  • bản sao repo, làm sạch nó tại địa phương, xóa nó khỏi máy chủ, tạo một hình mới và đẩy bạn làm sạch một đến nó (những gì bạn mô tả trong câu hỏi của bạn)
  • không git clone, nhưng có được repo địa phương của bạn như thế này:

    mkdir newRepo 
    git init 
    git remote add origin 
    #fetch one branch first 
    git fetch origin master 
    #fetch everything else 
    git fetch origin 
    

    mà thủ đoạn TFS để thực sự gửi cho bạn chỉ là đối tượng mà bạn thực sự cần.

Tùy chọn 1 có vẻ hợp lý hơn với tôi nếu bạn có thể đủ khả năng mất yêu cầu kéo của mình v.v ... (ví dụ: nếu đây là repo tương đối mới).

Tùy chọn 2 cảm thấy thực sự tồi tệ, vì bất kỳ người dùng nào của repo cũng sẽ phải tạo bản sao theo cách thủ công theo cách này.

4

Cập nhật về việc thực hiện điều này trong TFS v.Next Và tất cả đã sẵn sàng triển khai trong VSTS https://blogs.msdn.microsoft.com/congyiw/2015/12/14/why-does-cloning-from-vsts-return-old-unreferenced-objects/ "UPDATE (2017-08-09): Chúng tôi đã triển khai các chỉ mục bitmap khả năng truy cập tới VSTS và xóa cheat clone được đề cập bên dưới. sẽ không còn tải xuống các đối tượng không thể truy cập được nữa. Chúng tôi vẫn chưa có git gc cấp đối tượng thực sự trên máy chủ, nhưng kích thước bản sao sẽ nhỏ hơn bây giờ

TFS on-prem sẽ nhận những thay đổi này trong v.Next (không có trong bất kỳ bản cập nhật nào của TFS 2017, nhưng bản phát hành chính tiếp theo). Như Brian Harry đã đề cập, chúng ta nên có một ứng cử viên phát hành cho v.Next trong một vài tuần nữa. "

Các vấn đề liên quan