2012-01-05 70 views
7

Tôi đang tìm kiếm giải pháp, để gắn thẻ thay đổi trong thông báo cam kết.Gắn thẻ cam kết tin nhắn và thay đổi

Đối với tôi một "tag" là một cái gì đó như:

  • đang dọn dẹp
  • người dùng thay đổi có thể nhìn thấy
  • đổi cấu trúc cơ sở dữ liệu (ALTER TABLE)
  • thay đổi Documentation

Cho đến bây giờ tôi sử dụng SVN, nhưng muốn chuyển sang git. Nếu có tiêu chuẩn, rất nhiều công cụ như trac, redmine, ... có thể sử dụng nó.

Tôi muốn điều này để trả lời câu hỏi như thế này:

  • Nếu tôi cập nhật một hệ thống, những thay đổi có thể nhìn thấy cho khách hàng, hoặc là nó chỉ là một bản cập nhật maintance?
  • Lược đồ cơ sở dữ liệu có thay đổi giữa hai phiên bản không?

Bối cảnh:

Đến bây giờ tôi sử dụng unison để đồng bộ hóa giữa DEV, TEST và hệ thống PROD. Nhưng unison không biết bất cứ điều gì về quản lý phiên bản (đó là SVN tại momement). Tôi muốn chuyển sang git. Và tôi muốn thấy nhanh, những thay đổi là gì.

Ví dụ: Tôi muốn xem các thay đổi giữa TEST và PROD. Tôi không muốn thấy các thay đổi mã nguồn, nhưng các thông báo cam kết. Nhưng đôi khi có tới 100 cam kết. Ở đây tôi muốn có một bộ lọc, để loại trừ những thay đổi không quan trọng.

Trả lời

7

Tôi thích sử dụng các thẻ sau:

ADD adding new feature 
FIX a bug 
DOC documentation only 
REF refactoring that doesn't include any changes in features 
FMT formatting only (spacing...) 
MAK repository related changes (e.g., changes in the ignore list) 
TEST related to test code only. 

Thẻ này luôn là điều đầu tiên trong thông điệp cam kết và sau đó theo sau là một mô tả ngắn gọn và/hoặc các vấn đề-id từ sự cố hệ thống theo dõi, nếu nó tồn tại.

Tôi sử dụng các thẻ đó với svn và git và cho đến nay thấy chúng rất tiện lợi.

Để trả lời chỉnh sửa của bạn: Đây là lý do tại sao tôi thích các thẻ cam kết đó. Nó ngay lập tức có thể nhìn thấy nếu cam kết thay đổi hành vi hay không. Nếu chương trình cơ sở dữ liệu của bạn thay đổi thường xuyên hoặc nếu những thay đổi này hoặc rất quan trọng đối với bạn, bạn có thể giới thiệu một thẻ cho điều đó.

Tôi cũng muốn kết hợp các thẻ đó trong một thư cam kết khi thích hợp. Ví dụ: "TEST DOC setup of foo test".

Với thẻ DB bổ sung cho cơ sở dữ liệu, bạn có thể dễ dàng theo dõi các thay đổi liên quan đến cơ sở dữ liệu.

+0

+1 cho câu trả lời hay. Nhưng nếu tôi cần thêm thông tin về thay đổi bằng cách sử dụng thẻ của nó thì sao? ví dụ.Tôi cần thêm thông tin về lỗi (trình báo cáo, mức độ nghiêm trọng, các bước sinh sản của nó, v.v.) được giải quyết trong thẻ FIX. – hsalimi

+0

Sau đó, bạn chỉ có thể thêm tất cả thông tin sau thẻ, ví dụ: "FIX issue foo được báo cáo bởi john doe; ..." – mort

+0

Oh my God !!!!!!! Sau đó, làm thế nào để bạn muốn báo cáo cho họ ?????? – hsalimi

1

Tôi muốn chỉ định từng bộ thay đổi có vấn đề trong trình theo dõi vấn đề của tôi. Sử dụng trình theo dõi vấn đề đã biết như jira, bạn có thể chọn sự cố được giải quyết trong tập hợp thay đổi. Sau khi chọn một vấn đề, mô tả vấn đề sẽ tự động được đặt trong thông điệp của tập hợp thay đổi. Chúng có thể được theo dõi trong tương lai và cũng được báo cáo trong trình theo dõi vấn đề của bạn.

+0

Tôi đã cập nhật câu hỏi. Các thẻ phải trả lời các câu hỏi như sau: "Nếu tôi cập nhật hệ thống, những thay đổi nào có thể nhìn thấy được đối với khách hàng, hoặc chỉ là bản cập nhật bảo trì?" – guettli

+0

Bạn xử lý các cam kết không được kết nối với một vấn đề như thế nào? Ví dụ: nếu bạn thêm hoặc sửa một số tài liệu hoặc công cụ refactor thì sao? – mort

+0

@guettli: Tất cả các thông tin này được lưu giữ trong vấn đề của bạn. Ngoài ra, các thông tin khác như yêu cầu thay đổi, phiên bản của mã nguồn mà thay đổi này được áp dụng, bản phát hành đầu tiên mà những thay đổi này bị ảnh hưởng, ... được lưu giữ trên các vấn đề trên trình theo dõi vấn đề. – hsalimi

3

Phần lớn thời gian tôi đang sử dụng hệ thống thẻ từ Typo3: http://wiki.typo3.org/CommitMessage_Format_(Git)

Nó sử dụng thẻ trong bài viết cam kết như thế này: [TAG] Short message Tất nhiên tôi luôn bật trong một số vấn đề để theo dõi vấn đề. Chúng tôi đang sử dụng JIRA vì vậy nó sẽ trở thành một cái gì đó như thế này: [TAG] JIRA-123 Short message

Typo3 tags:

thẻ có thể là:

  • [ĐẶC]: Một tính năng mới (còn bổ sung nhỏ). Nhiều khả năng nó sẽ là một tính năng bổ sung, nhưng nó cũng có thể được gỡ bỏ. Điều này chỉ có thể xảy ra trong nhánh "master" của v4, bởi vì không có tính năng mới nào được cho phép trong các nhánh cũ. Trường hợp ngoại lệ này phải được thảo luận trên cơ sở từng trường hợp với người quản lý phát hành tương ứng.
  • [BUGFIX]: Sửa lỗi.
  • [TASK]: Mọi thứ không thuộc phạm vi của các danh mục trên, ví dụ: mã hóa phong cách dọn dẹp.
  • [API]: API đã thay đổi, các phương thức hoặc lớp học đã được thêm hoặc xóa; chữ ký phương thức hoặc kiểu trả về đã thay đổi. Điều này chỉ đề cập đến API công khai của TYPO3.

cờ Thêm vào đó khác có thể được bổ sung trong những trường hợp nhất định:

  • [!!!]: thay đổi Breaking. Sau bản vá này, một cái gì đó hoạt động khác với trước và người phát triển/admin/extension sẽ phải thay đổi thứ gì đó. Chỉ nên xảy ra trên "chính".
  • [WIP]: Đang tiến hành. Cờ này sẽ bị xóa, khi phiên bản cuối cùng của thay đổi có sẵn. Các thay đổi được đánh dấu WIP sẽ không bao giờ được hợp nhất.
  • [AN NINH]: Hình dung rằng thay đổi sẽ khắc phục sự cố bảo mật. Thẻ này được Nhóm bảo mật sử dụng, trong trường hợp bạn tìm thấy vấn đề bảo mật, vui lòng luôn theo dõi liên hệ với Nhóm bảo mật trước!

giới thiệu Ví dụ chủ đề:

  • [Sửa lỗi] Ném HttpStatusExceptions trong tslib_fe
  • [Sửa lỗi] [AN] SQL Injection lỗ hổng trong báo cáo chuẩn bị
  • [ĐẶC] [CONF] Thêm tùy chọn để ẩn hộp tìm kiếm BE trong danh sách mod
  • [!!!] [FEATURE] Di chuyển Giao diện người dùng nâng cao Chỉnh sửa thành TER
  • [!!!] [TASK] Di t3lib_sqlengine
  • [!!!] [API] Hủy bỏ phương pháp chuyển hướng NỮA() từ t3lib_userAuth
  • [API] Tạo một hệ thống phân cấp ngoại lệ cho trường hợp ngoại lệ HTTP Status
Các vấn đề liên quan