我通常在主干中处理代码,但由于最近的更改,我不得不将工作区切换到分支。
在分支中工作时是否可以在主干中提交任何更改而无需实际将项目切换到主干
我基本上想在主干和分支中提交更改,而不是一次又一次地来回切换
简短的回答:不
这就是上帝svn switch
首先创造的原因。它允许您更改工作目录的底层分支而不会丢失您的工作。
这样想:开发人员有多少次因为他们对自己说“嘿,我不必测试这个。这是一个小改动”而破坏了一些东西?
即使 Subversion 允许你做你想做的事,它仍然是一个坏主意。您基本上是在代码库中进行更改,而没有真正的方法来确保它们首先工作。这就是为什么 Subversion 要求您在进行更改之前拥有一个工作目录*。您将如何测试您的更改?
如果您不想使用svn switch
,因为您不想丢失您的工作,您可以执行以下操作:
svn switch
其中一个来制作该主干。svn co
要么svn switch
得到一个主干工作副本。然后使用svn merge -r
将您的更改合并到主干中。当然,在提交之前测试您的更改。* Subversion 确实允许mkdir
、cp
、mv
和rm
直接在 URL 上工作,但这主要是为了让您无需创建工作目录即可操作分支。
检查不同文件夹中的树干。
在主干中进行更改,并将它们签入。然后将它们合并到分支,并签入合并。
您不能提交 WC URL 之外的路径(请参阅 参考资料svn info WCROOT
)
上述规则意味着 - 如果 WC 根位于一个级别,即分支和主干的共同父级,您可以同时提交到两个位置(分支和主干将是 WC 内的子目录)。共同的父级是 repository-root,为了不签出整个 repo,您可以使用 --depth 和 --setdepth 提交/更新选项