Tôi cần kiểm soát nguồn nào cho một dự án lớn trong một công ty trung bình? [đóng cửa]


10

Tôi biết Git là tuyệt vời cho các dự án nguồn mở. Nhưng tôi đã tự hỏi: đối với một công ty có 20 lập trình viên làm việc trong dự án 1 năm, hệ thống kiểm soát nguồn nào là mong muốn? Từ những gì tôi nghe thấy Git sử dụng kéo; sẽ không phải là ít hơn mong muốn để thông qua người khác để có được những thay đổi của bạn trong thân cây chính? Đặc biệt là khi mọi người đều làm việc cùng một lúc?

Đó chỉ là một ví dụ mà tôi đã tự hỏi về. Tôi biết cách sử dụng SVN nhưng ngay cả trong công việc cuối cùng của chúng tôi, chúng tôi đã không sử dụng nó cho các dự án của mình, vì mọi thứ đã được thực hiện trong PHP và đó là những dự án 1 tuần độc lập. Tôi chỉ có SVN cho mã địa phương của mình và không cần sử dụng nó với người khác.

Vì vậy, kiểm soát nguồn tốt là gì, và cụ thể tại sao nó tốt cho việc này?


13
Bởi vì mã của bạn trong php không phải là lý do để không sử dụng VCS.
Chris

@Chris: Nếu nó tùy thuộc vào tôi thì sẽ có một repo trên mạng. Nhưng thật không may, công ty đó đã không sử dụng nó. Tôi chỉ nói rằng tôi không có kinh nghiệm 'nhóm' với kiểm soát nguồn


Câu trả lời:


29

Sử dụng bất cứ điều gì nhóm của bạn cảm thấy thoải mái. Tất cả các hệ thống Kiểm soát Phiên bản thực hiện gần giống nhau theo những cách tương tự; không có lý do để phát minh lại bánh xe vì "nó có thể hoạt động tốt hơn". Nếu nhóm của bạn không thoải mái với bất cứ điều gì, thì hãy chọn tùy chọn có tích hợp dễ dàng nhất với IDE tiêu chuẩn của nhóm bạn.


1
Đó là một câu trả lời thông minh và không đảng phái - tôi thích.
Murph

1
Các hệ thống kiểm soát nguồn +1 đủ phức tạp, bất cứ điều gì bạn có thể làm để giảm thiểu điều này sẽ tốt hơn!
Dal

3
Có những thứ mà các VCS phân tán làm tốt hơn nhiều so với các VCS tập trung và bạn luôn có thể sử dụng DVCS làm một tập trung, vì vậy để sử dụng cho mục đích chung dài hạn, tôi khuyên dùng Git hoặc Mercurial. Đối với các tình huống như thế này, bất kỳ VCS hiện đại hợp lý nào cũng sẽ hoạt động tốt và Subversion có thể dễ học nhất.
David Thornley

Chắc chắn sử dụng bất cứ điều gì nhóm của bạn biết hoặc thoải mái sử dụng. (Trừ khi đó là CVS hoặc RCS.) Nếu bạn chuyển sang một thứ mới và mọi người phải học nó, hãy làm toán: 20 người * 3 giờ đào tạo * $ 40 / giờ = $ 2,400.
Barry Brown

Hoặc mong họ biết cách nhận một VCS mới trong vòng 5 phút ...
thay thế vào


4

Tôi nghĩ rằng nó phụ thuộc vào mức độ hỗ trợ bạn cần.

Tôi sử dụng git tại nhà cho các dự án thú vị của mình khi gặp sự cố khiến tôi mất thời gian, nhưng tôi có thể dành thời gian để học những gì tôi cần để khắc phục nó.

Trong công việc, chúng tôi sử dụng Perforce vì có hỗ trợ công nghệ 24/7 là bắt buộc. Chúng tôi có những người làm việc về mã ở New York, Đức, Ireland và Nhật Bản mọi lúc. Nếu có vấn đề gì chúng ta phải nhận được câu trả lời càng sớm càng tốt. Theo kinh nghiệm của tôi, những người ở Perforce thực sự biết họ đang làm gì và dễ tiếp thu các đề xuất.


1
+1: Perforce đắt tiền nhưng bạn có được những gì bạn phải trả cho.
Không ai

3

Mặc dù tôi nghĩ rằng câu hỏi này rất rộng và nên được giải quyết trên cơ sở từng công ty, dựa trên khung CNTT và cấu trúc mạng / phát triển của bạn, tôi nghĩ rằng khía cạnh quan trọng nhất của việc chọn kiểm soát nguồn / phiên bản không phải là ứng dụng bạn sử dụng, nhưng liệu việc sử dụng nó có thực tế được cấu trúc và thực thi hay không.

Cấu trúc và thực thi sử dụng là các khía cạnh quan trọng nhất của kiểm soát phiên bản.

Lên kế hoạch trước và đưa mọi người lên tàu. Tăng cường sử dụng. Không chỉ với các lập trình viên, mà với tất cả mọi thứ liên quan đến các dự án (tài liệu, hình ảnh, v.v.).

SVN là một ứng dụng tốt và có thể được tích hợp với nhiều tiện ích bổ sung (bao gồm cả theo dõi lỗi / tác vụ), không cần một máy chủ riêng biệt và miễn phí!

Ngoài ra còn có các ứng dụng kiểm soát nguồn tốt khác, như @EricBoersma nói:

Sử dụng bất cứ điều gì nhóm của bạn cảm thấy thoải mái.

Chỉ cần có các quy trình và thực tiễn tốt nhất tại chỗ, và mua lại từ những người có thể thực thi nó.


3

Bạn có một số hiểu lầm lớn về cách hoạt động của git. Gửi một yêu cầu kéo đến một người gác cổng chỉ là một cách để làm điều đó. Có nhiều cách khác để thiết lập nó, bao gồm khá nhiều chính xác như svn, đó chính xác là số lượng người bắt đầu trước khi họ có đủ thoải mái để tùy chỉnh. Với một DVCS như git, bạn có đủ các tùy chọn để cấu trúc kiểm soát nguồn xung quanh quy trình công việc của mình, thay vì cách khác.


2

Tôi đã từng có quan điểm rằng kiểm soát nguồn chỉ là một công cụ và rằng mỗi sản phẩm đều làm ít nhiều giống nhau. Và sau đó, điểm của các hệ thống kiểm soát phiên bản phân tán này đã nhấp vào tôi.

Kiểm soát phiên bản phân tán cho phép bạn có nhiều hơn một kho lưu trữ trung tâm. Tưởng tượng các thay đổi mã di chuyển từ kho lưu trữ của nhà phát triển cục bộ, sang kho lưu trữ tính năng, sang kho lưu trữ sản phẩm, vào kho lưu trữ QA và cuối cùng vào kho lưu trữ được phát hành.

Cá nhân tôi sử dụng một sản phẩm thương mại có tên Kiln, dựa trên Hg, nhưng tính năng chính là kiểm soát phiên bản phân tán . Nó cách mạng hóa dòng mã mới từ nhà phát triển thành một sản phẩm được phát hành.


Đó là rất nhiều kho lưu trữ cho một dự án. Thật là một cơn ác mộng cho việc sáp nhập.
JBRWilkinson

3
Tôi sẽ đồng ý với bạn nếu nó được hợp nhất với SubVersion hoặc CVS. Lý do tại sao các sản phẩm kiểm soát phiên bản phân tán này hoạt động là vì chúng làm cho việc hợp nhất trở nên đơn giản và phần lớn không xung đột.
Michael Shaw

2

Bạn biết cách sử dụng SVN, sau đó sử dụng SVN - chỉ di chuyển sang DVCS nếu có thứ gì đó trong đó mà bạn cần.

Điều thực sự quan trọng là bạn sử dụng thứ gì đó mà bạn sẽ thích sử dụng, đó là thứ dễ sử dụng. Martin Fowler đã làm một cuộc khảo sát đơn giản nhanh chóng về các VCS, kết quả rất thú vị.


2

Tôi đã thiết lập git tại công việc cuối cùng của mình, nơi chúng tôi đang làm việc trong một dự án có quy mô tương tự (15 nhà phát triển, dự án 18 tháng) và nó hoạt động tốt.

Cách chúng tôi thiết lập nó là:

Chúng tôi đã có một máy chủ git là máy chủ git có thẩm quyền tập trung của chúng tôi. Các thành viên trong nhóm không được khuyến khích trực tiếp kéo nhau để tất cả các thay đổi đã đi vào máy chủ trung tâm.

Chúng tôi đã sử dụng nhánh chính làm nhánh sản xuất chính, với các thẻ cho mỗi bản phát hành. Mỗi mô-đun trong dự án là một mô hình con git. Mỗi mô hình con có các nhánh cho mỗi thành viên trong nhóm. Một người bảo trì (thường là tác giả ban đầu) được chỉ định cho từng mô hình con và họ chịu trách nhiệm xử lý các yêu cầu kéo từ các thành viên khác trong nhóm và đưa ra các yêu cầu kéo cho trưởng nhóm, người sẽ cập nhật mô hình con trong nhánh chính khi nó sẵn sàng được tích hợp vào ngành sản xuất. Chúng tôi đã sử dụng các thẻ để xác định các cam kết đã hoàn thành một tính năng cụ thể hoặc tương ứng với một bản phát hành.


0

Tôi muốn cung cấp cho Team Foundation System (TFS) từ Microsoft ít nhất là một cái nhìn tốt. Tôi lấy ý kiến ​​từ ý kiến ​​của bạn rằng bạn không phải là một cửa hàng của Microsoft. Tuy nhiên, sự hiểu biết của tôi là, có một trình cắm Eclipse khá mạnh mẽ nếu bạn sử dụng IDE đó để phát triển.

Các cơ chế hợp nhất và phân nhánh hoạt động tốt như bất kỳ hệ thống kiểm soát nguồn nào khác (tốt hơn svn, theo kinh nghiệm của tôi và cũng tốt như lực lượng), nhưng điều thực sự tỏa sáng là các khía cạnh quản lý dự án và quản lý dự án của sản phẩm, và xây dựng trong tự động hóa để xây dựng và triển khai.

Nếu bạn đang viết một ứng dụng dựa trên web, hãy xem khung kiểm tra giao diện người dùng tự động và khung kiểm tra tải mà bạn có thể xây dựng và định cấu hình theo thứ tự khá ngắn. Một tính năng mượt mà: mô phỏng các trình duyệt di động được tích hợp để kiểm tra tải.


Nói như một người đã sử dụng TFS từ Eclipse. Không, nó thật kinh khủng. (tôi có thể đi vào chi tiết), tôi chắc chắn sẽ không gọi nó là mạnh mẽ. TFS là tuyệt vời, nhưng phần mở rộng Eclipse rất tệ (Trường hợp như AnhkSVN cho Visual Studio là tuyệt vời)
Lyndon White

Tôi có một trải nghiệm rất, rất tệ về TFS vì rất nhiều lý do, tôi hoàn toàn làm việc trong môi trường Microsoft và tôi thích các công cụ .Net và Ms nói chung. Tôi sẽ không bao giờ giới thiệu TFS cho bất cứ ai.
Thu hút
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.