2009-04-14 41 views
7

Tôi đang nghĩ đến một danh sách mà tôi có thể tham khảo các nhà phát triển khác để với những thứ như:Các phương pháp hay nhất về quản lý cấu hình và kiểm soát nguồn là gì?

  1. Một xây dựng kịch bản, chẳng hạn như makefile, sẽ xây dựng và kiểm tra toàn bộ dự án
  2. Tất cả các thành phần để cần xây dựng hệ thống cần được kiểm soát nguồn

Bất kỳ ai có danh sách như vậy? Theo thứ tự ưu tiên?


CẬP NHẬT - thêm một số chi tiết FYI

hệ thống trong câu hỏi bao gồm C++ và makefiles, Java với kiến ​​có kết quả trong cuộc chiến tranh, cũng như PowerBuilder và C# thành phần gui. Tất cả các mã đều có hiệu lực.

Vì vậy, tôi đang tìm cả các phương pháp hay nhất về ngôn ngữ chung cũng như ngôn ngữ cụ thể.

Trả lời

7

Đối với tôi, sự cai trị # 1 là thế này:

Nhánh chính là thiêng liêng - nó phải luôn thể xây dựng, có khả năng đi qua BVT, và được về cơ bản có thể sử dụng.

Bất kỳ mã nào được phép vào chi nhánh chính gây ra lỗi xây dựng hoặc BVT đều cho thấy lỗi trong quá trình. Quá trình này sẽ cho phép bạn xây dựng/kiểm tra các hệ thống nhánh đơn lẻ, hoặc yêu cầu các chi nhánh con xây dựng và vượt qua BVT trước khi sáp nhập vào nhánh chính hoặc các biện pháp bảo vệ khác.

+0

uhmm, nếu tôi có thể hỏi, BVT là gì? – bluezald

1

Điều này phụ thuộc nhiều vào môi trường bạn đang xây dựng?

  • Có phải C/MakeFile không?
  • Có phải Java/JUnit/Ant không?
  • Có phải .NET/NUnit/NAnt không?
  • Có phải .NET/MSUnit/MSBuild không?
  • Có Ruby ...
  • Có Python ...
  • Có PHP

Mỗi khác biệt trong cách tiếp cận và thiết lập. Vì vậy, chúng tôi cần biết thiết lập của bạn trước khi bạn có thể được trợ giúp.

+0

thêm thông tin chi tiết: Hệ thống được đề cập bao gồm C++ và makefiles, Java với kiến ​​dẫn đến WAR, cũng như các thành phần powerbuilder và C# gui. Tất cả các mã đều có hiệu lực. Vì vậy, tôi đang tìm kiếm các phương pháp hay nhất về ngôn ngữ cũng như ngôn ngữ chung. –

1

My số một mục:

  • Cập nhật thường xuyên, cam kết thường xuyên,

hoặc, như Jeff đặt là: Check In Early, Check In Often.

+1

Đọc qua các nhận xét của mục nhập blog đó, bạn sẽ thấy rằng tôi không đồng ý với tình cảm đó một cách mạnh mẽ. Hệ thống kiểm soát sửa đổi nhằm mục đích kiểm soát các bản sửa đổi của phần mềm, chứ không phải để sao lưu các chỉnh sửa trung gian. Một biên tập viên tốt nên làm điều đó cho bạn. (phiên bản kiểm soát trong Emacs) –

+0

Vâng, đó là một cuộc thảo luận dài và tôi thành thật không đọc nó bởi vì tôi không thể tìm thấy bất kỳ điểm mới có liên quan sau một vài ý kiến. –

0

Nếu bạn chuyển các câu hỏi đó từ "Kiểm tra Joel", bạn nên đi đúng hướng:

Bạn có sử dụng kiểm soát nguồn không?
Bạn có tạo các bản dựng hàng ngày không?
Bạn có cơ sở dữ liệu lỗi không?
Bạn có sửa lỗi trước khi viết mã mới không?

# 1 của tôi là: Bạn có thể tạo bản dựng trong một bước không?

The Joel Test

0

Là một người quản lý SCM, câu trả lời tốt nhất mà tôi có thể cung cấp cho bạn về câu hỏi này là "nó phụ thuộc". Danh sách và thứ tự tầm quan trọng của các mục trong danh sách sẽ phụ thuộc vào yêu cầu dự án của bạn, ngôn ngữ bạn đang sử dụng và cấp độ nhà phát triển.

Một điều mà bạn có thể muốn xem xét cho tôi quan trọng (hoặC# 1) trên danh sách BẤT K list bạn đặt cùng nhau là thân cây hoặc nhánh chính của công cụ của bạn được kiểm soát rất nhiều và chỉ một số rất ít quyền truy cập để nhập hoặc cam kết thay đổi. Điều này sẽ tiết kiệm được rất nhiều đau đầu lúc phát hành.

Các mặt hàng có thể nằm trong danh sách bất kỳ mà bạn đặt lại với nhau là:

  • Khi nào thì check-in (hàng ngày, hàng tuần, thường xuyên hơn, ít thường xuyên hơn)
  • Khi xây dựng được thực hiện (hàng ngày, hàng tuần, vv)
  • Sử dụng kho kép (kỹ thuật vs sản xuất)
  • Cho phép mã nhị phân trong kho
  • Cho phép phần mềm của bên thứ ba trong kho
  • Tất cả các mục cần thiết cho xây dựng trong kho
  • Khi nhập khẩu hoặc cam kết trunk được thực hiện
  • Sử dụng một file để xuất khẩu và xây dựng
  • Cho phép check-in có/không có thông tin báo cáo lỗi
  • Enforce check-in comment tiêu chuẩn

Danh sách có thể tiếp tục và tùy thuộc vào yêu cầu cụ thể của bạn, nhưng tôi nghĩ bạn có ý tưởng chung với những gì ở đây.

1

Hệ thống phải tự xây dựng, tự kiểm tra và tự tải xuống + xây dựng các phụ thuộc. Tôi có một makefile tải về, xây dựng và triển khai một môi trường thời gian chạy được "chứng nhận" cho phiên bản thân cây của tôi. Makefile này được cam kết cũng như trong kho lưu trữ.

Ghi cam kết khác, rất quan trọng, và hầu hết bị bỏ qua điều (đi kèm trong một gói ba): (! Đặt một phiên bản trên nó)

  • Mã SQL tạo bố trí cơ sở dữ liệu của bạn.
  • Mã SQL sẽ trả về phiên bản bố trí cơ sở dữ liệu của bạn (để nâng cấp)
  • Mã SQL mà mang xuống phiên bản bố trí cơ sở dữ liệu của bạn (hạ cấp)
0

Toàn bộ quá trình "nhận được mới nhất" và "xây dựng" nên được mịn màng, dễ dàng, nhanh chóng và đáng tin cậy.

Nếu không phát triển có xu hướng bỏ qua việc mới nhất và tiếp tục làm việc trên các bản sao cũ của họ và đó là điều bạn muốn tránh.

này là nhiều hơn hoặc ít hơn những gì Michael said- nhưng tôi muốn nhấn mạnh rằng ngoài các chi nhánh là thiêng liêng và stable- toàn bộ quá trình cần được nhanh chóng và dễ dàng

Kinda như triết lý của Google mà tải \ cài đặt cần được nhanh chóng và dễ dàng

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