2010-08-04 33 views
11

Điều này có thể đun sôi xuống theo ý kiến: Tôi tự hỏi liệu tệp dự án (các tệp được tạo và sử dụng bởi IDE chứ không phải trình biên dịch) phải được bao gồm trong kho kiểm soát nguồn. Có những trường hợp nhất định mà họ nên và không nên?Các tệp dự án IDE có nên được đặt dưới sự kiểm soát nguồn không?

Chỉnh sửa: Tôi nên đề cập đến lý do tôi yêu cầu là vì tôi đang xem một số danh sách tệp bị bỏ qua bởi git khi sử dụng Visual Studio - một số danh sách này có tệp dự án và một số không .

+0

Người quá xấu. Các lập trình viên thực sự sử dụng một trong hai vim (mà hút), emacs hoặc bướm. Ý tôi là, những con bướm thật: D –

Trả lời

14

Một câu hỏi đơn giản: Bạn có cần họ để tạo mã của bạn không? Nếu không, thì chúng là đồ tạo tác, không phải tệp nguồn và không có vị trí nào trong hệ thống kiểm soát nguồn.

Những thứ như tùy chọn màu của trình chỉnh sửa hoặc móc khóa không phải là một phần của hệ thống xây dựng. Cờ biên dịch và vv.

Chúng tôi lưu trữ mọi thứ cần thiết để xây dựng, xuống đĩa cài đặt hệ điều hành và cấu hình bắt buộc. Anal-retentive thậm chí không đến gần mô tả chúng tôi :-) Nếu chúng ta có thể lưu trữ phần cứng, chúng tôi sẽ (chúng ta phải làm gì với lưu trữ một tài liệu chi tiết các thông số phần cứng).

Chúng tôi cũng thỉnh thoảng kiểm tra khả năng của mình để xây dựng môi trường phát triển từ đầu bằng cách chỉ sử dụng những gì được lưu trữ trong kho. Thất bại ở đó có nghĩa là chúng tôi không được bảo vệ về mặt khắc phục thảm họa.

+0

README.md không phải là mã nguồn, cũng không cần thiết phải xây dựng mã. Tuy nhiên, đây có thể là tệp đầu tiên mà bạn sẽ tạo với một kho lưu trữ git/bitbucket mới. – Mahesh

2

Nếu bạn có các tập lệnh xây dựng đặc biệt, IDE có thể được yêu cầu để xây dựng dự án của bạn. Plus nếu bạn làm một thanh toán tươi nào bạn thực sự muốn đi qua những rắc rối của thiết lập tất cả các dự án xây dựng các thông số vv mỗi lần?

2

Nếu bạn làm việc với các nhà phát triển khác và họ không sử dụng IDE khác, hoặc các phiên bản IDE khác, các tệp dự án IDE sẽ không giống nhau. Tôi nghĩ rằng các tập tin dự án IDE không nên được đặt dưới sự kiểm soát nguồn.

0

Chúng tôi sử dụng Eclipse và tệp duy nhất mà chúng tôi đăng ký là tệp .classpath để mọi thay đổi classpath không phá vỡ bản dựng trên bản cập nhật.

5

Tôi dễ dàng và hợp lý hơn khi đưa các tệp dự án vào các kho lưu trữ, vì chúng là một phần của dự án chính nó. Thay đổi dự án, tập tin dự án quá.

Bất cứ khi nào bạn phải hoàn nguyên toàn bộ dự án về trạng thái trước đó hoặc mời ai đó đăng ký để làm việc trong dự án, thuận tiện hơn để có mỗi tệp. Không chỉ mã nguồn.

Bằng cách này, hầu hết các IDE bao gồm các tệp dự án trong kho lưu trữ và sẽ quá khó để loại trừ chúng và vẫn giữ khả năng đăng ký và kiểm tra từ chính IDE.

+1

Tôi đồng ý, tôi nghĩ đó là một loại tài liệu đặc biệt, vì thiết lập dự án có thể hiển thị cấu trúc tổng thể của mã. –

+0

+1. Nếu một dự án tuân theo quy tắc định dạng mã cụ thể theo tổ chức, định nghĩa định dạng là __not__ mã (mỗi định nghĩa quy tắc định dạng tệp XML), nhưng vì mọi nhà phát triển dự án phải có định nghĩa quy tắc định dạng giống nhau, nên việc kiểm tra để kiểm soát nguồn. – Mahesh

1
  • giữ dưới sự kiểm soát phiên bản tất cả các file dự án đó là cần thiết để xây dựng dự án
  • tránh thêm các dẫn xuất (ví dụ. Ctags, và tất cả các tập tin bạn có thể tạo ra)
2

Nói chung, các file dự án nên được kiểm soát phiên bản nhưng các tệp tùy chọn người dùng sẽ bị bỏ qua.

Ví dụ: khi sử dụng Visual Studio, các tệp '.proj' và '.sln' phải được kiểm soát phiên bản, nhưng '.suo 'nên được bỏ qua.

0

Tệp dự án bao gồm hướng dẫn xây dựng chắc chắn phải nằm dưới sự kiểm soát nguồn. Bạn không muốn đặt đúng trình biên dịch và cờ liên kết và đường dẫn trên mỗi lần thanh toán mới, phải không?

Tuy nhiên, không phải tất cả các tệp dự án đều được tạo bằng nhau và một số chỉ là "trợ giúp tệp" lưu trữ thẻ hoặc mở tệp gần đây và v.v. Chúng không được phiên bản, vì chúng có thể khác nhau cho mỗi người chơi.

Có hai lợi ích khác nhau từ versionning tập tin dự án:

  • một là developping dễ dàng hơn. Đặc biệt là cho developper mới. Tất cả những gì bạn phải làm để bắt đầu làm việc là thực hiện thanh toán.
  • cách khác là có bản dựng có thể tái tạo. Wether xây dựng đến từ developper A hoặc developper B, đối tượng kết quả là như nhau. Đây là IMO là lợi ích quan trọng hơn, và là một bước hướng tới tự động hóa xây dựng.
0

Tôi đang làm việc cho một công ty phát triển và bán một IDE. Lúc đầu, chúng tôi đã xóa tất cả các tệp dự án ra khỏi các thư mục người dùng. Hầu hết mọi người đều hài lòng với cách này. Nhưng đôi khi ai đó hỏi liệu có thể vì họ muốn làm việc cũng từ hệ thống nhà và sử dụng điều khiển phiên bản như một tiện ích chuyển tập tin nhanh đồng bộ hóa công việc và địa điểm nhà.

Tôi có thể cho bạn biết rằng việc triển khai yêu cầu này không dễ dàng!

Cài đặt phải được tách biệt rõ ràng, ví dụ nếu IDE lưu trữ tọa độ cửa sổ trong tệp cài đặt và bạn làm việc trên hệ thống giám sát kép tại nơi làm việc và sổ ghi chép nhỏ ở nhà thì thực sự rất tệ. IDE cũng phải có khả năng cung cấp một cách để xử lý mở rộng biến môi trường trong mọi đường dẫn tệp. Và cuối cùng, nó phải có khả năng cho phép đặt tên tệp hoặc lưu trữ chúng ở những nơi khác nhau - nếu không bạn sẽ sớm phát hiện ra 3 nhà phát triển khác nhau trong dự án có 5 ý kiến ​​khác nhau về phông chữ, màu sắc, giá trị mặc định, v.v. không được thực hiện tốt, tất cả chúng sẽ sử dụng cùng một cài đặt.

Mặt khác, nhiều IDE có lượng dữ liệu khổng lồ để lưu trữ, một số trong số chúng thậm chí lưu trữ các trường hợp kiểm tra đơn vị cấu hình GUI trong cài đặt dự án. Trong trường hợp này, tất nhiên là hữu ích khi sử dụng lại các tệp và kiểm tra nó trong hệ thống kiểm soát phiên bản.

Vì vậy, bạn thấy nó phụ thuộc. Hãy dùng thử và xem nó hoạt động như thế nào cho môi trường của bạn.

1

Đối với .NET, tôi nghĩ rằng các tệp dự án nên được bao gồm trong kho lưu trữ kiểm soát nguồn. Trong C# và VB, đó là tệp dự án xác định các tệp nguồn nào là một phần của assembly. Nếu bạn thêm tệp nguồn vào dự án và không có tệp dự án dưới sự kiểm soát nguồn, tất cả các nhà phát triển khác trong nhóm phải tự thêm tệp vào dự án THEIR.

Trong Java, tất cả các tệp trong cây nguồn sẽ tự động được bao gồm trong bản dựng (nếu tôi nhớ chính xác) vì vậy nhu cầu tệp dự án có thể không giống nhau trong Java.

0

Có, tôi tin rằng các tệp dự án IDE nên được cam kết với Subversion vì hầu hết trong số này bao gồm các cấu hình về cách xây dựng/biên dịch dự án.

Nếu có cấu hình chỉ được sử dụng để lưu trữ các tùy chọn của nhà phát triển ngoài quy ước mã hóa thì phải được loại bỏ (ví dụ: loại trừ) để không bị nhầm lẫn.

0

Không chắc chắn nếu nó đã được đề cập, nhưng Visual Studio (ít nhất là C++ phiên bản) sản xuất hai tập tin dự án:

  1. tập tin dự án chung có chứa cấu trúc, xây dựng và cài đặt. Điều này là cần thiết để xây dựng với VS.
  2. Tệp dự án dành riêng cho người dùng (thường kết thúc bằng tên của người dùng và PC). Điều này là không cần thiết để xây dựng, vì vậy chúng tôi không bao gồm nó để kiểm soát nguồn.
Các vấn đề liên quan