Thanks to visit codestin.com
Credit goes to github.com

Skip to content

不影响存量代码的增量代码会导致无法merge #397

@dumbFeng

Description

@dumbFeng

代码版本1:

23 func (svc *CoverService) Hello(ctx context.Context, params *request.CoverHelloReq) int {
24	var ret int
25	if true {
26		ret = 1 + 2
27	}
28
29	return ret
30 }

代码覆盖profile:

xxx.go:23.88,25.10 2 1
xxx.go:25.10,27.3 1 1
xxx.go:29.2,29.12 1 1

在Hello下面新增Hello2的实现,得到代码版本2:

23 func (svc *CoverService) Hello(ctx context.Context, params *request.CoverHelloReq) int {
24	var ret int
25	if true {
26		ret = 1 + 2
27	}
28
29	return ret
30 }
31
32 func (svc *CoverService) Hello2(ctx context.Context, params *request.CoverHelloReq) int {
33	var ret int
34	if true {
35		ret = 1 + 2
36	}
37
38	return ret
39 }

得到的代码覆盖profile如下:

xxx.go:23.88,25.10 2 0
xxx.go:25.10,27.3 1 0
xxx.go:29.2,29.12 1 0
xxx.go:32.89,34.10 2 0
xxx.go:34.10,36.3 1 0
xxx.go:38.2,38.12 1 0

此时使用goc merge合并两份profile数据,因为block数不一致,会报错。但是此时我们希望能够合并,且合并后的profile应该如下:
xxx.go:23.88,25.10 2 1
xxx.go:25.10,27.3 1 1
xxx.go:29.2,29.12 1 1
xxx.go:32.89,34.10 2 0
xxx.go:34.10,36.3 1 0
xxx.go:38.2,38.12 1 0


大佬们,有没有办法支持?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions