我已经回答了以下问题:
但我没有找到合理的解释。所以想开个新帖。
问题:当我将“master”合并到我的开发人员分支 (dev-branch) 时,我在 dev-branch 上没有修改过的文件发生合并冲突。
程序:
问题:
===编辑:2019 年 6 月 12 日===
我开始观察我的合并行为以缩小问题范围并发现以下内容。每当我开发需要很长时间的东西时,我倾向于经常更新我的开发分支,以避免必须进行一次大的合并。
如果我在分支上工作,例如dev_branch,我曾经将master合并到dev_branch,然后继续我的开发,并每隔一段时间重复此步骤。但是我发现有用的是实际上将dev_branch合并到master并再次从它分支到一个新的开发分支dev_branch_1(请注意,由于开发尚未完成,我尚未在master上提交任何内容)并继续在新分支上进行开发。到目前为止,这似乎对我有用,可以避免这些讨厌的合并冲突。
通过将所有文件附加到新列表(作为输出参数传递给函数本身)来创建新列表
function(concat_path iLiItems oLiItems cVal)
foreach(pfile ${${iLiItems}})
string(CONCAT l ${${cVal}} ${pfile})
message(STATUS ${pfile} " - " ${l})
set(${oLiItems} ${${oLiItems}} ${l} PARENT_SCOPE)
endforeach()
endfunction()
function(list_print liItems)
message(STATUS "The list contains: ")
foreach(f ${${liItems}})
message(STATUS ${f})
endforeach()
endfunction()
set(PROTO_SRCS base.proto dht.proto)
foreach(pfile ${PROTO_SRCS})
string(REPLACE ".proto" ".pb" fname ${pfile})
string(CONCAT cc ${fname} ".cc")
string(CONCAT h ${fname} ".h")
set(PROTO_CPP_SRCS ${PROTO_CPP_SRCS} ${cc} ${h})
endforeach()
string(CONCAT path_prefix ${CMAKE_CURRENT_SOURCE_DIR} "/")
concat_path(PROTO_SRCS PROTO_SRCS_PATH path_prefix)
list_print(PROTO_SRCS_PATH)
Run Code Online (Sandbox Code Playgroud)我看到的问题是,当我最终使用函数“list_print”打印时,我看到输出列表(PROTO_SRCS_PATH)中只存在一个元素,而我期望有两个元素对应于两个输入文件:
-- base.proto - C:/Users/vaddina/workspace/protobuf-tests/app-wo-findprotobuf/base.proto
-- …Run Code Online (Sandbox Code Playgroud)