我可以在不指定第一个修订版本的情况下进行 svn merge 吗?

rob*_*rob 4 svn merge tagging branch tracking

我曾经发布过的最挑剔的问题:

myproject/tags/Production 始终包含 myproject 的生产就绪版本。我将主干中连续批准的修订合并到其中,其中 N 是当前实时修订,M 是新的所需修订:

cd Tags/生产
svn merge -r N:M ^/trunk
svn ci -m '通过 rxxxx 将主干合并到生产

我的问题是,为什么我总是必须指定 N?如果我只使用“-r M”,我会得到“svn:需要第二次修订”。但 N 总是与我之前的 M 相同,我认为合并跟踪的点(我们正在运行 svn 1.6)是为了让 svn 记住你已经合并的修订..?

Ant*_*rez 5

我自己没有尝试过,但是根据 subversion 文档,merge命令足够智能,可以仅包含以前未合并的更改

但如果您不想包含所有主干修订,您可以尝试:

svn merge -r 0:M ^/trunk
Run Code Online (Sandbox Code Playgroud)

它应该合并尚未合并到工作副本中的更改,直至修订版 M

  • 更简洁的替代方案:`svn merge ^/trunk@M` (2认同)