2009-12-16 41 views
9

OK, vì vậy tôi đã bắt đầu một hợp đồng mà họ đang sử dụng (gulp) Visual SourceSafe và đang tìm cách chuyển sang thứ gì đó tốt hơn. Tôi đã đề nghị Git. Tôi tình cờ gặp vss2git, có vẻ hữu ích khi di chuyển từ VSS. Có ai sử dụng nó không?Có ai đã thử vss2git không?

Rất cám ơn!

+0

Nếu không muốn lúng túng, GIT là một người nghèo phù hợp cho một tổ chức dựa trên Windows (các công cụ không phải là * khá * có được nêu ra) và bước nhảy vọt lớn cho một được sử dụng để VSS. Ngoài ra, đối với tất cả các lợi thế của nó, là DVCS không có vấn đề riêng của mình. Tôi hoàn toàn hoan nghênh việc chuyển chúng về phía trước (tới TFS, SVN, Mercurial, GIT hoặc bất kỳ thứ gì). – Murph

+3

Tôi nghĩ rằng các công cụ ít có vấn đề hơn là suy nghĩ hiện tại của rất nhiều nhà phát triển Windows - nếu bạn cảm thấy thoải mái trong bash shell, thì bạn có tất cả các công cụ bạn cần với Git Bash! Cuối cùng, * mọi thứ * tốt hơn VSS. Subversion là ok, và tôi đã sử dụng nó trong nhiều năm, nhưng nó không chính xác làm cho phân nhánh/sáp nhập dễ dàng. – Radicalise

+1

Phân nhánh đầy đủ tầm thường trong SVN dưới cửa sổ (cho phép tôi sử dụng TortoiseSVN) - Tôi không chắc rằng tôi muốn nó dễ dàng hơn nhiều, việc hợp nhất không chính xác là khó khăn (suy nghĩ của nó là vấn đề) và tốt hơn nhiều kể từ 1.5 . Tuy nhiên, thực sự là một câu hỏi về việc tìm kiếm các công cụ thích hợp cho môi trường chứ không phải là thúc đẩy lựa chọn của bạn bởi vì bạn cảm thấy thoải mái với họ (không phải là họ sai - hay tôi tốt hơn - chỉ để gợi ý rằng nó cần được xem từ một vài bước trở lại). – Murph

Trả lời

2

Cũng không có nhiều cam kết, và mô tả dự án cho biết nó đã được phát triển ban đầu cho công ty của người sáng tạo, vì vậy nó có thể không có nhiều sử dụng rộng rãi.

Có thể nói rằng, sẽ rất đáng để chạy thử trên một số sao chép cơ sở dữ liệu VSS của bạn. Nếu nó hoạt động sau đó tuyệt vời, nếu không thì có thể bạn có thể làm việc trên các mã một chút hoặc liên hệ với tác giả để được giúp đỡ/góp ý.

+1

OK, điểm tốt, cảm ơn. Tôi * hy vọng * để thuyết phục họ rằng lịch sử phiên bản của họ không đáng làm phiền, nhưng, vì điều đó có lẽ sẽ không hiệu quả, sau đó tìm cách di chuyển lịch sử sẽ rất quan trọng - điều cuối cùng tôi muốn là có VSS treo quanh. – Radicalise

26

Tôi là tác giả của vss2git. Nếu lịch sử phiên bản của bạn không liên quan đến nhiều hành động duy nhất cho VSS, như cổ phiếu và lưu trữ, kho lưu trữ của bạn sẽ di chuyển mà không gặp sự cố. Tôi đã thực hiện một số bản sửa lỗi trong các lĩnh vực đó dựa trên phản hồi từ những người dùng khác, do đó, có cơ hội thành công hợp lý ngay cả khi có.

Tôi nên chỉ ra rằng số lần cam kết đối với dự án trên Google Code không phải là dấu hiệu rõ ràng về số lượng sàng lọc mà nó đã trải qua; phần lớn sự phát triển đã được phiên bản trong một kho lưu trữ Git riêng, chỉ với các bản phát hành được đẩy vào SVN. Tuy nhiên, tôi sẽ nhắc lại những gì người khác đã chỉ ra: Luôn chạy vss2git trên sao chép của kho lưu trữ của bạn. Các tệp được mở chỉ đọc, nhưng bạn không muốn các vấn đề về khóa khi người dùng khác cố gắng cập nhật kho lưu trữ trong VSS để nó ở trạng thái không nhất quán.

Đối với Git trên Windows, nó hoạt động tốt trong những ngày này (tôi sử dụng msysgit), ngay cả đối với nhà phát triển không có nền Unix. Tất nhiên, nếu bạn có các nhà phát triển bị dị ứng với việc sử dụng dòng lệnh và yêu cầu tích hợp GUI với các IDE khác nhau, bạn có thể tốt hơn với SVN. Bạn sẽ mất tốc độ và tính linh hoạt tuyệt vời của một DVCS, nhưng SVN có sự tích hợp trưởng thành hơn. Và được cho là phân nhánh SVN không còn đau đớn như trước đây nữa.

+2

chỉ để cập nhật, vì tôi chắc chắn mọi người đều biết tích hợp giữa git và nhiều IDE khác nhau đã đi một chặng đường dài, với MS thậm chí còn bao gồm nó trong VS2013 – BlackICE

+0

@BlackICE - https://www.humankode.com/security/how-a -bug-in-visual-studio-2015-lộ-my-source-code-on-github-and-cost-me-6500-in-a-vài-giờ – JohnP

+0

Trevor - VSS2Git của bạn có hoạt động trên 5.0 không? – JohnP

-1

Dường như vss2git sẽ không chuyển đổi nội dung đã lưu trữ. Cơ sở dữ liệu của chúng tôi đã bị hỏng sau khi sửa chữa vài năm trước, vì vậy chúng tôi đã lưu trữ và khôi phục từ bản sao lưu để tiến lên với cơ sở dữ liệu nhỏ hơn và đơn giản hơn. Vss2git hoạt động, nhưng kho git không chứa lịch sử trước khi khôi phục.

+3

Những người khác đã di chuyển nội dung được lưu trữ và khôi phục. Nếu bạn có thể tái tạo vấn đề trên một repo VSS bạn sẵn sàng chia sẻ, bạn nên báo cáo vấn đề trên danh sách gửi thư vss2git. –

4

Tôi đã thử vss2git trên bốn cơ sở dữ liệu VSS khác nhau và nó đã hoạt động hoàn hảo mọi lúc. Số lượng cam kết dao động trong khoảng từ 100 đến 700.

3

Tôi cố gắng đưa ra câu trả lời chính xác nhất có thể cho câu hỏi "Có ai đã sử dụng nó không?" : "Có, tôi đã làm!"

By mạo hiểm một lần nữa việc xóa câu trả lời của tôi, tôi thêm một số nội dung hơn:

Đừng tải về "bậc thầy" chi nhánh nhưng sử dụng "Remigius" chi nhánh. Nó có một số sửa lỗi quan trọng

Git lệnh: clone git -b Remigius https://code.google.com/p/vss2git/

0

tôi đã sử dụng nó trên một phần nhỏ (một thư mục con với khoảng 350 tập tin với 3400 cam kết) của cơ sở dữ liệu VSS của chúng tôi. Nó đã đi khá tốt, những điểm sau đây có thể quan tâm:

  • trong repo git nó tạo ra đường dẫn đầy đủ đến các thư mục con như nó đã được trong repo VSS - người ta có thể thay đổi điều này một cách dễ dàng với 'git mv 'sau
  • lịch sử quay ngược thời gian khi tệp được chia sẻ vào thư mục con (bạn không nhận được bất kỳ lịch sử nào đã xảy ra trước đó trong thư mục' nguồn ')
  • nhãn tệp (nhãn được tạo trên tệp , không phải trên các thư mục) dường như bị lạc đường (tôi không nghĩ mình cần chúng)

Pinning dường như là một vấn đề (có thể là bởi vì nó là một tính năng khá VSS duy nhất):

  • trong VSS chúng tôi đã có một số tác phẩm gắn với một phiên bản cũ khi chúng tôi thực hiện một nhãn để đánh dấu phiên bản này của dự án (Những tệp này được bỏ ghim sau này).
  • trong git repo nhãn đã được chuyển đổi thành thẻ. Nhưng thẻ này chứa các phiên bản tệp của ngày mà nhãn được tạo - không phải phiên bản mà các tệp này được ghim vào lúc này. (Tôi không biết làm thế nào người ta có thể đối phó với tình trạng này trong git nhưng ít nhất cũng đáng biết - AFAIK này không được đề cập đến bất cứ nơi nào)
Các vấn đề liên quan