Tôi nên đưa ý kiến ​​gì trong khi cam kết Kiểm soát nguồn?


8

Tôi là một nhà phát triển đơn độc và duy trì máy chủ SVN để kiểm soát nguồn. Cho đến nay, tôi đã không theo dõi bất cứ điều gì cụ thể trong khi cam kết thay đổi của mình.

Tôi chỉ đang xem xét các cam kết trước đây của mình và không thể hiểu ý kiến ​​của tôi.

Những gì bạn đưa vào ý kiến ​​trong khi cam kết đăng ký của bạn?



@DevdattaTengshe: Tôi cũng muốn nhắc lại sự tò mò của Karpin. "vì tò mò ... bạn đã viết gì nếu bạn không thể hiểu ý nghĩa của nó?"
Kris

@Kris Như Jalayn như đã đề cập dưới đây, sai lầm mà tôi đã mắc phải là đưa ra các bình luận như: "Dữ liệu hiện cũng được hiển thị trong Piechart" hoặc "Vấn đề độ trễ đã sửa"
Devdatta Tengshe

Câu trả lời:


11

Bạn có thể quan tâm đến việc đọc này: /programming/321720/best-practices-for-version-control-comments .

Nếu bạn không sử dụng trình theo dõi lỗi và như vậy, không thể bao gồm id / số báo cáo lỗi, bạn phải rất mô tả trong nhận xét của mình. Mặt khác, nếu bạn chỉ viết "sự cố đã khắc phục với X" chẳng hạn, hai tuần sau khi cam kết bạn sẽ không nhớ vấn đề là gì. Trong trường hợp đó, bạn sẽ cần so sánh các phiên bản cam kết trước và sau để hiểu nó là gì.

Khi tôi bắt đầu phát triển các ứng dụng một cách chuyên nghiệp, chúng tôi đã không sử dụng trình theo dõi lỗi và tôi có thể nhớ rằng đôi khi các bình luận rất mô tả (thậm chí quá nhiều), đôi khi không có bình luận nào cả, đó là một mớ hỗn độn. Với id theo dõi lỗi, các bình luận hữu ích hơn và với một vài từ nữa bạn thậm chí có thể chỉ ra lý do tại sao bạn thực hiện thay đổi cụ thể đó. Ngoài ra, các ví dụ của IDE như Eclipse có các plugin phát hiện id của trình theo dõi lỗi trong các bình luận (và cả trong mã nguồn) và có thể cung cấp một liên kết có thể nhấp vào trang web của trình theo dõi lỗi.


7

Bạn đã mong đợi điều gì trong các bình luận về các cam kết trước đó của bạn?

Chỉ cần đặt thông tin đó trong cam kết tiếp theo của bạn.

Đôi khi một ID vé là đủ, một vé đại diện cho một báo cáo lỗi hoặc yêu cầu tính năng.


4

Nhận xét cam kết là về việc dễ dàng nhìn thấy những gì đã thay đổi. Chúng ở đó để bạn tham khảo, vì vậy bạn đặt bao nhiêu chi tiết sẽ phụ thuộc vào mức độ bạn muốn bỏ ra để tiết kiệm thời gian trong tương lai. Nói chung, một chút nỗ lực vào thời gian cam kết có khả năng tiết kiệm rất nhiều thời gian trong tương lai.

Chẳng hạn, giả sử thay đổi a <=thành a >và a ++thành --vòng lặp, nhưng không thêm nhận xét cam kết mô tả. Sau đó, sẽ rất khó để tìm thấy bản sửa đổi nơi bạn đảo ngược hướng lặp lại. Nếu bạn nhận xét " Hướng đảo ngược của chỉ số blah " thì việc tìm bản sửa đổi đó sẽ dễ dàng hơn nhiều bằng cách tìm kiếm nhật ký sửa đổi.

Đây là lý do tại sao bao gồm thông tin theo dõi vấn đề trong thông điệp cam kết là một ý tưởng thực sự tốt. Giả sử bạn sửa một lỗi, sau đó sự cố được mở lại vì nó chưa được sửa hoàn toàn. Nếu nhận xét cam kết của bạn về bản sửa lỗi ban đầu đề cập đến định danh theo dõi vấn đề, bạn có thể dễ dàng tìm thấy nó và sau đó bạn vẫn có thể dễ dàng tìm thấy tất cả các sửa đổi liên quan đến vấn đề đó.


2

Tôi có xu hướng viết một hình thức súc tích về những gì tôi đang cam kết; nếu đó là cho một nhiệm vụ cụ thể, tôi sẽ bao gồm số nhiệm vụ trong tin nhắn. Những thứ như:

Changed foobar module to account for the new baz; created quux pages and data objects.

Điều không nên làm là viết một số điều vô nghĩa như "Rất tiếc" hoặc "Đã thêm nhận xét" (cả hai điều tôi đã thấy được thêm vào nhật ký cam kết của một đồng nghiệp), hoặc tệ nhất là làm điều gì đó như tôi đã thấy vào ngày khác - A một tập tin đã được kiểm tra, với thông báo cam kết "Nhận xét" (trích dẫn chính xác). Những gì đã được thêm vào, bạn có thể yêu cầu? Một cái gì đó ảnh hưởng của:

if (z == true) { 
    x = y; // x is being overridden here... <--- added in commit
}

Và không, chúng tôi không được đo bằng số lần xác nhận.


1

Tôi nghĩ rằng tất cả điều này tập trung vào cách bạn quản lý các dự án của bạn. Đối với tôi, tôi có xu hướng cam kết bất cứ khi nào tôi hoàn thành một tính năng mà tôi muốn đẩy lên bản phát hành. Vì trong trường hợp của tôi, mọi tính năng đều dẫn đến một cam kết, tôi sử dụng câu chuyện và số vấn đề của tính năng làm nhận xét của mình. Điều tương tự cũng xảy ra với việc sửa lỗi. Tôi bắt đầu với một đột biến, rút ​​ra một câu chuyện, sử dụng câu chuyện để mô tả những thay đổi mà tôi cần thực hiện và một lần nữa cam kết kiểm soát nguồn với một câu chuyện trong các bình luận.


1

Cấp ID.

Hầu hết các trình theo dõi vấn đề có một định dạng mà họ có thể phân tích ID vấn đề ra khỏi các thông điệp cam kết và cam kết nhóm với các vấn đề.

Nếu bạn không sử dụng trình theo dõi vấn đề, bạn không nên quan trọng bạn là nhà phát triển solo, tôi đã giải thích vấn đề này trên một câu trả lời khác :

Sử dụng một trình theo dõi vấn đề. Không quan trọng bạn là một con sói đơn độc, hãy theo dõi mọi thứ bạn làm cho dự án của bạn, cho dù đó là một tính năng hay một lỗi. Tạo một danh sách tính năng / thành phần. Đánh dấu các thành phần thực sự cần thiết là phiên bản 1.0 và tất cả các thành phần khác là phiên bản 2.0. Và sau đó xóa mọi thứ được đánh dấu là 2.0.


Ok, vì câu hỏi có thông báo mod cho câu trả lời dài hơn, tôi cảm thấy bắt buộc phải mở rộng:

Có, tôi chỉ cần đặt ID vấn đề trong các bình luận cam kết, không có gì khác. Đó là khi vào các dự án solo, trong các dự án nhóm, đó là một câu chuyện hoàn toàn khác. Tôi không ủng hộ việc chỉ đặt ID vấn đề, nên có thêm một cái gì đó ở đó, nhưng:

  1. Trong các dự án solo, nó cực kỳ hấp dẫn để không ghi lại bất cứ điều gì,
  2. Đặt ID vấn đề có nghĩa là theo mặc định rằng bạn đã trải qua quá trình thiết lập trình theo dõi vấn đề,
  3. Điều đó đủ tốt cho tôi.

Sử dụng hiệu quả trình theo dõi vấn đề khi phát triển solo, đó là một thành tựu lớn hơn nhiều so với nhận xét. Thật tuyệt nếu tôi có động lực để thêm một cái gì đó hữu ích vào các bình luận, nhưng tôi thì không.


Chỉ cần ID vấn đề, không có gì khác. Mã của tôi là tài liệu tự. [/ Delusion]
yannis

Chúng tôi có một câu nói trong công việc, "Tôi viết mã một lần." Ảo tưởng tương tự.
ccoakley

1

Tôi thường đặt mục đích của việc đăng ký lên hàng đầu. Đây có thể là tên của một yêu cầu tính năng, số vé, v.v.

Sau đó tôi theo dõi nó với danh sách các tệp bị ảnh hưởng và những thay đổi cụ thể cần có trong mỗi tệp. Điều này đặc biệt hữu ích khi người ta nhìn vào lịch sử sửa đổi của một tệp trái ngược với dự án / thư mục.

Cái gì đó như

Ticket 101 fix web service exception when uploading widget

Bug was caused by users uploading incomplete widgets (widgets without wonkers)

webservice.cs:  
  improved post validation for incomplete widgets
  added default exception handler to ProcessWidget
widget.cs:  handled the SqlException when inserting widgets without wonkers

0

Nói chung, những gì bạn đã làm trong cam kết đó là một khởi đầu tốt :)

(vì tò mò ... bạn đã viết gì nếu bạn không thể hiểu ý nghĩa của nó?)


Như Jalayn như đã đề cập, Lỗi tôi mắc phải là đưa ra các nhận xét như: "Dữ liệu hiện cũng được hiển thị trong Piechart" hoặc "Vấn đề độ trễ đã sửa"
Devdatta Tengshe

0

Những thay đổi mà bạn đã thực hiện đối với mã và những gì có thể liên quan bao gồm không bị giới hạn trong sửa lỗi, tính năng mới, phá vỡ chức năng, thay đổi trong thư viện, v.v ... Tất nhiên vì mã được cam kết tăng dần sẽ không có tất cả những điều trên. Ví dụ: nếu bạn đang sửa một lỗi, bạn có thể thực hiện nhiều thay đổi. Đây sẽ là nhiều cam kết để sửa lỗi nhưng những thay đổi bạn đã thực hiện để sửa lỗi cụ thể.


0

Thông tin quan trọng nhất trong nhật ký cam kết là 'tại sao', không phải là 'cái gì'.

Một bản tóm tắt ngắn về các thay đổi có thể hữu ích, nhưng thông thường bạn có thể lấy thông tin đó từ chính diff. Đó không phải là một vấn đề lớn nếu thiếu.

Nhìn lại nhật ký cam kết, bạn sẽ muốn biết tại sao thay đổi đó được thực hiện. ID lỗi có thể đi một chặng đường dài để trả lời câu hỏi đó. Đôi khi cần nhiều lời giải thích hơn. Ví dụ: nếu bạn khắc phục một vấn đề về đầu vào xấu, hãy giải thích đầu vào nào gây ra sự cố và nếu nó không tầm thường thì làm thế nào nó có thể xảy ra.


0

Chúng tôi đang sử dụng lắp ráp trên dự án của chúng tôi. Chúng tôi xây dựng cardwall với tất cả các lỗi / lỗi cần phải được thực hiện và khi cam kết chúng tôi chỉ cần tham khảo vé này

Ví dụ:

see #243
 - Grid listed all users with an income more then 1000$ but not the ones that have
   exactly 1000. Added a >= in the file xy.cs on the line xyz

Bằng cách này, bạn có thể xác định các thay đổi nhanh hơn và tìm thấy một số lỗi dễ dàng hơn

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.